From a1cfe944a602101d144c8efd7df217ab20e4b9ee Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Mon, 23 Mar 2015 12:54:54 -0700 Subject: 462821: invokedynamic detection in hierarchy of aspects --- tests/bugs186/462821/AbstractLoggerAspect.java | 59 ++++++++++++++++++++++ tests/bugs186/462821/FooService.java | 10 ++++ tests/bugs186/462821/FooServiceLoggerAspect.java | 23 +++++++++ tests/bugs186/462821/java | 1 + tests/src/org/aspectj/systemtest/AllTests18.java | 2 + .../org/aspectj/systemtest/ajc186/Ajc186Tests.java | 39 ++++++++++++++ .../systemtest/ajc186/AllTestsAspectJ186.java | 27 ++++++++++ tests/src/org/aspectj/systemtest/ajc186/ajc186.xml | 10 ++++ 8 files changed, 171 insertions(+) create mode 100644 tests/bugs186/462821/AbstractLoggerAspect.java create mode 100644 tests/bugs186/462821/FooService.java create mode 100644 tests/bugs186/462821/FooServiceLoggerAspect.java create mode 100644 tests/bugs186/462821/java create mode 100644 tests/src/org/aspectj/systemtest/ajc186/Ajc186Tests.java create mode 100644 tests/src/org/aspectj/systemtest/ajc186/AllTestsAspectJ186.java create mode 100644 tests/src/org/aspectj/systemtest/ajc186/ajc186.xml (limited to 'tests') diff --git a/tests/bugs186/462821/AbstractLoggerAspect.java b/tests/bugs186/462821/AbstractLoggerAspect.java new file mode 100644 index 000000000..5b9e3c14b --- /dev/null +++ b/tests/bugs186/462821/AbstractLoggerAspect.java @@ -0,0 +1,59 @@ +//package no.kantega; + +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; + +@Aspect +public abstract class AbstractLoggerAspect { + + @Pointcut + public abstract void debugJoinPoints(); + + @Pointcut + public abstract void infoJoinPoints(); + + @Pointcut + public abstract void excludedJoinPoints(); + + + @Pointcut("execution(public String Object+.toString()) || call(public String Object.toString())" + + "|| call(public int Object.hashCode()) || call(public boolean Object.equals())" + + "|| execution(public static void Object+.main(String[])) ") + public void defaultExcludedJoinPoints() {} + + @Pointcut("(infoJoinPoints() && !defaultExcludedJoinPoints() && !excludedJoinPoints())") + public void infoJoinPointsToLog() {} + +/* + @Pointcut("(debugJoinPoints() && !defaultExcludedJoinPoints() && !infoJoinPointsToLog() && !excludedJoinPoints())") + public void debugJoinPointsToLog() {} + + + @Around("debugJoinPointsToLog()") + public Object handleDebugJoinPointsToLog(ProceedingJoinPoint thisJoinPoint) + { + // do stuff + try { + return thisJoinPoint.proceed(); + } catch (Throwable throwable) { + throw new RuntimeException("foo"); + } + // then do other stuff + } +*/ + + @Around("infoJoinPoints()") + public Object handleInfoJoinPointsToLog(ProceedingJoinPoint thisJoinPoint) + { + // first do stuff + try { + return thisJoinPoint.proceed(); + } catch (Throwable throwable) { + throw new RuntimeException("foo"); + } + // then do other stuff + } +} + diff --git a/tests/bugs186/462821/FooService.java b/tests/bugs186/462821/FooService.java new file mode 100644 index 000000000..5d9ab18bf --- /dev/null +++ b/tests/bugs186/462821/FooService.java @@ -0,0 +1,10 @@ +//package no.kantega; + +public class FooService { + + /** Adviced method */ + public String doSomething() { + return "foo"; + } + +} diff --git a/tests/bugs186/462821/FooServiceLoggerAspect.java b/tests/bugs186/462821/FooServiceLoggerAspect.java new file mode 100644 index 000000000..f471694e1 --- /dev/null +++ b/tests/bugs186/462821/FooServiceLoggerAspect.java @@ -0,0 +1,23 @@ +//package no.kantega; + +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; + +@Aspect +public class FooServiceLoggerAspect extends AbstractLoggerAspect { + + @Pointcut + @Override + public void debugJoinPoints() { + } + + @Pointcut("execution(public * FooService.*(..)) && !debugJoinPoints()") + @Override + public void infoJoinPoints() { + } + + @Pointcut + @Override + public void excludedJoinPoints() { + } +} diff --git a/tests/bugs186/462821/java b/tests/bugs186/462821/java new file mode 100644 index 000000000..f1d45a49f --- /dev/null +++ b/tests/bugs186/462821/java @@ -0,0 +1 @@ +[?25l[?12l[?25h[?1049h[?1h=[?12;25h[?12l[?25h[?25l~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ VIM - Vi IMprovedversion 7.3by Bram Moolenaar et al.Vim is open source and freely distributableBecome a registered Vim user!type :help register for information type :q to exit type :help or  for on-line helptype :help version7 for version infoRunning in Vi compatible modetype :set nocp for Vim defaultstype :help cp-default for info on this[?12l[?25h[?25lType :quit to exit Vim[?12l[?25h[?25l[?12l[?25h \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/AllTests18.java b/tests/src/org/aspectj/systemtest/AllTests18.java index 80e113ce2..ae57ece04 100644 --- a/tests/src/org/aspectj/systemtest/AllTests18.java +++ b/tests/src/org/aspectj/systemtest/AllTests18.java @@ -19,12 +19,14 @@ import org.aspectj.systemtest.ajc182.AllTestsAspectJ182; import org.aspectj.systemtest.ajc183.AllTestsAspectJ183; import org.aspectj.systemtest.ajc184.AllTestsAspectJ184; import org.aspectj.systemtest.ajc185.AllTestsAspectJ185; +import org.aspectj.systemtest.ajc186.AllTestsAspectJ186; public class AllTests18 { public static Test suite() { TestSuite suite = new TestSuite("AspectJ System Test Suite - 1.8"); // $JUnit-BEGIN$ + suite.addTest(AllTestsAspectJ186.suite()); suite.addTest(AllTestsAspectJ185.suite()); suite.addTest(AllTestsAspectJ184.suite()); suite.addTest(AllTestsAspectJ183.suite()); diff --git a/tests/src/org/aspectj/systemtest/ajc186/Ajc186Tests.java b/tests/src/org/aspectj/systemtest/ajc186/Ajc186Tests.java new file mode 100644 index 000000000..dc12ab3e4 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc186/Ajc186Tests.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright (c) 2014 Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andy Clement - initial API and implementation + *******************************************************************************/ +package org.aspectj.systemtest.ajc186; + +import java.io.File; + +import junit.framework.Test; + +import org.aspectj.testing.XMLBasedAjcTestCase; + +/** + * @author Andy Clement + */ +public class Ajc186Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public void testMissingMethod_462821() throws Exception { + runTest("missing method"); + } + + // --- + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(Ajc186Tests.class); + } + + @Override + protected File getSpecFile() { + return getClassResource("ajc186.xml"); + } + +} diff --git a/tests/src/org/aspectj/systemtest/ajc186/AllTestsAspectJ186.java b/tests/src/org/aspectj/systemtest/ajc186/AllTestsAspectJ186.java new file mode 100644 index 000000000..4e533d0d5 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc186/AllTestsAspectJ186.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2014 Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andy Clement - initial API and implementation + *******************************************************************************/ +package org.aspectj.systemtest.ajc186; + +import junit.framework.Test; +import junit.framework.TestSuite; +import org.aspectj.systemtest.apt.AptTests; + +public class AllTestsAspectJ186 { + + public static Test suite() { + TestSuite suite = new TestSuite("AspectJ 1.8.6 tests"); + // $JUnit-BEGIN$ + suite.addTest(Ajc186Tests.suite()); + suite.addTest(AptTests.suite()); + // $JUnit-END$ + return suite; + } +} diff --git a/tests/src/org/aspectj/systemtest/ajc186/ajc186.xml b/tests/src/org/aspectj/systemtest/ajc186/ajc186.xml new file mode 100644 index 000000000..ff2e1511b --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc186/ajc186.xml @@ -0,0 +1,10 @@ + + + + + + + + + + -- cgit v1.2.3 From 3ad0706d16c0068aca1fb5ef2d8ef1c78bd9e975 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Thu, 23 Apr 2015 12:21:57 -0700 Subject: APT and missing declaring type in BTB hierarchy --- org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip | Bin 4519762 -> 4519821 bytes org.eclipse.jdt.core/jdtcore-for-aspectj.jar | Bin 8336436 -> 8336348 bytes tests/bugs186/romain/Code.java | 3 +++ tests/bugs186/romain/Runner1.java | 5 +++++ tests/bugs186/romain/Runner2.java | 5 +++++ tests/bugs186/romain/SubCode.java | 2 ++ tests/bugs186/romain/X.java | 3 +++ tests/bugs186/romain/code1.jar | Bin 0 -> 964 bytes tests/bugs186/romain/code2.jar | Bin 0 -> 2556 bytes .../org/aspectj/systemtest/ajc186/Ajc186Tests.java | 4 ++++ tests/src/org/aspectj/systemtest/ajc186/ajc186.xml | 10 ++++++++++ 11 files changed, 32 insertions(+) create mode 100644 tests/bugs186/romain/Code.java create mode 100644 tests/bugs186/romain/Runner1.java create mode 100644 tests/bugs186/romain/Runner2.java create mode 100644 tests/bugs186/romain/SubCode.java create mode 100644 tests/bugs186/romain/X.java create mode 100644 tests/bugs186/romain/code1.jar create mode 100644 tests/bugs186/romain/code2.jar (limited to 'tests') diff --git a/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip b/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip index c35fb62cd..26d854142 100644 Binary files a/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip and b/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip differ diff --git a/org.eclipse.jdt.core/jdtcore-for-aspectj.jar b/org.eclipse.jdt.core/jdtcore-for-aspectj.jar index cd33770a9..c7fd43fc9 100644 Binary files a/org.eclipse.jdt.core/jdtcore-for-aspectj.jar and b/org.eclipse.jdt.core/jdtcore-for-aspectj.jar differ diff --git a/tests/bugs186/romain/Code.java b/tests/bugs186/romain/Code.java new file mode 100644 index 000000000..9ae8ed102 --- /dev/null +++ b/tests/bugs186/romain/Code.java @@ -0,0 +1,3 @@ +public class Code { + public void foo() { System.out.println("foo");} +} diff --git a/tests/bugs186/romain/Runner1.java b/tests/bugs186/romain/Runner1.java new file mode 100644 index 000000000..aa3b23d19 --- /dev/null +++ b/tests/bugs186/romain/Runner1.java @@ -0,0 +1,5 @@ +public class Runner1 { + public static void main(String[]argv) { + new SubCode().foo(); + } +} diff --git a/tests/bugs186/romain/Runner2.java b/tests/bugs186/romain/Runner2.java new file mode 100644 index 000000000..aa3b23d19 --- /dev/null +++ b/tests/bugs186/romain/Runner2.java @@ -0,0 +1,5 @@ +public class Runner1 { + public static void main(String[]argv) { + new SubCode().foo(); + } +} diff --git a/tests/bugs186/romain/SubCode.java b/tests/bugs186/romain/SubCode.java new file mode 100644 index 000000000..7136b3fe7 --- /dev/null +++ b/tests/bugs186/romain/SubCode.java @@ -0,0 +1,2 @@ +public class SubCode { +} diff --git a/tests/bugs186/romain/X.java b/tests/bugs186/romain/X.java new file mode 100644 index 000000000..d28c3e679 --- /dev/null +++ b/tests/bugs186/romain/X.java @@ -0,0 +1,3 @@ +public aspect X { + declare parents: SubCode extends Code; +} diff --git a/tests/bugs186/romain/code1.jar b/tests/bugs186/romain/code1.jar new file mode 100644 index 000000000..a35660a3d Binary files /dev/null and b/tests/bugs186/romain/code1.jar differ diff --git a/tests/bugs186/romain/code2.jar b/tests/bugs186/romain/code2.jar new file mode 100644 index 000000000..c4b5ce74e Binary files /dev/null and b/tests/bugs186/romain/code2.jar differ diff --git a/tests/src/org/aspectj/systemtest/ajc186/Ajc186Tests.java b/tests/src/org/aspectj/systemtest/ajc186/Ajc186Tests.java index dc12ab3e4..aeb6c1621 100644 --- a/tests/src/org/aspectj/systemtest/ajc186/Ajc186Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc186/Ajc186Tests.java @@ -21,6 +21,10 @@ import org.aspectj.testing.XMLBasedAjcTestCase; */ public class Ajc186Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + public void testMissingExtends() throws Exception { + runTest("missing extends on generic target"); + } + public void testMissingMethod_462821() throws Exception { runTest("missing method"); } diff --git a/tests/src/org/aspectj/systemtest/ajc186/ajc186.xml b/tests/src/org/aspectj/systemtest/ajc186/ajc186.xml index ff2e1511b..69d0e0c05 100644 --- a/tests/src/org/aspectj/systemtest/ajc186/ajc186.xml +++ b/tests/src/org/aspectj/systemtest/ajc186/ajc186.xml @@ -7,4 +7,14 @@ + + + + + + + + + + -- cgit v1.2.3 From ef453a5ff86b4cf84e0d7845f7233fa1f0b3907b Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Tue, 12 May 2015 12:14:55 -0700 Subject: Do not attach INTERFACE modifier to methods from interfaces --- tests/src/org/aspectj/systemtest/ajc163/ajc163.xml | 6 +++--- weaver/src/org/aspectj/weaver/bcel/BcelMethod.java | 6 ++---- weaver/testsrc/org/aspectj/weaver/bcel/WorldTestCase.java | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) (limited to 'tests') diff --git a/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml b/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml index 0664d78a1..c26204aa5 100644 --- a/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml +++ b/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml @@ -42,13 +42,13 @@ - + - + - + diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelMethod.java b/weaver/src/org/aspectj/weaver/bcel/BcelMethod.java index 13f883f1e..7fc78b59d 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelMethod.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelMethod.java @@ -83,8 +83,7 @@ class BcelMethod extends ResolvedMemberImpl { BcelMethod(BcelObjectType declaringType, Method method) { super(method.getName().equals("") ? CONSTRUCTOR : (method.getName().equals("") ? STATIC_INITIALIZATION - : METHOD), declaringType.getResolvedTypeX(), declaringType.isInterface() ? method.getModifiers() - | Modifier.INTERFACE : method.getModifiers(), method.getName(), method.getSignature()); + : METHOD), declaringType.getResolvedTypeX(), method.getModifiers(), method.getName(), method.getSignature()); this.method = method; sourceContext = declaringType.getResolvedTypeX().getSourceContext(); bcelObjectType = declaringType; @@ -97,8 +96,7 @@ class BcelMethod extends ResolvedMemberImpl { */ BcelMethod(BcelObjectType declaringType, Method method, List attributes) { super(method.getName().equals("") ? CONSTRUCTOR : (method.getName().equals("") ? STATIC_INITIALIZATION - : METHOD), declaringType.getResolvedTypeX(), declaringType.isInterface() ? method.getModifiers() - | Modifier.INTERFACE : method.getModifiers(), method.getName(), method.getSignature()); + : METHOD), declaringType.getResolvedTypeX(), method.getModifiers(), method.getName(), method.getSignature()); this.method = method; sourceContext = declaringType.getResolvedTypeX().getSourceContext(); bcelObjectType = declaringType; diff --git a/weaver/testsrc/org/aspectj/weaver/bcel/WorldTestCase.java b/weaver/testsrc/org/aspectj/weaver/bcel/WorldTestCase.java index 111d7e54d..1fb756852 100644 --- a/weaver/testsrc/org/aspectj/weaver/bcel/WorldTestCase.java +++ b/weaver/testsrc/org/aspectj/weaver/bcel/WorldTestCase.java @@ -123,7 +123,7 @@ public class WorldTestCase extends CommonWorldTests { }); ResolvedMember remove = iter.lookupMethod(MemberImpl.method(iter, 0, "remove", "()V")); assertNotNull("iterator doesn't have remove", remove); - modifiersTest(remove, Modifier.PUBLIC | Modifier.INTERFACE); // no longer abstract in Java8 (default instead) + modifiersTest(remove, Modifier.PUBLIC); // no longer abstract in Java8 (default instead) exceptionsTest(remove, UnresolvedType.NONE); ResolvedMember clone = iter.lookupMethod(MemberImpl.method(UnresolvedType.OBJECT, 0, "clone", "()Ljava/lang/Object;")); -- cgit v1.2.3 From e1f6d1fc52d329b018ed11c08cab5011f267c3d0 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Tue, 26 May 2015 15:12:55 -0700 Subject: allow reflection world to resolve generated types (e.g. lambdas) 1.8.6 release prep 1.8.6 pom updates Fix rogue chars in javadoc rebuilt with javadoc fixes --- .../aspectj/apache/bcel/classfile/StackMap.java | 2 +- .../apache/bcel/classfile/StackMapEntry.java | 2 +- .../aspectj/apache/bcel/generic/ObjectType.java | 2 +- .../aspectj/apache/bcel/generic/ReferenceType.java | 16 +-- .../apache/bcel/generic/ReturnaddressType.java | 2 +- build/usedForMavenUpload/aspectjrt.pom | 2 +- build/usedForMavenUpload/aspectjtools.pom | 2 +- build/usedForMavenUpload/aspectjweaver.pom | 2 +- build/usedForMavenUpload_release/aspectjrt.pom | 2 +- build/usedForMavenUpload_release/aspectjtools.pom | 2 +- build/usedForMavenUpload_release/aspectjweaver.pom | 2 +- docs/dist/doc/README-186.html | 36 ++++++ docs/dist/doc/index.html | 1 + lib/bcel/bcel-src.zip | Bin 326882 -> 326864 bytes lib/bcel/bcel.jar | Bin 285242 -> 285242 bytes .../PointcutDesignatorHandlerBasedPointcut.java | 26 +++-- .../internal/tools/PointcutExpressionImpl.java | 7 ++ .../ReflectionBasedReferenceTypeDelegate.java | 4 + ...eflectionBasedReferenceTypeDelegateFactory.java | 11 ++ .../aspectj/weaver/reflect/ReflectionWorld.java | 47 +++++++- tests/.classpath | 1 + tests/bugs186/lambdaBeans/Application.java | 16 +++ tests/bugs186/lambdaBeans/Foo.java | 4 + .../org/aspectj/systemtest/ajc186/Ajc186Tests.java | 123 ++++++++++++++++++++- tests/src/org/aspectj/systemtest/ajc186/ajc186.xml | 5 + 25 files changed, 288 insertions(+), 29 deletions(-) create mode 100644 docs/dist/doc/README-186.html create mode 100644 tests/bugs186/lambdaBeans/Application.java create mode 100644 tests/bugs186/lambdaBeans/Foo.java (limited to 'tests') diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMap.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMap.java index 80f943bbf..29f9c1535 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMap.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMap.java @@ -63,7 +63,7 @@ import org.aspectj.apache.bcel.Constants; /** * This class represents a stack map attribute used for preverification of Java classes for the * Java 2 Micro Edition (J2ME). This attribute is used by the KVM and contained - * within the Code attribute of a method. See CLDC specification §5.3.1.2 + * within the Code attribute of a method. See CLDC specification 5.3.1.2 * * @version $Id: StackMap.java,v 1.6 2009/09/15 19:40:12 aclement Exp $ * @author M. Dahm diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMapEntry.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMapEntry.java index b369083fb..76bb2ab79 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMapEntry.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMapEntry.java @@ -61,7 +61,7 @@ import java.io.IOException; /** * This class represents a stack map entry recording the types of * local variables and the the of stack items at a given byte code offset. - * See CLDC specification §5.3.1.2 + * See CLDC specification 5.3.1.2 * * @version $Id: StackMapEntry.java,v 1.5 2008/05/28 23:53:02 aclement Exp $ * @author M. Dahm diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java index 95e467529..544363f16 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java @@ -146,7 +146,7 @@ public class ObjectType extends ReferenceType { } /** - * Java Virtual Machine Specification edition 2, § 5.4.4 Access Control + * Java Virtual Machine Specification edition 2, 5.4.4 Access Control */ public boolean accessibleTo(ObjectType accessor) { JavaClass jc = Repository.lookupClass(classname); diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ReferenceType.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ReferenceType.java index ae3be0c00..1e290f5a4 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ReferenceType.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ReferenceType.java @@ -137,7 +137,7 @@ public abstract class ReferenceType extends Type { */ if (this instanceof ObjectType && ((ObjectType) this).referencesInterface()) { /* - * If T is a class type, then T must be Object (§2.4.7). + * If T is a class type, then T must be Object (2.4.7). */ if (T instanceof ObjectType && ((ObjectType) T).referencesClass()) { if (T.equals(Type.OBJECT)) { @@ -146,7 +146,7 @@ public abstract class ReferenceType extends Type { } /* - * If T is an interface type, then T must be the same interface as this or a superinterface of this (§2.13.2). + * If T is an interface type, then T must be the same interface as this or a superinterface of this (2.13.2). */ if (T instanceof ObjectType && ((ObjectType) T).referencesInterface()) { if (this.equals(T)) { @@ -163,7 +163,7 @@ public abstract class ReferenceType extends Type { */ if (this instanceof ArrayType) { /* - * If T is a class type, then T must be Object (§2.4.7). + * If T is a class type, then T must be Object (2.4.7). */ if (T instanceof ObjectType && ((ObjectType) T).referencesClass()) { if (T.equals(Type.OBJECT)) { @@ -176,7 +176,7 @@ public abstract class ReferenceType extends Type { */ if (T instanceof ArrayType) { /* - * TC and SC are the same primitive type (§2.4.1). + * TC and SC are the same primitive type (2.4.1). */ Type sc = ((ArrayType) this).getElementType(); Type tc = ((ArrayType) this).getElementType(); @@ -186,7 +186,7 @@ public abstract class ReferenceType extends Type { } /* - * TC and SC are reference types (§2.4.6), and type SC is assignable to TC by these runtime rules. + * TC and SC are reference types (2.4.6), and type SC is assignable to TC by these runtime rules. */ if (tc instanceof ReferenceType && sc instanceof ReferenceType && ((ReferenceType) sc).isAssignmentCompatibleWith(tc)) { @@ -194,7 +194,7 @@ public abstract class ReferenceType extends Type { } } - /* If T is an interface type, T must be one of the interfaces implemented by arrays (§2.15). */ + /* If T is an interface type, T must be one of the interfaces implemented by arrays (2.15). */ // TODO: Check if this is still valid or find a way to dynamically find out which // interfaces arrays implement. However, as of the JVM specification edition 2, there // are at least two different pages where assignment compatibility is defined and @@ -218,7 +218,7 @@ public abstract class ReferenceType extends Type { * t is an ArrayType, then Type.OBJECT is returned; unless their dimensions match. Then an ArrayType of the same number of * dimensions is returned, with its basic type being the first common super class of the basic types of "this" and t. If "this" * or t is a ReferenceType referencing an interface, then Type.OBJECT is returned. If not all of the two classes' superclasses - * cannot be found, "null" is returned. See the JVM specification edition 2, "§4.9.2 The Bytecode Verifier". + * cannot be found, "null" is returned. See the JVM specification edition 2, "4.9.2 The Bytecode Verifier". */ public ReferenceType getFirstCommonSuperclass(ReferenceType t) { if (this.equals(Type.NULL)) { @@ -300,7 +300,7 @@ public abstract class ReferenceType extends Type { // * t is an ArrayType, then Type.OBJECT is returned. If "this" or t is a ReferenceType referencing an interface, then // Type.OBJECT // * is returned. If not all of the two classes' superclasses cannot be found, "null" is returned. See the JVM specification - // * edition 2, "§4.9.2 The Bytecode Verifier". + // * edition 2, "4.9.2 The Bytecode Verifier". // * // * @deprecated use getFirstCommonSuperclass(ReferenceType t) which has slightly changed semantics. // */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ReturnaddressType.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ReturnaddressType.java index 45ffae9b7..a38ffedfd 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ReturnaddressType.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ReturnaddressType.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.generic.InstructionHandle; /** * Returnaddress, the type JSR or JSR_W instructions push upon the stack. * - * see vmspec2 §3.3.3 + * see vmspec2 3.3.3 * @version $Id: ReturnaddressType.java,v 1.3 2008/05/28 23:52:56 aclement Exp $ * @author Enver Haase */ diff --git a/build/usedForMavenUpload/aspectjrt.pom b/build/usedForMavenUpload/aspectjrt.pom index 25c6146d7..5178898a6 100644 --- a/build/usedForMavenUpload/aspectjrt.pom +++ b/build/usedForMavenUpload/aspectjrt.pom @@ -5,7 +5,7 @@ org.aspectj aspectjrt jar - 1.8.4.BUILD-SNAPSHOT + 1.8.6.BUILD-SNAPSHOT AspectJ runtime The runtime needed to execute a program using AspectJ http://www.aspectj.org diff --git a/build/usedForMavenUpload/aspectjtools.pom b/build/usedForMavenUpload/aspectjtools.pom index defa88acf..2c536f4fc 100644 --- a/build/usedForMavenUpload/aspectjtools.pom +++ b/build/usedForMavenUpload/aspectjtools.pom @@ -5,7 +5,7 @@ org.aspectj aspectjtools jar - 1.8.4.BUILD-SNAPSHOT + 1.8.6.BUILD-SNAPSHOT AspectJ tools Tools from the AspectJ project http://www.aspectj.org diff --git a/build/usedForMavenUpload/aspectjweaver.pom b/build/usedForMavenUpload/aspectjweaver.pom index ad82e4093..d681a3e73 100644 --- a/build/usedForMavenUpload/aspectjweaver.pom +++ b/build/usedForMavenUpload/aspectjweaver.pom @@ -5,7 +5,7 @@ org.aspectj aspectjweaver jar - 1.8.4.BUILD-SNAPSHOT + 1.8.6.BUILD-SNAPSHOT AspectJ weaver The AspectJ weaver introduces advices to java classes http://www.aspectj.org diff --git a/build/usedForMavenUpload_release/aspectjrt.pom b/build/usedForMavenUpload_release/aspectjrt.pom index 2cb2521e1..f745bce1f 100644 --- a/build/usedForMavenUpload_release/aspectjrt.pom +++ b/build/usedForMavenUpload_release/aspectjrt.pom @@ -5,7 +5,7 @@ org.aspectj aspectjrt jar - 1.8.4 + 1.8.6 AspectJ runtime The runtime needed to execute a program using AspectJ http://www.aspectj.org diff --git a/build/usedForMavenUpload_release/aspectjtools.pom b/build/usedForMavenUpload_release/aspectjtools.pom index f78b536cd..50526540a 100644 --- a/build/usedForMavenUpload_release/aspectjtools.pom +++ b/build/usedForMavenUpload_release/aspectjtools.pom @@ -5,7 +5,7 @@ org.aspectj aspectjtools jar - 1.8.4 + 1.8.6 AspectJ tools Tools from the AspectJ project http://www.aspectj.org diff --git a/build/usedForMavenUpload_release/aspectjweaver.pom b/build/usedForMavenUpload_release/aspectjweaver.pom index e4ffc6e1b..d9d49848f 100644 --- a/build/usedForMavenUpload_release/aspectjweaver.pom +++ b/build/usedForMavenUpload_release/aspectjweaver.pom @@ -5,7 +5,7 @@ org.aspectj aspectjweaver jar - 1.8.4 + 1.8.6 AspectJ weaver The AspectJ weaver introduces advices to java classes http://www.aspectj.org diff --git a/docs/dist/doc/README-186.html b/docs/dist/doc/README-186.html new file mode 100644 index 000000000..e9d57f5f8 --- /dev/null +++ b/docs/dist/doc/README-186.html @@ -0,0 +1,36 @@ + + +AspectJ 1.8.6 Readme + + + + +
+© Copyright 2015 Contributors. +All rights reserved. +
+ +

AspectJ 1.8.6 Readme

+ +

The full list of resolved issues in 1.8.6 is available +here.

+ +
    +
  • 1.8.6 available 5-Jun-2015 +
+ + + + + + diff --git a/docs/dist/doc/index.html b/docs/dist/doc/index.html index fabaf0d0a..a3167b50a 100644 --- a/docs/dist/doc/index.html +++ b/docs/dist/doc/index.html @@ -138,6 +138,7 @@ README's Changes and porting guide for AspectJ + 1.8.6, 1.8.5, 1.8.4, 1.8.3, diff --git a/lib/bcel/bcel-src.zip b/lib/bcel/bcel-src.zip index 3881b662f..6e51d7916 100644 Binary files a/lib/bcel/bcel-src.zip and b/lib/bcel/bcel-src.zip differ diff --git a/lib/bcel/bcel.jar b/lib/bcel/bcel.jar index 0126d477e..040e5d0b5 100644 Binary files a/lib/bcel/bcel.jar and b/lib/bcel/bcel.jar differ diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/internal/tools/PointcutDesignatorHandlerBasedPointcut.java b/org.aspectj.matcher/src/org/aspectj/weaver/internal/tools/PointcutDesignatorHandlerBasedPointcut.java index 9c508a1a3..e5672dede 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/internal/tools/PointcutDesignatorHandlerBasedPointcut.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/internal/tools/PointcutDesignatorHandlerBasedPointcut.java @@ -17,6 +17,8 @@ import java.util.Map; import org.aspectj.util.FuzzyBoolean; import org.aspectj.weaver.CompressingDataOutputStream; import org.aspectj.weaver.IntMap; +import org.aspectj.weaver.ReferenceType; +import org.aspectj.weaver.ReferenceTypeDelegate; import org.aspectj.weaver.ResolvedType; import org.aspectj.weaver.Shadow; import org.aspectj.weaver.World; @@ -28,6 +30,7 @@ import org.aspectj.weaver.patterns.FastMatchInfo; import org.aspectj.weaver.patterns.IScope; import org.aspectj.weaver.patterns.PatternNodeVisitor; import org.aspectj.weaver.patterns.Pointcut; +import org.aspectj.weaver.reflect.ReflectionBasedReferenceTypeDelegate; import org.aspectj.weaver.reflect.ReflectionFastMatchInfo; import org.aspectj.weaver.reflect.ReflectionShadow; import org.aspectj.weaver.reflect.ReflectionWorld; @@ -64,16 +67,25 @@ public class PointcutDesignatorHandlerBasedPointcut extends Pointcut { */ public FuzzyBoolean fastMatch(FastMatchInfo info) { if (info instanceof ReflectionFastMatchInfo) { + // Really need a reflectionworld here... + if (!(world instanceof ReflectionWorld)) { + throw new IllegalStateException("Can only match user-extension pcds with a ReflectionWorld"); + } + Class clazz = null; try { - // Really need a reflectionworld here... - if (!(world instanceof ReflectionWorld)) { - throw new IllegalStateException("Can only match user-extension pcds with a ReflectionWorld"); - } - return FuzzyBoolean.fromBoolean(this.matcher.couldMatchJoinPointsInType(Class.forName(info.getType().getName(), - false, ((ReflectionWorld) world).getClassLoader()), ((ReflectionFastMatchInfo) info).getMatchingContext())); - } catch (ClassNotFoundException cnfEx) { + clazz = Class.forName(info.getType().getName(), false, ((ReflectionWorld) world).getClassLoader()); + } catch (ClassNotFoundException cnfe) { + if (info.getType() instanceof ReferenceType) { + ReferenceTypeDelegate rtd = ((ReferenceType)info.getType()).getDelegate(); + if (rtd instanceof ReflectionBasedReferenceTypeDelegate) { + clazz = ((ReflectionBasedReferenceTypeDelegate)rtd).getClazz(); + } + } + } + if (clazz == null) { return FuzzyBoolean.MAYBE; } + return FuzzyBoolean.fromBoolean(this.matcher.couldMatchJoinPointsInType(clazz, ((ReflectionFastMatchInfo) info).getMatchingContext())); } throw new IllegalStateException("Can only match user-extension pcds against Reflection FastMatchInfo objects"); } diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/internal/tools/PointcutExpressionImpl.java b/org.aspectj.matcher/src/org/aspectj/weaver/internal/tools/PointcutExpressionImpl.java index 1869e9b19..822c78d9a 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/internal/tools/PointcutExpressionImpl.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/internal/tools/PointcutExpressionImpl.java @@ -35,6 +35,7 @@ import org.aspectj.weaver.patterns.WithinAnnotationPointcut; import org.aspectj.weaver.patterns.WithinCodeAnnotationPointcut; import org.aspectj.weaver.reflect.ReflectionFastMatchInfo; import org.aspectj.weaver.reflect.ReflectionShadow; +import org.aspectj.weaver.reflect.ReflectionWorld; import org.aspectj.weaver.reflect.ShadowMatchImpl; import org.aspectj.weaver.tools.DefaultMatchingContext; import org.aspectj.weaver.tools.MatchingContext; @@ -80,6 +81,12 @@ public class PointcutExpressionImpl implements PointcutExpression { public boolean couldMatchJoinPointsInType(Class aClass) { ResolvedType matchType = world.resolve(aClass.getName()); + if (matchType.isMissing() && (world instanceof ReflectionWorld)) { + // Class is a generated class that cannot be 'looked up' via getResource. + // For example a proxy or lambda. + // Use the class itself in this case + matchType = ((ReflectionWorld)world).resolveUsingClass(aClass); + } ReflectionFastMatchInfo info = new ReflectionFastMatchInfo(matchType, null, this.matchContext, world); boolean couldMatch = pointcut.fastMatch(info).maybeTrue(); if (MATCH_INFO) { diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java b/org.aspectj.matcher/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java index 988239e98..6110e6ceb 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java @@ -69,6 +69,10 @@ public class ReflectionBasedReferenceTypeDelegate implements ReferenceTypeDelega this.classLoaderReference = new WeakClassLoaderReference((aClassLoader != null) ? aClassLoader : bootClassLoader); } + public Class getClazz() { + return this.myClass; + } + protected Class getBaseClass() { return this.myClass; } diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegateFactory.java b/org.aspectj.matcher/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegateFactory.java index e1d709dfc..eee1b6f32 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegateFactory.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegateFactory.java @@ -47,6 +47,17 @@ public class ReflectionBasedReferenceTypeDelegateFactory { return null; } } + + public static ReflectionBasedReferenceTypeDelegate createDelegate(ReferenceType forReferenceType, World inWorld, + Class clazz) { + if (LangUtil.is15VMOrGreater()) { + ReflectionBasedReferenceTypeDelegate rbrtd = create15Delegate(forReferenceType, clazz, clazz.getClassLoader(), inWorld); + if (rbrtd != null) { + return rbrtd; // can be null if we didn't find the class the delegate logic loads + } + } + return new ReflectionBasedReferenceTypeDelegate(clazz, clazz.getClassLoader(), inWorld, forReferenceType); + } public static ReflectionBasedReferenceTypeDelegate create14Delegate(ReferenceType forReferenceType, World inWorld, ClassLoader usingClassLoader) { diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/reflect/ReflectionWorld.java b/org.aspectj.matcher/src/org/aspectj/weaver/reflect/ReflectionWorld.java index 64b8d4bb0..98e800222 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/reflect/ReflectionWorld.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/reflect/ReflectionWorld.java @@ -11,6 +11,9 @@ * ******************************************************************/ package org.aspectj.weaver.reflect; +import java.util.HashMap; +import java.util.Map; + import org.aspectj.bridge.AbortException; import org.aspectj.bridge.IMessage; import org.aspectj.bridge.IMessageHandler; @@ -34,6 +37,7 @@ public class ReflectionWorld extends World implements IReflectionWorld { private WeakClassLoaderReference classLoaderReference; private AnnotationFinder annotationFinder; private boolean mustUseOneFourDelegates = false; // for testing + private Map> inProgressResolutionClasses = new HashMap>(); private ReflectionWorld() { // super(); @@ -105,13 +109,52 @@ public class ReflectionWorld extends World implements IReflectionWorld { return world.resolve(className); } } + + /** + * Resolve a type using the specified class. Normal resolution in a reflection + * world uses Class.forName() via the classloader (attached to this world) + * in order to find a named type then builds a reference type and a reference + * type delegate based on that. For some classes generated at runtime (e.g. + * proxy or lambda representation) the forName() call will not work. In those + * situations we should just use the clazz we have. + * + * Should the whole thing switch from using forName() to using the clazz objects? + * Possibly but that introduces a lot of change and we don't have a lot + * of test coverage for this scenario (reflection world). What we are doing + * right now is that this can optionally be used if the regular resolution + * scheme did not work. + * + * Although AspectJ is *not* multi threaded or re-entrant, Spring doesn't + * always respect that. There might be an issue here if two attempts are + * made to resolve the same thing at the same time via this method. + * + * @param clazz the class to use as the delegate for the resolved type + */ + public ResolvedType resolveUsingClass(Class clazz) { + String signature = UnresolvedType.forName(clazz.getName()).getSignature(); + try { + inProgressResolutionClasses.put(signature, clazz); + return resolve(clazz.getName()); + } finally { + inProgressResolutionClasses.remove(signature); + } + } protected ReferenceTypeDelegate resolveDelegate(ReferenceType ty) { + ReferenceTypeDelegate result; if (mustUseOneFourDelegates) { - return ReflectionBasedReferenceTypeDelegateFactory.create14Delegate(ty, this, classLoaderReference.getClassLoader()); + result = ReflectionBasedReferenceTypeDelegateFactory.create14Delegate(ty, this, classLoaderReference.getClassLoader()); } else { - return ReflectionBasedReferenceTypeDelegateFactory.createDelegate(ty, this, classLoaderReference.getClassLoader()); + result = ReflectionBasedReferenceTypeDelegateFactory.createDelegate(ty, this, classLoaderReference.getClassLoader()); + } + if (result == null && inProgressResolutionClasses.size() != 0) { + // Is it a class that cannot be loaded (i.e. it was generated) but we already know about? + Class clazz = inProgressResolutionClasses.get(ty.getSignature()); + if (clazz != null) { + result = ReflectionBasedReferenceTypeDelegateFactory.createDelegate(ty,this,clazz); + } } + return result; } public static class ReflectionWorldException extends RuntimeException { diff --git a/tests/.classpath b/tests/.classpath index 864376023..bd87c250e 100644 --- a/tests/.classpath +++ b/tests/.classpath @@ -17,5 +17,6 @@ + diff --git a/tests/bugs186/lambdaBeans/Application.java b/tests/bugs186/lambdaBeans/Application.java new file mode 100644 index 000000000..f98a49a5e --- /dev/null +++ b/tests/bugs186/lambdaBeans/Application.java @@ -0,0 +1,16 @@ +public class Application { + + @Foo + Runnable fromInnerClass() { + return new Runnable() { + @Override + public void run() { + } + }; + } + + @Foo + Runnable fromLambdaExpression() { + return () -> { }; + } +} diff --git a/tests/bugs186/lambdaBeans/Foo.java b/tests/bugs186/lambdaBeans/Foo.java new file mode 100644 index 000000000..60e42f6e2 --- /dev/null +++ b/tests/bugs186/lambdaBeans/Foo.java @@ -0,0 +1,4 @@ +import java.lang.annotation.*; + +@Retention(RetentionPolicy.RUNTIME) +@interface Foo {} diff --git a/tests/src/org/aspectj/systemtest/ajc186/Ajc186Tests.java b/tests/src/org/aspectj/systemtest/ajc186/Ajc186Tests.java index aeb6c1621..1625f96d1 100644 --- a/tests/src/org/aspectj/systemtest/ajc186/Ajc186Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc186/Ajc186Tests.java @@ -11,20 +11,139 @@ package org.aspectj.systemtest.ajc186; import java.io.File; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; import junit.framework.Test; import org.aspectj.testing.XMLBasedAjcTestCase; +import org.aspectj.weaver.tools.ContextBasedMatcher; +import org.aspectj.weaver.tools.DefaultMatchingContext; +import org.aspectj.weaver.tools.FuzzyBoolean; +import org.aspectj.weaver.tools.MatchingContext; +import org.aspectj.weaver.tools.PointcutDesignatorHandler; +import org.aspectj.weaver.tools.PointcutExpression; +import org.aspectj.weaver.tools.PointcutParser; /** * @author Andy Clement */ public class Ajc186Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + private class FooDesignatorHandler implements PointcutDesignatorHandler { + + private String askedToParse; + public boolean simulateDynamicTest = false; + + public String getDesignatorName() { + return "foo"; + } + + public ContextBasedMatcher parse(String expression) { + this.askedToParse = expression; + return new FooPointcutExpression(expression, this.simulateDynamicTest); + } + + public String getExpressionLastAskedToParse() { + return this.askedToParse; + } + } + + private class FooPointcutExpression implements ContextBasedMatcher { + + private final String beanNamePattern; + private final boolean simulateDynamicTest; + + public FooPointcutExpression(String beanNamePattern, + boolean simulateDynamicTest) { + this.beanNamePattern = beanNamePattern; + this.simulateDynamicTest = simulateDynamicTest; + } + + public boolean couldMatchJoinPointsInType(Class aClass) { + System.out.println("wubble?"); + return true; + } + + public boolean couldMatchJoinPointsInType(Class aClass, + MatchingContext context) { + System.out.println("wibble?"); + if (this.beanNamePattern.equals(context.getBinding("beanName"))) { + return true; + } else { + return false; + } + } + + public boolean mayNeedDynamicTest() { + return this.simulateDynamicTest; + } + + public FuzzyBoolean matchesStatically(MatchingContext matchContext) { + System.out.println("wobble?"); + if (this.simulateDynamicTest) + return FuzzyBoolean.MAYBE; + if (this.beanNamePattern + .equals(matchContext.getBinding("beanName"))) { + return FuzzyBoolean.YES; + } else { + return FuzzyBoolean.NO; + } + } + + public boolean matchesDynamically(MatchingContext matchContext) { + System.out.println("wabble?"); + return this.beanNamePattern.equals(matchContext + .getBinding("beanName")); + } + } + + public void testLambdaBeans() throws Exception { + runTest("lambda beans"); + + // Load the 1.8 compiled code + URLClassLoader ucl = new URLClassLoader(new URL[] {ajc.getSandboxDirectory().toURI().toURL()},this.getClass().getClassLoader()); + Class applicationClass = Class.forName("Application",false,ucl); + assertNotNull(applicationClass); + Object instance = applicationClass.newInstance(); + Method works = applicationClass.getDeclaredMethod("fromInnerClass"); + works.setAccessible(true); + Runnable r = (Runnable) works.invoke(instance); + // r.getClass().getName() == Application$1 + + Method fails = applicationClass.getDeclaredMethod("fromLambdaExpression"); + fails.setAccessible(true); + Runnable r2 = (Runnable) fails.invoke(instance); + // r2.getClass().getName() == Application$$Lambda$1/1652149987 + +// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "Application"); + PointcutParser parser = PointcutParser + .getPointcutParserSupportingAllPrimitivesAndUsingSpecifiedClassloaderForResolution(ucl); + FooDesignatorHandler beanHandler = new FooDesignatorHandler(); + parser.registerPointcutDesignatorHandler(beanHandler); + PointcutExpression pc = parser.parsePointcutExpression("foo(myBean)"); + DefaultMatchingContext context = new DefaultMatchingContext(); + pc.setMatchingContext(context); + + context.addContextBinding("beanName", "myBean"); + assertTrue(pc.couldMatchJoinPointsInType(r.getClass())); + + context.addContextBinding("beanName", "yourBean"); + assertFalse(pc.couldMatchJoinPointsInType(r.getClass())); + + context.addContextBinding("beanName", "myBean"); + assertTrue(pc.couldMatchJoinPointsInType(r2.getClass())); + + context.addContextBinding("beanName", "yourBean"); + assertFalse(pc.couldMatchJoinPointsInType(r2.getClass())); + } + + public void testMissingExtends() throws Exception { runTest("missing extends on generic target"); } - + public void testMissingMethod_462821() throws Exception { runTest("missing method"); } @@ -37,7 +156,7 @@ public class Ajc186Tests extends org.aspectj.testing.XMLBasedAjcTestCase { @Override protected File getSpecFile() { - return getClassResource("ajc186.xml"); + return getClassResource("ajc186.xml"); } } diff --git a/tests/src/org/aspectj/systemtest/ajc186/ajc186.xml b/tests/src/org/aspectj/systemtest/ajc186/ajc186.xml index 69d0e0c05..4f1394a95 100644 --- a/tests/src/org/aspectj/systemtest/ajc186/ajc186.xml +++ b/tests/src/org/aspectj/systemtest/ajc186/ajc186.xml @@ -2,6 +2,11 @@ + + + + + -- cgit v1.2.3 From 451a29f0fd2e55e7e2c1e54a6ae9d01a42b7b128 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Thu, 25 Jun 2015 13:20:02 -0700 Subject: AspectJ upgraded to Mars compiler --- .../internal/compiler/ast/KnownMessageSend.java | 9 +- .../CompactTypeStructureRepresentation.java | 8 + org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip | Bin 4519821 -> 4561939 bytes org.eclipse.jdt.core/jdtcore-for-aspectj.jar | Bin 8336348 -> 8499260 bytes tests/apt/test1/.SimpleProcessor.java.swp | Bin 0 -> 16384 bytes tests/apt/test1/SimpleProcessor.java | 6 +- tests/bugs187/469889/A.java | 5 + tests/bugs187/469889/AbstractA.java | 5 + tests/bugs187/469889/B.java | 6 + tests/bugs187/469889/BImpl.java | 5 + tests/bugs187/469889/Code.java | 31 + tests/bugs187/469889/Main.java | 11 + tests/bugs187/469889/outa/A.class | Bin 0 -> 270 bytes tests/bugs187/469889/outa/AbstractA.class | Bin 0 -> 389 bytes tests/bugs187/469889/outa/B.class | Bin 0 -> 377 bytes tests/bugs187/469889/outa/BImpl.class | Bin 0 -> 298 bytes tests/bugs187/469889/outa/Code.class | Bin 0 -> 757 bytes tests/bugs187/469889/outj/A.class | Bin 0 -> 207 bytes tests/bugs187/469889/outj/AbstractA.class | Bin 0 -> 267 bytes tests/bugs187/469889/outj/B.class | Bin 0 -> 340 bytes tests/bugs187/469889/outj/BImpl.class | Bin 0 -> 242 bytes tests/bugs187/469889/outj/Code.class | Bin 0 -> 497 bytes tests/bugs187/470633/Maps.java | 22 + tests/bugs187/470663/Code.class | Bin 0 -> 654 bytes tests/bugs187/470663/Code.java | 10 + tests/bugs187/470663/FilesAspect.aj | 12 + tests/bugs187/470663/inpath/v.class | Bin 0 -> 33512 bytes tests/bugs187/470663/inpath/x | 7016 ++++++++++++++++++ tests/bugs187/470663/out.jar | Bin 0 -> 18760 bytes tests/bugs187/470663/run.cmd | 1 + tests/bugs187/470663/run.sh | 1 + tests/bugs187/470663/x | 7674 ++++++++++++++++++++ tests/src/org/aspectj/systemtest/AllTests18.java | 2 + .../systemtest/ajc182/AllTestsAspectJ182.java | 1 - .../systemtest/ajc183/AllTestsAspectJ183.java | 2 - .../systemtest/ajc184/AllTestsAspectJ184.java | 2 - .../systemtest/ajc185/AllTestsAspectJ185.java | 2 - .../systemtest/ajc186/AllTestsAspectJ186.java | 2 - .../org/aspectj/systemtest/ajc187/Ajc187Tests.java | 46 + .../systemtest/ajc187/AllTestsAspectJ187.java | 26 + tests/src/org/aspectj/systemtest/ajc187/ajc187.xml | 22 + 41 files changed, 14914 insertions(+), 13 deletions(-) create mode 100644 tests/apt/test1/.SimpleProcessor.java.swp create mode 100644 tests/bugs187/469889/A.java create mode 100644 tests/bugs187/469889/AbstractA.java create mode 100644 tests/bugs187/469889/B.java create mode 100644 tests/bugs187/469889/BImpl.java create mode 100644 tests/bugs187/469889/Code.java create mode 100644 tests/bugs187/469889/Main.java create mode 100644 tests/bugs187/469889/outa/A.class create mode 100644 tests/bugs187/469889/outa/AbstractA.class create mode 100644 tests/bugs187/469889/outa/B.class create mode 100644 tests/bugs187/469889/outa/BImpl.class create mode 100644 tests/bugs187/469889/outa/Code.class create mode 100644 tests/bugs187/469889/outj/A.class create mode 100644 tests/bugs187/469889/outj/AbstractA.class create mode 100644 tests/bugs187/469889/outj/B.class create mode 100644 tests/bugs187/469889/outj/BImpl.class create mode 100644 tests/bugs187/469889/outj/Code.class create mode 100644 tests/bugs187/470633/Maps.java create mode 100644 tests/bugs187/470663/Code.class create mode 100644 tests/bugs187/470663/Code.java create mode 100644 tests/bugs187/470663/FilesAspect.aj create mode 100644 tests/bugs187/470663/inpath/v.class create mode 100644 tests/bugs187/470663/inpath/x create mode 100644 tests/bugs187/470663/out.jar create mode 100644 tests/bugs187/470663/run.cmd create mode 100755 tests/bugs187/470663/run.sh create mode 100644 tests/bugs187/470663/x create mode 100644 tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java create mode 100644 tests/src/org/aspectj/systemtest/ajc187/AllTestsAspectJ187.java create mode 100644 tests/src/org/aspectj/systemtest/ajc187/ajc187.xml (limited to 'tests') diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownMessageSend.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownMessageSend.java index 6cf6527b6..20bbef57a 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownMessageSend.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownMessageSend.java @@ -28,7 +28,11 @@ public class KnownMessageSend extends MessageSend { this.receiver = receiver; this.actualReceiverType = binding.declaringClass; this.selector = binding.selector; - constant = Constant.NotAConstant; + // 1.8.7 change: + // If we don't set this to NotAConstant then we run the code in MessageSend.resolveType that sorts + // out this.argumentTypes - which we need set because further down MessageSend.resolveType it will + // attempt to use it. +// constant = Constant.NotAConstant; } public void manageSyntheticAccessIfNecessary(BlockScope currentScope) { @@ -38,8 +42,7 @@ public class KnownMessageSend extends MessageSend { protected void resolveMethodBinding( BlockScope scope, TypeBinding[] argumentTypes) { - // we've already resolved this - + // we've already resolved this } public String toStringExpression() { diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java index 6770b647a..1a88cb3c6 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java @@ -19,6 +19,8 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.env.IBinaryMethod; import org.aspectj.org.eclipse.jdt.internal.compiler.env.IBinaryNestedType; import org.aspectj.org.eclipse.jdt.internal.compiler.env.IBinaryType; import org.aspectj.org.eclipse.jdt.internal.compiler.env.IBinaryTypeAnnotation; +import org.aspectj.org.eclipse.jdt.internal.compiler.env.ITypeAnnotationWalker; +import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; /** * Used to determine if a type has structurally changed during incremental compilation. At the end of compilation we create one of @@ -181,4 +183,10 @@ public class CompactTypeStructureRepresentation implements IBinaryType { return typeAnnotations; } + public ITypeAnnotationWalker enrichWithExternalAnnotationsFor(ITypeAnnotationWalker walker, Object member, + LookupEnvironment environment) { + // TODO[1.8.7] more to do here? In what contexts? + return walker; + } + } \ No newline at end of file diff --git a/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip b/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip index 26d854142..03e2e018c 100644 Binary files a/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip and b/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip differ diff --git a/org.eclipse.jdt.core/jdtcore-for-aspectj.jar b/org.eclipse.jdt.core/jdtcore-for-aspectj.jar index c7fd43fc9..7303f6c13 100644 Binary files a/org.eclipse.jdt.core/jdtcore-for-aspectj.jar and b/org.eclipse.jdt.core/jdtcore-for-aspectj.jar differ diff --git a/tests/apt/test1/.SimpleProcessor.java.swp b/tests/apt/test1/.SimpleProcessor.java.swp new file mode 100644 index 000000000..d7aa456aa Binary files /dev/null and b/tests/apt/test1/.SimpleProcessor.java.swp differ diff --git a/tests/apt/test1/SimpleProcessor.java b/tests/apt/test1/SimpleProcessor.java index 292dcd8d4..29cb0a8ce 100644 --- a/tests/apt/test1/SimpleProcessor.java +++ b/tests/apt/test1/SimpleProcessor.java @@ -203,6 +203,9 @@ public final class SimpleProcessor extends AbstractProcessor { final TypeElement classElement = entry.getKey(); final PackageElement packageElement = (PackageElement) classElement.getEnclosingElement(); try { +// if (processingEnv.getFiler().getResource(StandardLocation.SOURCE_OUTPUT, packageElement.getQualifiedName(), classElement.getSimpleName()+"EventsAspect.aj")!= null) { +// continue; +// } final FileObject jfo = processingEnv.getFiler().createResource( StandardLocation.SOURCE_OUTPUT, packageElement.getQualifiedName(), @@ -236,7 +239,8 @@ public final class SimpleProcessor extends AbstractProcessor { bw.newLine(); } } catch (final Throwable e) { - processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, e.getMessage()); + +// processingEnv.getMessager().printMessage(Diagnostic.Kind.WARNING, e.getMessage()); } } } diff --git a/tests/bugs187/469889/A.java b/tests/bugs187/469889/A.java new file mode 100644 index 000000000..e2052242d --- /dev/null +++ b/tests/bugs187/469889/A.java @@ -0,0 +1,5 @@ + + +public interface A { + T getValue(); +} diff --git a/tests/bugs187/469889/AbstractA.java b/tests/bugs187/469889/AbstractA.java new file mode 100644 index 000000000..a10937c12 --- /dev/null +++ b/tests/bugs187/469889/AbstractA.java @@ -0,0 +1,5 @@ + + +public abstract class AbstractA implements A { + +} diff --git a/tests/bugs187/469889/B.java b/tests/bugs187/469889/B.java new file mode 100644 index 000000000..cf0d79da3 --- /dev/null +++ b/tests/bugs187/469889/B.java @@ -0,0 +1,6 @@ +public interface B extends A { + @Override + default String getValue() { + return "B"; + } +} diff --git a/tests/bugs187/469889/BImpl.java b/tests/bugs187/469889/BImpl.java new file mode 100644 index 000000000..69469c816 --- /dev/null +++ b/tests/bugs187/469889/BImpl.java @@ -0,0 +1,5 @@ + + +public class BImpl extends AbstractA implements B { + +} diff --git a/tests/bugs187/469889/Code.java b/tests/bugs187/469889/Code.java new file mode 100644 index 000000000..1319ecfa2 --- /dev/null +++ b/tests/bugs187/469889/Code.java @@ -0,0 +1,31 @@ +interface A { + T getValue(); +} + + +/* +abstract class AbstractA implements A { +} +*/ + +interface B extends A { + @Override + default String getValue() { + return "B"; + } +} + + +/* +class BImpl extends AbstractA implements B { + +} + +public class Code { + public static void main(final String[] args) { + final A object1 = new BImpl(); + System.out.println(object1.getValue()); + } +} + +*/ diff --git a/tests/bugs187/469889/Main.java b/tests/bugs187/469889/Main.java new file mode 100644 index 000000000..d229b8f06 --- /dev/null +++ b/tests/bugs187/469889/Main.java @@ -0,0 +1,11 @@ + +/** + * @author Hugh Eaves + * + */ +public class Main { + public static void main(final String[] args) { + final A object1 = new BImpl(); + System.out.println(object1.getValue()); + } +} diff --git a/tests/bugs187/469889/outa/A.class b/tests/bugs187/469889/outa/A.class new file mode 100644 index 000000000..7d4c0d824 Binary files /dev/null and b/tests/bugs187/469889/outa/A.class differ diff --git a/tests/bugs187/469889/outa/AbstractA.class b/tests/bugs187/469889/outa/AbstractA.class new file mode 100644 index 000000000..25f5d826d Binary files /dev/null and b/tests/bugs187/469889/outa/AbstractA.class differ diff --git a/tests/bugs187/469889/outa/B.class b/tests/bugs187/469889/outa/B.class new file mode 100644 index 000000000..cf254f4da Binary files /dev/null and b/tests/bugs187/469889/outa/B.class differ diff --git a/tests/bugs187/469889/outa/BImpl.class b/tests/bugs187/469889/outa/BImpl.class new file mode 100644 index 000000000..54052f493 Binary files /dev/null and b/tests/bugs187/469889/outa/BImpl.class differ diff --git a/tests/bugs187/469889/outa/Code.class b/tests/bugs187/469889/outa/Code.class new file mode 100644 index 000000000..1b624cd99 Binary files /dev/null and b/tests/bugs187/469889/outa/Code.class differ diff --git a/tests/bugs187/469889/outj/A.class b/tests/bugs187/469889/outj/A.class new file mode 100644 index 000000000..3a408a678 Binary files /dev/null and b/tests/bugs187/469889/outj/A.class differ diff --git a/tests/bugs187/469889/outj/AbstractA.class b/tests/bugs187/469889/outj/AbstractA.class new file mode 100644 index 000000000..45265eb29 Binary files /dev/null and b/tests/bugs187/469889/outj/AbstractA.class differ diff --git a/tests/bugs187/469889/outj/B.class b/tests/bugs187/469889/outj/B.class new file mode 100644 index 000000000..e36103876 Binary files /dev/null and b/tests/bugs187/469889/outj/B.class differ diff --git a/tests/bugs187/469889/outj/BImpl.class b/tests/bugs187/469889/outj/BImpl.class new file mode 100644 index 000000000..35ecd481e Binary files /dev/null and b/tests/bugs187/469889/outj/BImpl.class differ diff --git a/tests/bugs187/469889/outj/Code.class b/tests/bugs187/469889/outj/Code.class new file mode 100644 index 000000000..7ab343cc4 Binary files /dev/null and b/tests/bugs187/469889/outj/Code.class differ diff --git a/tests/bugs187/470633/Maps.java b/tests/bugs187/470633/Maps.java new file mode 100644 index 000000000..a46ffd2c9 --- /dev/null +++ b/tests/bugs187/470633/Maps.java @@ -0,0 +1,22 @@ +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * @author Jun Dong (edong@elementum.com) + * Created at: 6/18/15 9:50 AM + * @since 1.0 + * Description: + */ +public class Maps { + + public static Map toMap(Map.Entry... entries) { + return Collections.unmodifiableMap( + Stream + .of(entries) + .collect(Collectors.toMap((e) -> e.getKey(), (e) -> e.getValue()))); + } + +} diff --git a/tests/bugs187/470663/Code.class b/tests/bugs187/470663/Code.class new file mode 100644 index 000000000..1b05269d5 Binary files /dev/null and b/tests/bugs187/470663/Code.class differ diff --git a/tests/bugs187/470663/Code.java b/tests/bugs187/470663/Code.java new file mode 100644 index 000000000..f6761c273 --- /dev/null +++ b/tests/bugs187/470663/Code.java @@ -0,0 +1,10 @@ +public class Code { + public static void main(String []argv) { + + } + public void m(int i, long j, boolean z) { + System.out.println(i); + System.out.println(j); + System.out.println(z); + } +} diff --git a/tests/bugs187/470663/FilesAspect.aj b/tests/bugs187/470663/FilesAspect.aj new file mode 100644 index 000000000..ae6d4d4b2 --- /dev/null +++ b/tests/bugs187/470663/FilesAspect.aj @@ -0,0 +1,12 @@ +package com.safedk.android.aspects; + +import org.aspectj.lang.JoinPoint.StaticPart; + +public aspect FilesAspect { + + pointcut fileCreateNewFile() : ( call(boolean java.io.File.createNewFile (..)) ); + + boolean around() : fileCreateNewFile() { + return proceed(); + } +} diff --git a/tests/bugs187/470663/inpath/v.class b/tests/bugs187/470663/inpath/v.class new file mode 100644 index 000000000..1abcee904 Binary files /dev/null and b/tests/bugs187/470663/inpath/v.class differ diff --git a/tests/bugs187/470663/inpath/x b/tests/bugs187/470663/inpath/x new file mode 100644 index 000000000..bb8e60106 --- /dev/null +++ b/tests/bugs187/470663/inpath/x @@ -0,0 +1,7016 @@ +Classfile /Users/aclement/gits/org.aspectj/tests/bugs187/470663/inpath/v.class + Last modified Sep 9, 2014; size 33512 bytes + MD5 checksum 006380b9c751e86f0b59edc98b9f0135 + Compiled from "SourceFile" +final class com.crashlytics.android.v implements java.lang.Thread$UncaughtExceptionHandler + SourceFile: "SourceFile" + minor version: 0 + major version: 50 + flags: ACC_FINAL, ACC_SUPER +Constant pool: + #1 = Integer 65536 + #2 = String #727 // + #3 = String #728 // \tat + #4 = String #729 // \n + #5 = String #730 // \r + #6 = String #731 // + #7 = String #732 // data for session ID + #8 = String #733 // \" from thread + #9 = String #734 // %d %s%n + #10 = String #735 // (\r\n|\n| ) + #11 = String #876 // ([\d|A-Z|a-z]{12}\-[\d|A-Z|a-z]{4}\-[\d|A-Z|a-z]{4}\-[\d|A-Z|a-z]{12}).+ + #12 = String #877 // - + #13 = String #878 // . + #14 = String #879 // ... + #15 = String #880 // .temp + #16 = String #881 // 0 + #17 = String #882 // 1 + #18 = String #883 // : + #19 = String #888 // A problem occurred while reading the Crashlytics log file. + #20 = String #889 // An error occurred in the fatal exception logger + #21 = String #890 // An error occurred in the non-fatal exception logger + #22 = String #891 // An error occurred in the uncaught exception handler + #23 = String #892 // An error occurred when trimming non-fatal files. + #24 = String #893 // Attempting to send crash report at time of crash... + #25 = String #894 // BeginSession + #26 = String #896 // Can't find + #27 = String #897 // Caused by: + #28 = String #898 // Checking for previous crash marker. + #29 = String #899 // Closing all open sessions. + #30 = String #900 // Closing session: + #31 = String #902 // Collecting + #32 = String #903 // Collecting SessionStart data for session ID + #33 = String #904 // Collecting session parts for ID + #34 = String #905 // Could not close log file: + #35 = String #906 // Could not create log file: + #36 = String #907 // Could not write stack trace + #37 = String #908 // Crashlytics + #38 = String #909 // Crashlytics Android SDK/%s + #39 = String #910 // Crashlytics Exception Handler + #40 = String #911 // Crashlytics Report Uploader + #41 = String #912 // Crashlytics completed exception processing. Invoking default exception handler. + #42 = String #913 // Crashlytics is handling uncaught exception \" + #43 = String #914 // Crashlytics is logging non-fatal exception \" + #44 = String #915 // Deleting all part files for invalid session: + #45 = String #916 // Deleting session file: + #46 = String #917 // Error closing session file stream in the presence of an exception + #47 = String #918 // Error flushing session file stream + #48 = String #919 // Error writting non-fatal to session. + #49 = String #920 // Exception thrown by CrashlyticsListener while notifying of previous crash. + #50 = String #922 // Executor is shut down because we're handling a fatal crash. + #51 = String #923 // Failed to close CLS file + #52 = String #924 // Failed to close begin session file. + #53 = String #925 // Failed to close fatal exception file output stream. + #54 = String #926 // Failed to close file input stream. + #55 = String #927 // Failed to close non-fatal file output stream. + #56 = String #928 // Failed to close session OS file. + #57 = String #929 // Failed to close session app file. + #58 = String #930 // Failed to close session device file. + #59 = String #931 // Failed to close session user file. + #60 = String #932 // Failed to close stack trace writer. + #61 = String #933 // Failed to create PrintWriter + #62 = String #934 // Failed to execute task. + #63 = String #935 // Failed to flush session device info. + #64 = String #936 // Failed to flush session user file. + #65 = String #937 // Failed to flush to non-fatal file. + #66 = String #938 // Failed to flush to session OS file. + #67 = String #939 // Failed to flush to session app file. + #68 = String #940 // Failed to flush to session begin file. + #69 = String #941 // Failed to write session file for session ID: + #70 = String #942 // Found Non Fatal for session ID %s in %s + #71 = String #943 // Found invalid session part file: + #72 = String #971 // No events present for session ID + #73 = String #972 // No log data to include with this event. + #74 = String #973 // No session begin files found. + #75 = String #974 // Opening an new session with ID + #76 = String #976 // Preferences requested not to collect custom logs. Aborting log file creation. + #77 = String #978 // Removing session part files for ID + #78 = String #979 // Session %s has fatal exception: %s + #79 = String #980 // Session %s has non-fatal exceptions: %s + #80 = String #981 // SessionApp + #81 = String #982 // SessionCrash + #82 = String #983 // SessionDevice + #83 = String #984 // SessionEvent + #84 = String #985 // SessionOS + #85 = String #986 // SessionUser + #86 = String #990 // There was a problem closing the Crashlytics log file. + #87 = String #991 // There was a problem writing to the Crashlytics log. + #88 = String #992 // Tried to include a file that doesn't exist: + #89 = String #993 // Tried to write a fatal exception while no session was open. + #90 = String #994 // Tried to write a non-fatal exception while no session was open. + #91 = String #995 // Trimming down to %d logged exceptions. + #92 = String #996 // Trimming open session file: + #93 = String #998 // UTF-8 + #94 = String #999 // Unable to close session. Settings are not loaded. + #95 = String #1000 // Unregistering power receivers. + #96 = String #1001 // X-CRASHLYTICS-SEND-FLAGS + #97 = String #1011 // android.intent.action.ACTION_POWER_CONNECTED + #98 = String #1012 // android.intent.action.ACTION_POWER_DISCONNECTED + #99 = String #1027 // com.crashlytics.CollectCustomKeys + #100 = String #1028 // com.crashlytics.CollectCustomLogs + #101 = String #1072 // crash + #102 = String #1073 // crash_marker + #103 = String #1074 // crashlytics-userlog- + #104 = String #1081 // error + #105 = String #1120 // initialization_marker + #106 = String #1121 // invalidClsFiles + #107 = String #1182 // null + #108 = Class #1003 // "[B" + #109 = Class #1004 // "[I" + #110 = Class #1005 // "[Ljava/io/File;" + #111 = Class #1006 // "[Ljava/lang/StackTraceElement;" + #112 = Class #1007 // "[Ljava/lang/String;" + #113 = Class #1013 // android/app/ActivityManager$RunningAppProcessInfo + #114 = Class #1014 // android/content/Context + #115 = Class #1015 // android/content/IntentFilter + #116 = Class #1016 // android/content/res/Configuration + #117 = Class #1017 // android/content/res/Resources + #118 = Class #1018 // android/os/Build + #119 = Class #1019 // android/os/Build$VERSION + #120 = Class #1020 // android/os/Environment + #121 = Class #1021 // android/os/StatFs + #122 = Class #1029 // com/crashlytics/android/A + #123 = Class #1030 // com/crashlytics/android/B + #124 = Class #1031 // com/crashlytics/android/C + #125 = Class #1032 // com/crashlytics/android/Crashlytics + #126 = Class #1033 // com/crashlytics/android/CrashlyticsListener + #127 = Class #1034 // com/crashlytics/android/D + #128 = Class #1035 // com/crashlytics/android/E + #129 = Class #1036 // com/crashlytics/android/F + #130 = Class #1037 // com/crashlytics/android/G + #131 = Class #1038 // com/crashlytics/android/H + #132 = Class #1039 // com/crashlytics/android/I + #133 = Class #1040 // com/crashlytics/android/J + #134 = Class #1041 // com/crashlytics/android/K + #135 = Class #1042 // com/crashlytics/android/L + #136 = Class #1043 // com/crashlytics/android/M + #137 = Class #1044 // com/crashlytics/android/N + #138 = Class #1045 // com/crashlytics/android/O + #139 = Class #1046 // com/crashlytics/android/P + #140 = Class #1047 // com/crashlytics/android/Q + #141 = Class #1048 // com/crashlytics/android/R + #142 = Class #1049 // com/crashlytics/android/S + #143 = Class #1050 // com/crashlytics/android/b + #144 = Class #1051 // com/crashlytics/android/d + #145 = Class #1052 // com/crashlytics/android/e + #146 = Class #1053 // com/crashlytics/android/f + #147 = Class #1054 // com/crashlytics/android/h + #148 = Class #1055 // com/crashlytics/android/internal/aR + #149 = Class #1056 // com/crashlytics/android/internal/ab + #150 = Class #1057 // com/crashlytics/android/internal/ah + #151 = Class #1058 // com/crashlytics/android/internal/ai + #152 = Class #1059 // com/crashlytics/android/internal/ao + #153 = Class #1060 // com/crashlytics/android/internal/ap + #154 = Class #1061 // com/crashlytics/android/internal/aq + #155 = Class #1062 // com/crashlytics/android/internal/q + #156 = Class #1063 // com/crashlytics/android/internal/r + #157 = Class #1064 // com/crashlytics/android/internal/v + #158 = Class #1065 // com/crashlytics/android/v + #159 = Class #1066 // com/crashlytics/android/w + #160 = Class #1067 // com/crashlytics/android/x + #161 = Class #1068 // com/crashlytics/android/y + #162 = Class #1069 // com/crashlytics/android/z + #163 = Class #1127 // java/io/File + #164 = Class #1128 // java/io/FileInputStream + #165 = Class #1129 // java/io/FileOutputStream + #166 = Class #1130 // java/io/FilenameFilter + #167 = Class #1131 // java/io/IOException + #168 = Class #1132 // java/io/OutputStream + #169 = Class #1133 // java/io/PrintWriter + #170 = Class #1134 // java/io/Writer + #171 = Class #1135 // java/lang/Boolean + #172 = Class #1136 // java/lang/Class + #173 = Class #1137 // java/lang/Exception + #174 = Class #1138 // java/lang/Integer + #175 = Class #1139 // java/lang/Long + #176 = Class #1140 // java/lang/Math + #177 = Class #1141 // java/lang/Object + #178 = Class #1142 // java/lang/Runnable + #179 = Class #1143 // java/lang/Runtime + #180 = Class #1144 // java/lang/StackTraceElement + #181 = Class #1145 // java/lang/String + #182 = Class #1146 // java/lang/StringBuilder + #183 = Class #1147 // java/lang/Thread + #184 = Class #1148 // java/lang/Thread$UncaughtExceptionHandler + #185 = Class #1149 // java/lang/Throwable + #186 = Class #1150 // java/util/Arrays + #187 = Class #1151 // java/util/Collections + #188 = Class #1152 // java/util/Date + #189 = Class #1153 // java/util/HashSet + #190 = Class #1154 // java/util/Iterator + #191 = Class #1155 // java/util/LinkedList + #192 = Class #1156 // java/util/List + #193 = Class #1157 // java/util/Locale + #194 = Class #1158 // java/util/Map + #195 = Class #1159 // java/util/Map$Entry + #196 = Class #1160 // java/util/Set + #197 = Class #1161 // java/util/TreeMap + #198 = Class #1162 // java/util/UUID + #199 = Class #1163 // java/util/concurrent/Callable + #200 = Class #1164 // java/util/concurrent/ExecutorService + #201 = Class #1165 // java/util/concurrent/Future + #202 = Class #1166 // java/util/concurrent/RejectedExecutionException + #203 = Class #1167 // java/util/concurrent/atomic/AtomicBoolean + #204 = Class #1168 // java/util/concurrent/atomic/AtomicInteger + #205 = Class #1169 // java/util/regex/Matcher + #206 = Class #1170 // java/util/regex/Pattern + #207 = Long 1000l + #209 = Fieldref #113.#662 // android/app/ActivityManager$RunningAppProcessInfo.importance:I + #210 = Fieldref #116.#690 // android/content/res/Configuration.orientation:I + #211 = Fieldref #118.#506 // android/os/Build.MANUFACTURER:Ljava/lang/String; + #212 = Fieldref #118.#507 // android/os/Build.MODEL:Ljava/lang/String; + #213 = Fieldref #118.#508 // android/os/Build.PRODUCT:Ljava/lang/String; + #214 = Fieldref #119.#505 // android/os/Build$VERSION.CODENAME:Ljava/lang/String; + #215 = Fieldref #119.#509 // android/os/Build$VERSION.RELEASE:Ljava/lang/String; + #216 = Fieldref #148.#567 // com/crashlytics/android/internal/aR.a:I + #217 = Fieldref #149.#569 // com/crashlytics/android/internal/ab.a:Ljava/util/Comparator; + #218 = Fieldref #153.#620 // com/crashlytics/android/internal/ap.f:I + #219 = Fieldref #158.#568 // com/crashlytics/android/v.a:Ljava/io/FilenameFilter; + #220 = Fieldref #158.#591 // com/crashlytics/android/v.b:Ljava/util/Comparator; + #221 = Fieldref #158.#599 // com/crashlytics/android/v.c:Ljava/util/Comparator; + #222 = Fieldref #158.#607 // com/crashlytics/android/v.d:Ljava/util/regex/Pattern; + #223 = Fieldref #158.#612 // com/crashlytics/android/v.e:Ljava/util/Map; + #224 = Fieldref #158.#621 // com/crashlytics/android/v.f:Lcom/crashlytics/android/d; + #225 = Fieldref #158.#625 // com/crashlytics/android/v.g:Ljava/util/concurrent/atomic/AtomicInteger; + #226 = Fieldref #158.#659 // com/crashlytics/android/v.h:Ljava/util/concurrent/atomic/AtomicBoolean; + #227 = Fieldref #158.#661 // com/crashlytics/android/v.i:I + #228 = Fieldref #158.#668 // com/crashlytics/android/v.j:Ljava/lang/Thread$UncaughtExceptionHandler; + #229 = Fieldref #158.#670 // com/crashlytics/android/v.k:Ljava/io/File; + #230 = Fieldref #158.#672 // com/crashlytics/android/v.l:Ljava/io/File; + #231 = Fieldref #158.#679 // com/crashlytics/android/v.m:Ljava/util/concurrent/atomic/AtomicBoolean; + #232 = Fieldref #158.#685 // com/crashlytics/android/v.n:Ljava/lang/String; + #233 = Fieldref #158.#689 // com/crashlytics/android/v.o:Landroid/content/BroadcastReceiver; + #234 = Fieldref #158.#692 // com/crashlytics/android/v.p:Landroid/content/BroadcastReceiver; + #235 = Fieldref #158.#694 // com/crashlytics/android/v.q:Lcom/crashlytics/android/d; + #236 = Fieldref #158.#697 // com/crashlytics/android/v.r:Lcom/crashlytics/android/d; + #237 = Fieldref #158.#704 // com/crashlytics/android/v.s:Ljava/util/concurrent/ExecutorService; + #238 = Fieldref #158.#714 // com/crashlytics/android/v.t:Landroid/app/ActivityManager$RunningAppProcessInfo; + #239 = Fieldref #158.#716 // com/crashlytics/android/v.u:Lcom/crashlytics/android/internal/aq; + #240 = Fieldref #158.#719 // com/crashlytics/android/v.v:Z + #241 = Fieldref #158.#723 // com/crashlytics/android/v.w:[Ljava/lang/Thread; + #242 = Fieldref #158.#725 // com/crashlytics/android/v.x:Ljava/util/List; + #243 = Fieldref #158.#726 // com/crashlytics/android/v.y:[Ljava/lang/StackTraceElement; + #244 = Fieldref #193.#510 // java/util/Locale.US:Ljava/util/Locale; + #245 = Methodref #114.#648 // android/content/Context.getPackageCodePath:()Ljava/lang/String; + #246 = Methodref #114.#650 // android/content/Context.getResources:()Landroid/content/res/Resources; + #247 = Methodref #114.#700 // android/content/Context.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; + #248 = Methodref #114.#718 // android/content/Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V + #249 = Methodref #115.#501 // android/content/IntentFilter."":(Ljava/lang/String;)V + #250 = Methodref #117.#638 // android/content/res/Resources.getConfiguration:()Landroid/content/res/Configuration; + #251 = Methodref #120.#640 // android/os/Environment.getDataDirectory:()Ljava/io/File; + #252 = Methodref #121.#501 // android/os/StatFs."":(Ljava/lang/String;)V + #253 = Methodref #121.#632 // android/os/StatFs.getBlockCount:()I + #254 = Methodref #121.#633 // android/os/StatFs.getBlockSize:()I + #255 = Methodref #122.#489 // com/crashlytics/android/A."":(Lcom/crashlytics/android/v;)V + #256 = Methodref #123.#489 // com/crashlytics/android/B."":(Lcom/crashlytics/android/v;)V + #257 = Methodref #124.#489 // com/crashlytics/android/C."":(Lcom/crashlytics/android/v;)V + #258 = Methodref #125.#513 // com/crashlytics/android/Crashlytics.a:()Ljava/util/Map; + #259 = Methodref #125.#551 // com/crashlytics/android/Crashlytics.a:(Ljava/lang/String;)V + #260 = Methodref #125.#575 // com/crashlytics/android/Crashlytics.b:()Lcom/crashlytics/android/internal/ao; + #261 = Methodref #125.#588 // com/crashlytics/android/Crashlytics.b:(Ljava/lang/String;)V + #262 = Methodref #125.#604 // com/crashlytics/android/Crashlytics.d:()Ljava/lang/String; + #263 = Methodref #125.#609 // com/crashlytics/android/Crashlytics.e:()Ljava/lang/String; + #264 = Methodref #125.#616 // com/crashlytics/android/Crashlytics.f:()Ljava/lang/String; + #265 = Methodref #125.#623 // com/crashlytics/android/Crashlytics.g:()Ljava/lang/String; + #266 = Methodref #125.#639 // com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + #267 = Methodref #125.#642 // com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + #268 = Methodref #125.#655 // com/crashlytics/android/Crashlytics.getVersion:()Ljava/lang/String; + #269 = Methodref #125.#658 // com/crashlytics/android/Crashlytics.h:()Ljava/lang/String; + #270 = Methodref #125.#667 // com/crashlytics/android/Crashlytics.j:()Z + #271 = Methodref #125.#677 // com/crashlytics/android/Crashlytics.m:()Ljava/lang/String; + #272 = Methodref #125.#684 // com/crashlytics/android/Crashlytics.n:()Ljava/lang/String; + #273 = Methodref #125.#687 // com/crashlytics/android/Crashlytics.o:()Ljava/lang/String; + #274 = Methodref #125.#696 // com/crashlytics/android/Crashlytics.r:()Lcom/crashlytics/android/internal/aR; + #275 = Methodref #127.#491 // com/crashlytics/android/D."":(Lcom/crashlytics/android/v;Ljava/io/File;)V + #276 = Methodref #128.#489 // com/crashlytics/android/E."":(Lcom/crashlytics/android/v;)V + #277 = Methodref #129.#493 // com/crashlytics/android/F."":(Lcom/crashlytics/android/v;Ljava/lang/String;)V + #278 = Methodref #130.#492 // com/crashlytics/android/G."":(Lcom/crashlytics/android/v;Ljava/lang/Runnable;)V + #279 = Methodref #131.#485 // com/crashlytics/android/H."":()V + #280 = Methodref #132.#495 // com/crashlytics/android/I."":(Lcom/crashlytics/android/v;Ljava/util/concurrent/Callable;)V + #281 = Methodref #133.#485 // com/crashlytics/android/J."":()V + #282 = Methodref #134.#485 // com/crashlytics/android/K."":()V + #283 = Methodref #135.#489 // com/crashlytics/android/L."":(Lcom/crashlytics/android/v;)V + #284 = Methodref #136.#489 // com/crashlytics/android/M."":(Lcom/crashlytics/android/v;)V + #285 = Methodref #137.#494 // com/crashlytics/android/N."":(Lcom/crashlytics/android/v;Ljava/util/Date;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #286 = Methodref #138.#489 // com/crashlytics/android/O."":(Lcom/crashlytics/android/v;)V + #287 = Methodref #139.#494 // com/crashlytics/android/P."":(Lcom/crashlytics/android/v;Ljava/util/Date;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #288 = Methodref #140.#486 // com/crashlytics/android/Q."":(B)V + #289 = Methodref #141.#501 // com/crashlytics/android/R."":(Ljava/lang/String;)V + #290 = Methodref #142.#501 // com/crashlytics/android/S."":(Ljava/lang/String;)V + #291 = Methodref #143.#542 // com/crashlytics/android/b.a:(Ljava/io/File;Ljava/io/FilenameFilter;ILjava/util/Comparator;)V + #292 = Methodref #144.#548 // com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + #293 = Methodref #144.#566 // com/crashlytics/android/d.a:([BII)Lcom/crashlytics/android/d; + #294 = Methodref #145.#488 // com/crashlytics/android/e."":(Lcom/crashlytics/android/internal/ao;)V + #295 = Methodref #145.#715 // com/crashlytics/android/e.toString:()Ljava/lang/String; + #296 = Methodref #146.#498 // com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + #297 = Methodref #146.#514 // com/crashlytics/android/f.a:()V + #298 = Methodref #147.#516 // com/crashlytics/android/h.a:(I)I + #299 = Methodref #147.#518 // com/crashlytics/android/h.a:(IF)V + #300 = Methodref #147.#519 // com/crashlytics/android/h.a:(II)V + #301 = Methodref #147.#520 // com/crashlytics/android/h.a:(IJ)V + #302 = Methodref #147.#521 // com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + #303 = Methodref #147.#523 // com/crashlytics/android/h.a:(ILjava/lang/String;)V + #304 = Methodref #147.#524 // com/crashlytics/android/h.a:(IZ)V + #305 = Methodref #147.#545 // com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + #306 = Methodref #147.#565 // com/crashlytics/android/h.a:([B)V + #307 = Methodref #147.#579 // com/crashlytics/android/h.b:(I)V + #308 = Methodref #147.#580 // com/crashlytics/android/h.b:(IF)I + #309 = Methodref #147.#581 // com/crashlytics/android/h.b:(II)V + #310 = Methodref #147.#582 // com/crashlytics/android/h.b:(IJ)I + #311 = Methodref #147.#583 // com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + #312 = Methodref #147.#584 // com/crashlytics/android/h.b:(IZ)I + #313 = Methodref #147.#595 // com/crashlytics/android/h.c:(I)I + #314 = Methodref #147.#596 // com/crashlytics/android/h.c:(II)V + #315 = Methodref #147.#606 // com/crashlytics/android/h.d:(II)I + #316 = Methodref #147.#611 // com/crashlytics/android/h.e:(II)I + #317 = Methodref #147.#619 // com/crashlytics/android/h.f:(II)I + #318 = Methodref #147.#624 // com/crashlytics/android/h.g:(II)V + #319 = Methodref #149.#517 // com/crashlytics/android/internal/ab.a:(I)Ljava/lang/String; + #320 = Methodref #149.#525 // com/crashlytics/android/internal/ab.a:(Landroid/content/Context;)J + #321 = Methodref #149.#526 // com/crashlytics/android/internal/ab.a:(Landroid/content/Context;Ljava/lang/String;Z)Z + #322 = Methodref #149.#540 // com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + #323 = Methodref #149.#544 // com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + #324 = Methodref #149.#553 // com/crashlytics/android/internal/ab.a:(Ljava/lang/String;Landroid/content/Context;)Landroid/app/ActivityManager$RunningAppProcessInfo; + #325 = Methodref #149.#564 // com/crashlytics/android/internal/ab.a:(Z)I + #326 = Methodref #149.#574 // com/crashlytics/android/internal/ab.b:()I + #327 = Methodref #149.#585 // com/crashlytics/android/internal/ab.b:(Landroid/content/Context;)F + #328 = Methodref #149.#586 // com/crashlytics/android/internal/ab.b:(Ljava/lang/String;)J + #329 = Methodref #149.#593 // com/crashlytics/android/internal/ab.c:()J + #330 = Methodref #149.#597 // com/crashlytics/android/internal/ab.c:(Landroid/content/Context;)Z + #331 = Methodref #149.#605 // com/crashlytics/android/internal/ab.d:()Z + #332 = Methodref #149.#610 // com/crashlytics/android/internal/ab.e:()Z + #333 = Methodref #149.#615 // com/crashlytics/android/internal/ab.f:()I + #334 = Methodref #150.#550 // com/crashlytics/android/internal/ah.a:(Ljava/lang/String;)Ljava/util/concurrent/ExecutorService; + #335 = Methodref #151.#511 // com/crashlytics/android/internal/ai.a:()I + #336 = Methodref #151.#549 // com/crashlytics/android/internal/ai.a:(Ljava/lang/String;)Lcom/crashlytics/android/internal/ai; + #337 = Methodref #152.#577 // com/crashlytics/android/internal/ao.b:()Ljava/lang/String; + #338 = Methodref #152.#609 // com/crashlytics/android/internal/ao.e:()Ljava/lang/String; + #339 = Methodref #152.#617 // com/crashlytics/android/internal/ao.f:()Ljava/util/Map; + #340 = Methodref #154.#497 // com/crashlytics/android/internal/aq."":(Ljava/io/File;)V + #341 = Methodref #154.#511 // com/crashlytics/android/internal/aq.a:()I + #342 = Methodref #154.#539 // com/crashlytics/android/internal/aq.a:(Lcom/crashlytics/android/internal/au;)V + #343 = Methodref #154.#565 // com/crashlytics/android/internal/aq.a:([B)V + #344 = Methodref #154.#578 // com/crashlytics/android/internal/aq.b:()Z + #345 = Methodref #154.#594 // com/crashlytics/android/internal/aq.c:()V + #346 = Methodref #156.#527 // com/crashlytics/android/internal/r.a:(Landroid/content/Context;Z)Ljava/lang/String; + #347 = Methodref #157.#512 // com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + #348 = Methodref #157.#576 // com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + #349 = Methodref #157.#618 // com/crashlytics/android/internal/v.f:()Z + #350 = Methodref #157.#657 // com/crashlytics/android/internal/v.h:()Ljava/io/File; + #351 = Methodref #158.#502 // com/crashlytics/android/v."":(Ljava/lang/Thread$UncaughtExceptionHandler;Lcom/crashlytics/android/CrashlyticsListener;Ljava/util/concurrent/ExecutorService;Ljava/lang/String;)V + #352 = Methodref #158.#515 // com/crashlytics/android/v.a:(FIZIJJ)I + #353 = Methodref #158.#522 // com/crashlytics/android/v.a:(ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;IJJZLjava/util/Map;ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;)I + #354 = Methodref #158.#528 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/f;)V + #355 = Methodref #158.#529 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;ILjava/lang/StackTraceElement;Z)V + #356 = Methodref #158.#530 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;Ljava/io/File;)V + #357 = Methodref #158.#531 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;Ljava/lang/String;)V + #358 = Methodref #158.#532 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #359 = Methodref #158.#533 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)V + #360 = Methodref #158.#534 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;Ljava/lang/Throwable;II)V + #361 = Methodref #158.#535 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;Ljava/util/Map;)V + #362 = Methodref #158.#536 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;[Ljava/io/File;Ljava/lang/String;)V + #363 = Methodref #158.#537 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/internal/ap;Ljava/lang/String;)I + #364 = Methodref #158.#538 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/internal/aq;)Lcom/crashlytics/android/d; + #365 = Methodref #158.#541 // com/crashlytics/android/v.a:(Ljava/io/File;)Ljava/lang/String; + #366 = Methodref #158.#543 // com/crashlytics/android/v.a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + #367 = Methodref #158.#546 // com/crashlytics/android/v.a:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + #368 = Methodref #158.#547 // com/crashlytics/android/v.a:(Ljava/lang/StackTraceElement;Z)I + #369 = Methodref #158.#551 // com/crashlytics/android/v.a:(Ljava/lang/String;)V + #370 = Methodref #158.#552 // com/crashlytics/android/v.a:(Ljava/lang/String;I)V + #371 = Methodref #158.#554 // com/crashlytics/android/v.a:(Ljava/lang/String;Ljava/lang/String;)I + #372 = Methodref #158.#557 // com/crashlytics/android/v.a:(Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + #373 = Methodref #158.#558 // com/crashlytics/android/v.a:(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)I + #374 = Methodref #158.#559 // com/crashlytics/android/v.a:(Ljava/lang/Throwable;I)I + #375 = Methodref #158.#560 // com/crashlytics/android/v.a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + #376 = Methodref #158.#561 // com/crashlytics/android/v.a:(Ljava/lang/Throwable;Ljava/io/Writer;)V + #377 = Methodref #158.#562 // com/crashlytics/android/v.a:(Ljava/util/Date;Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/lang/String;Z)V + #378 = Methodref #158.#563 // com/crashlytics/android/v.a:(Ljava/util/concurrent/Callable;)Ljava/lang/Object; + #379 = Methodref #158.#587 // com/crashlytics/android/v.b:(Ljava/lang/String;)Lcom/crashlytics/android/d; + #380 = Methodref #158.#589 // com/crashlytics/android/v.b:(Ljava/lang/Thread;Ljava/lang/Throwable;)I + #381 = Methodref #158.#590 // com/crashlytics/android/v.b:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + #382 = Methodref #158.#598 // com/crashlytics/android/v.c:(Ljava/lang/String;)V + #383 = Methodref #158.#669 // com/crashlytics/android/v.k:()Z + #384 = Methodref #158.#671 // com/crashlytics/android/v.l:()V + #385 = Methodref #158.#678 // com/crashlytics/android/v.m:()V + #386 = Methodref #158.#684 // com/crashlytics/android/v.n:()Ljava/lang/String; + #387 = Methodref #158.#688 // com/crashlytics/android/v.o:()[Ljava/io/File; + #388 = Methodref #158.#691 // com/crashlytics/android/v.p:()V + #389 = Methodref #158.#693 // com/crashlytics/android/v.q:()I + #390 = Methodref #158.#695 // com/crashlytics/android/v.r:()I + #391 = Methodref #158.#703 // com/crashlytics/android/v.s:()I + #392 = Methodref #159.#485 // com/crashlytics/android/w."":()V + #393 = Methodref #160.#490 // com/crashlytics/android/x."":(Lcom/crashlytics/android/v;JLjava/lang/String;)V + #394 = Methodref #161.#496 // com/crashlytics/android/y."":(Lcom/crashlytics/android/v;[B[I)V + #395 = Methodref #162.#489 // com/crashlytics/android/z."":(Lcom/crashlytics/android/v;)V + #396 = Methodref #163.#498 // java/io/File."":(Ljava/io/File;Ljava/lang/String;)V + #397 = Methodref #163.#603 // java/io/File.createNewFile:()Z + #398 = Methodref #163.#608 // java/io/File.delete:()Z + #399 = Methodref #163.#614 // java/io/File.exists:()Z + #400 = Methodref #163.#647 // java/io/File.getName:()Ljava/lang/String; + #401 = Methodref #163.#649 // java/io/File.getPath:()Ljava/lang/String; + #402 = Methodref #163.#663 // java/io/File.isDirectory:()Z + #403 = Methodref #163.#674 // java/io/File.length:()J + #404 = Methodref #163.#675 // java/io/File.listFiles:()[Ljava/io/File; + #405 = Methodref #163.#676 // java/io/File.listFiles:(Ljava/io/FilenameFilter;)[Ljava/io/File; + #406 = Methodref #164.#497 // java/io/FileInputStream."":(Ljava/io/File;)V + #407 = Methodref #164.#699 // java/io/FileInputStream.read:([BII)I + #408 = Methodref #169.#499 // java/io/PrintWriter."":(Ljava/io/OutputStream;)V + #409 = Methodref #170.#724 // java/io/Writer.write:(Ljava/lang/String;)V + #410 = Methodref #171.#592 // java/lang/Boolean.booleanValue:()Z + #411 = Methodref #171.#722 // java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean; + #412 = Methodref #172.#647 // java/lang/Class.getName:()Ljava/lang/String; + #413 = Methodref #174.#720 // java/lang/Integer.valueOf:(I)Ljava/lang/Integer; + #414 = Methodref #175.#721 // java/lang/Long.valueOf:(J)Ljava/lang/Long; + #415 = Methodref #176.#682 // java/lang/Math.max:(II)I + #416 = Methodref #176.#683 // java/lang/Math.min:(II)I + #417 = Methodref #177.#485 // java/lang/Object."":()V + #418 = Methodref #177.#636 // java/lang/Object.getClass:()Ljava/lang/Class; + #419 = Methodref #179.#573 // java/lang/Runtime.availableProcessors:()I + #420 = Methodref #179.#651 // java/lang/Runtime.getRuntime:()Ljava/lang/Runtime; + #421 = Methodref #180.#637 // java/lang/StackTraceElement.getClassName:()Ljava/lang/String; + #422 = Methodref #180.#641 // java/lang/StackTraceElement.getFileName:()Ljava/lang/String; + #423 = Methodref #180.#644 // java/lang/StackTraceElement.getLineNumber:()I + #424 = Methodref #180.#646 // java/lang/StackTraceElement.getMethodName:()Ljava/lang/String; + #425 = Methodref #180.#665 // java/lang/StackTraceElement.isNativeMethod:()Z + #426 = Methodref #180.#715 // java/lang/StackTraceElement.toString:()Ljava/lang/String; + #427 = Methodref #181.#622 // java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + #428 = Methodref #181.#634 // java/lang/String.getBytes:(Ljava/lang/String;)[B + #429 = Methodref #181.#673 // java/lang/String.length:()I + #430 = Methodref #181.#701 // java/lang/String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + #431 = Methodref #181.#702 // java/lang/String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + #432 = Methodref #181.#712 // java/lang/String.substring:(I)Ljava/lang/String; + #433 = Methodref #181.#713 // java/lang/String.substring:(II)Ljava/lang/String; + #434 = Methodref #182.#485 // java/lang/StringBuilder."":()V + #435 = Methodref #182.#501 // java/lang/StringBuilder."":(Ljava/lang/String;)V + #436 = Methodref #182.#571 // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + #437 = Methodref #182.#572 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + #438 = Methodref #182.#715 // java/lang/StringBuilder.toString:()Ljava/lang/String; + #439 = Methodref #183.#500 // java/lang/Thread."":(Ljava/lang/Runnable;Ljava/lang/String;)V + #440 = Methodref #183.#629 // java/lang/Thread.getAllStackTraces:()Ljava/util/Map; + #441 = Methodref #183.#647 // java/lang/Thread.getName:()Ljava/lang/String; + #442 = Methodref #183.#709 // java/lang/Thread.start:()V + #443 = Methodref #185.#635 // java/lang/Throwable.getCause:()Ljava/lang/Throwable; + #444 = Methodref #185.#645 // java/lang/Throwable.getLocalizedMessage:()Ljava/lang/String; + #445 = Methodref #185.#652 // java/lang/Throwable.getStackTrace:()[Ljava/lang/StackTraceElement; + #446 = Methodref #186.#708 // java/util/Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V + #447 = Methodref #187.#706 // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map; + #448 = Methodref #188.#485 // java/util/Date."":()V + #449 = Methodref #188.#653 // java/util/Date.getTime:()J + #450 = Methodref #189.#485 // java/util/HashSet."":()V + #451 = Methodref #191.#485 // java/util/LinkedList."":()V + #452 = Methodref #197.#485 // java/util/TreeMap."":()V + #453 = Methodref #197.#503 // java/util/TreeMap."":(Ljava/util/Map;)V + #454 = Methodref #198.#698 // java/util/UUID.randomUUID:()Ljava/util/UUID; + #455 = Methodref #198.#715 // java/util/UUID.toString:()Ljava/lang/String; + #456 = Methodref #203.#504 // java/util/concurrent/atomic/AtomicBoolean."":(Z)V + #457 = Methodref #203.#627 // java/util/concurrent/atomic/AtomicBoolean.get:()Z + #458 = Methodref #203.#631 // java/util/concurrent/atomic/AtomicBoolean.getAndSet:(Z)Z + #459 = Methodref #203.#705 // java/util/concurrent/atomic/AtomicBoolean.set:(Z)V + #460 = Methodref #204.#487 // java/util/concurrent/atomic/AtomicInteger."":(I)V + #461 = Methodref #204.#630 // java/util/concurrent/atomic/AtomicInteger.getAndIncrement:()I + #462 = Methodref #205.#656 // java/util/regex/Matcher.group:(I)Ljava/lang/String; + #463 = Methodref #205.#681 // java/util/regex/Matcher.matches:()Z + #464 = Methodref #206.#600 // java/util/regex/Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern; + #465 = Methodref #206.#680 // java/util/regex/Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; + #466 = InterfaceMethodref #126.#602 // com/crashlytics/android/CrashlyticsListener.crashlyticsDidDetectCrashDuringPreviousExecution:()V + #467 = InterfaceMethodref #155.#555 // com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + #468 = InterfaceMethodref #155.#556 // com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + #469 = InterfaceMethodref #184.#717 // java/lang/Thread$UncaughtExceptionHandler.uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V + #470 = InterfaceMethodref #190.#660 // java/util/Iterator.hasNext:()Z + #471 = InterfaceMethodref #190.#686 // java/util/Iterator.next:()Ljava/lang/Object; + #472 = InterfaceMethodref #192.#570 // java/util/List.add:(Ljava/lang/Object;)Z + #473 = InterfaceMethodref #192.#628 // java/util/List.get:(I)Ljava/lang/Object; + #474 = InterfaceMethodref #194.#613 // java/util/Map.entrySet:()Ljava/util/Set; + #475 = InterfaceMethodref #194.#664 // java/util/Map.isEmpty:()Z + #476 = InterfaceMethodref #194.#707 // java/util/Map.size:()I + #477 = InterfaceMethodref #195.#643 // java/util/Map$Entry.getKey:()Ljava/lang/Object; + #478 = InterfaceMethodref #195.#654 // java/util/Map$Entry.getValue:()Ljava/lang/Object; + #479 = InterfaceMethodref #196.#570 // java/util/Set.add:(Ljava/lang/Object;)Z + #480 = InterfaceMethodref #196.#601 // java/util/Set.contains:(Ljava/lang/Object;)Z + #481 = InterfaceMethodref #196.#666 // java/util/Set.iterator:()Ljava/util/Iterator; + #482 = InterfaceMethodref #200.#710 // java/util/concurrent/ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + #483 = InterfaceMethodref #200.#711 // java/util/concurrent/ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + #484 = InterfaceMethodref #201.#626 // java/util/concurrent/Future.get:()Ljava/lang/Object; + #485 = NameAndType #887:#757 // "":()V + #486 = NameAndType #887:#761 // "":(B)V + #487 = NameAndType #887:#767 // "":(I)V + #488 = NameAndType #887:#801 // "":(Lcom/crashlytics/android/internal/ao;)V + #489 = NameAndType #887:#809 // "":(Lcom/crashlytics/android/v;)V + #490 = NameAndType #887:#811 // "":(Lcom/crashlytics/android/v;JLjava/lang/String;)V + #491 = NameAndType #887:#812 // "":(Lcom/crashlytics/android/v;Ljava/io/File;)V + #492 = NameAndType #887:#814 // "":(Lcom/crashlytics/android/v;Ljava/lang/Runnable;)V + #493 = NameAndType #887:#815 // "":(Lcom/crashlytics/android/v;Ljava/lang/String;)V + #494 = NameAndType #887:#816 // "":(Lcom/crashlytics/android/v;Ljava/util/Date;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #495 = NameAndType #887:#817 // "":(Lcom/crashlytics/android/v;Ljava/util/concurrent/Callable;)V + #496 = NameAndType #887:#819 // "":(Lcom/crashlytics/android/v;[B[I)V + #497 = NameAndType #887:#822 // "":(Ljava/io/File;)V + #498 = NameAndType #887:#824 // "":(Ljava/io/File;Ljava/lang/String;)V + #499 = NameAndType #887:#828 // "":(Ljava/io/OutputStream;)V + #500 = NameAndType #887:#836 // "":(Ljava/lang/Runnable;Ljava/lang/String;)V + #501 = NameAndType #887:#844 // "":(Ljava/lang/String;)V + #502 = NameAndType #887:#853 // "":(Ljava/lang/Thread$UncaughtExceptionHandler;Lcom/crashlytics/android/CrashlyticsListener;Ljava/util/concurrent/ExecutorService;Ljava/lang/String;)V + #503 = NameAndType #887:#864 // "":(Ljava/util/Map;)V + #504 = NameAndType #887:#869 // "":(Z)V + #505 = NameAndType #895:#953 // CODENAME:Ljava/lang/String; + #506 = NameAndType #969:#953 // MANUFACTURER:Ljava/lang/String; + #507 = NameAndType #970:#953 // MODEL:Ljava/lang/String; + #508 = NameAndType #975:#953 // PRODUCT:Ljava/lang/String; + #509 = NameAndType #977:#953 // RELEASE:Ljava/lang/String; + #510 = NameAndType #997:#961 // US:Ljava/util/Locale; + #511 = NameAndType #1009:#736 // a:()I + #512 = NameAndType #1009:#745 // a:()Lcom/crashlytics/android/internal/v; + #513 = NameAndType #1009:#753 // a:()Ljava/util/Map; + #514 = NameAndType #1009:#757 // a:()V + #515 = NameAndType #1009:#762 // a:(FIZIJJ)I + #516 = NameAndType #1009:#763 // a:(I)I + #517 = NameAndType #1009:#766 // a:(I)Ljava/lang/String; + #518 = NameAndType #1009:#769 // a:(IF)V + #519 = NameAndType #1009:#772 // a:(II)V + #520 = NameAndType #1009:#774 // a:(IJ)V + #521 = NameAndType #1009:#776 // a:(ILcom/crashlytics/android/d;)V + #522 = NameAndType #1009:#777 // a:(ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;IJJZLjava/util/Map;ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;)I + #523 = NameAndType #1009:#779 // a:(ILjava/lang/String;)V + #524 = NameAndType #1009:#781 // a:(IZ)V + #525 = NameAndType #1009:#787 // a:(Landroid/content/Context;)J + #526 = NameAndType #1009:#789 // a:(Landroid/content/Context;Ljava/lang/String;Z)Z + #527 = NameAndType #1009:#790 // a:(Landroid/content/Context;Z)Ljava/lang/String; + #528 = NameAndType #1009:#791 // a:(Lcom/crashlytics/android/f;)V + #529 = NameAndType #1009:#792 // a:(Lcom/crashlytics/android/h;ILjava/lang/StackTraceElement;Z)V + #530 = NameAndType #1009:#793 // a:(Lcom/crashlytics/android/h;Ljava/io/File;)V + #531 = NameAndType #1009:#794 // a:(Lcom/crashlytics/android/h;Ljava/lang/String;)V + #532 = NameAndType #1009:#795 // a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #533 = NameAndType #1009:#796 // a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)V + #534 = NameAndType #1009:#797 // a:(Lcom/crashlytics/android/h;Ljava/lang/Throwable;II)V + #535 = NameAndType #1009:#798 // a:(Lcom/crashlytics/android/h;Ljava/util/Map;)V + #536 = NameAndType #1009:#800 // a:(Lcom/crashlytics/android/h;[Ljava/io/File;Ljava/lang/String;)V + #537 = NameAndType #1009:#802 // a:(Lcom/crashlytics/android/internal/ap;Ljava/lang/String;)I + #538 = NameAndType #1009:#803 // a:(Lcom/crashlytics/android/internal/aq;)Lcom/crashlytics/android/d; + #539 = NameAndType #1009:#805 // a:(Lcom/crashlytics/android/internal/au;)V + #540 = NameAndType #1009:#820 // a:(Ljava/io/Closeable;Ljava/lang/String;)V + #541 = NameAndType #1009:#821 // a:(Ljava/io/File;)Ljava/lang/String; + #542 = NameAndType #1009:#823 // a:(Ljava/io/File;Ljava/io/FilenameFilter;ILjava/util/Comparator;)V + #543 = NameAndType #1009:#825 // a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + #544 = NameAndType #1009:#826 // a:(Ljava/io/Flushable;Ljava/lang/String;)V + #545 = NameAndType #1009:#827 // a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + #546 = NameAndType #1009:#834 // a:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + #547 = NameAndType #1009:#837 // a:(Ljava/lang/StackTraceElement;Z)I + #548 = NameAndType #1009:#839 // a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + #549 = NameAndType #1009:#840 // a:(Ljava/lang/String;)Lcom/crashlytics/android/internal/ai; + #550 = NameAndType #1009:#842 // a:(Ljava/lang/String;)Ljava/util/concurrent/ExecutorService; + #551 = NameAndType #1009:#844 // a:(Ljava/lang/String;)V + #552 = NameAndType #1009:#846 // a:(Ljava/lang/String;I)V + #553 = NameAndType #1009:#847 // a:(Ljava/lang/String;Landroid/content/Context;)Landroid/app/ActivityManager$RunningAppProcessInfo; + #554 = NameAndType #1009:#848 // a:(Ljava/lang/String;Ljava/lang/String;)I + #555 = NameAndType #1009:#850 // a:(Ljava/lang/String;Ljava/lang/String;)V + #556 = NameAndType #1009:#851 // a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + #557 = NameAndType #1009:#856 // a:(Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + #558 = NameAndType #1009:#858 // a:(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)I + #559 = NameAndType #1009:#859 // a:(Ljava/lang/Throwable;I)I + #560 = NameAndType #1009:#860 // a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + #561 = NameAndType #1009:#861 // a:(Ljava/lang/Throwable;Ljava/io/Writer;)V + #562 = NameAndType #1009:#862 // a:(Ljava/util/Date;Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/lang/String;Z)V + #563 = NameAndType #1009:#865 // a:(Ljava/util/concurrent/Callable;)Ljava/lang/Object; + #564 = NameAndType #1009:#867 // a:(Z)I + #565 = NameAndType #1009:#871 // a:([B)V + #566 = NameAndType #1009:#873 // a:([BII)Lcom/crashlytics/android/d; + #567 = NameAndType #1009:#944 // a:I + #568 = NameAndType #1009:#952 // a:Ljava/io/FilenameFilter; + #569 = NameAndType #1009:#957 // a:Ljava/util/Comparator; + #570 = NameAndType #1010:#832 // add:(Ljava/lang/Object;)Z + #571 = NameAndType #1022:#831 // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + #572 = NameAndType #1022:#841 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + #573 = NameAndType #1023:#736 // availableProcessors:()I + #574 = NameAndType #1024:#736 // b:()I + #575 = NameAndType #1024:#743 // b:()Lcom/crashlytics/android/internal/ao; + #576 = NameAndType #1024:#744 // b:()Lcom/crashlytics/android/internal/q; + #577 = NameAndType #1024:#750 // b:()Ljava/lang/String; + #578 = NameAndType #1024:#758 // b:()Z + #579 = NameAndType #1024:#767 // b:(I)V + #580 = NameAndType #1024:#768 // b:(IF)I + #581 = NameAndType #1024:#772 // b:(II)V + #582 = NameAndType #1024:#773 // b:(IJ)I + #583 = NameAndType #1024:#775 // b:(ILcom/crashlytics/android/d;)I + #584 = NameAndType #1024:#780 // b:(IZ)I + #585 = NameAndType #1024:#786 // b:(Landroid/content/Context;)F + #586 = NameAndType #1024:#838 // b:(Ljava/lang/String;)J + #587 = NameAndType #1024:#839 // b:(Ljava/lang/String;)Lcom/crashlytics/android/d; + #588 = NameAndType #1024:#844 // b:(Ljava/lang/String;)V + #589 = NameAndType #1024:#854 // b:(Ljava/lang/Thread;Ljava/lang/Throwable;)I + #590 = NameAndType #1024:#866 // b:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + #591 = NameAndType #1024:#957 // b:Ljava/util/Comparator; + #592 = NameAndType #1025:#758 // booleanValue:()Z + #593 = NameAndType #1026:#737 // c:()J + #594 = NameAndType #1026:#757 // c:()V + #595 = NameAndType #1026:#763 // c:(I)I + #596 = NameAndType #1026:#772 // c:(II)V + #597 = NameAndType #1026:#788 // c:(Landroid/content/Context;)Z + #598 = NameAndType #1026:#844 // c:(Ljava/lang/String;)V + #599 = NameAndType #1026:#957 // c:Ljava/util/Comparator; + #600 = NameAndType #1070:#843 // compile:(Ljava/lang/String;)Ljava/util/regex/Pattern; + #601 = NameAndType #1071:#832 // contains:(Ljava/lang/Object;)Z + #602 = NameAndType #1075:#757 // crashlyticsDidDetectCrashDuringPreviousExecution:()V + #603 = NameAndType #1076:#758 // createNewFile:()Z + #604 = NameAndType #1077:#750 // d:()Ljava/lang/String; + #605 = NameAndType #1077:#758 // d:()Z + #606 = NameAndType #1077:#770 // d:(II)I + #607 = NameAndType #1077:#967 // d:Ljava/util/regex/Pattern; + #608 = NameAndType #1078:#758 // delete:()Z + #609 = NameAndType #1079:#750 // e:()Ljava/lang/String; + #610 = NameAndType #1079:#758 // e:()Z + #611 = NameAndType #1079:#770 // e:(II)I + #612 = NameAndType #1079:#962 // e:Ljava/util/Map; + #613 = NameAndType #1080:#754 // entrySet:()Ljava/util/Set; + #614 = NameAndType #1083:#758 // exists:()Z + #615 = NameAndType #1084:#736 // f:()I + #616 = NameAndType #1084:#750 // f:()Ljava/lang/String; + #617 = NameAndType #1084:#753 // f:()Ljava/util/Map; + #618 = NameAndType #1084:#758 // f:()Z + #619 = NameAndType #1084:#770 // f:(II)I + #620 = NameAndType #1084:#944 // f:I + #621 = NameAndType #1084:#947 // f:Lcom/crashlytics/android/d; + #622 = NameAndType #1085:#863 // format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + #623 = NameAndType #1086:#750 // g:()Ljava/lang/String; + #624 = NameAndType #1086:#772 // g:(II)V + #625 = NameAndType #1086:#966 // g:Ljava/util/concurrent/atomic/AtomicInteger; + #626 = NameAndType #1087:#748 // get:()Ljava/lang/Object; + #627 = NameAndType #1087:#758 // get:()Z + #628 = NameAndType #1087:#765 // get:(I)Ljava/lang/Object; + #629 = NameAndType #1088:#753 // getAllStackTraces:()Ljava/util/Map; + #630 = NameAndType #1089:#736 // getAndIncrement:()I + #631 = NameAndType #1090:#870 // getAndSet:(Z)Z + #632 = NameAndType #1091:#736 // getBlockCount:()I + #633 = NameAndType #1092:#736 // getBlockSize:()I + #634 = NameAndType #1093:#845 // getBytes:(Ljava/lang/String;)[B + #635 = NameAndType #1094:#751 // getCause:()Ljava/lang/Throwable; + #636 = NameAndType #1095:#747 // getClass:()Ljava/lang/Class; + #637 = NameAndType #1096:#750 // getClassName:()Ljava/lang/String; + #638 = NameAndType #1097:#739 // getConfiguration:()Landroid/content/res/Configuration; + #639 = NameAndType #1098:#738 // getContext:()Landroid/content/Context; + #640 = NameAndType #1099:#746 // getDataDirectory:()Ljava/io/File; + #641 = NameAndType #1100:#750 // getFileName:()Ljava/lang/String; + #642 = NameAndType #1101:#741 // getInstance:()Lcom/crashlytics/android/Crashlytics; + #643 = NameAndType #1102:#748 // getKey:()Ljava/lang/Object; + #644 = NameAndType #1103:#736 // getLineNumber:()I + #645 = NameAndType #1104:#750 // getLocalizedMessage:()Ljava/lang/String; + #646 = NameAndType #1105:#750 // getMethodName:()Ljava/lang/String; + #647 = NameAndType #1106:#750 // getName:()Ljava/lang/String; + #648 = NameAndType #1107:#750 // getPackageCodePath:()Ljava/lang/String; + #649 = NameAndType #1108:#750 // getPath:()Ljava/lang/String; + #650 = NameAndType #1109:#740 // getResources:()Landroid/content/res/Resources; + #651 = NameAndType #1110:#749 // getRuntime:()Ljava/lang/Runtime; + #652 = NameAndType #1111:#760 // getStackTrace:()[Ljava/lang/StackTraceElement; + #653 = NameAndType #1112:#737 // getTime:()J + #654 = NameAndType #1113:#748 // getValue:()Ljava/lang/Object; + #655 = NameAndType #1114:#750 // getVersion:()Ljava/lang/String; + #656 = NameAndType #1115:#766 // group:(I)Ljava/lang/String; + #657 = NameAndType #1116:#746 // h:()Ljava/io/File; + #658 = NameAndType #1116:#750 // h:()Ljava/lang/String; + #659 = NameAndType #1116:#965 // h:Ljava/util/concurrent/atomic/AtomicBoolean; + #660 = NameAndType #1117:#758 // hasNext:()Z + #661 = NameAndType #1118:#944 // i:I + #662 = NameAndType #1119:#944 // importance:I + #663 = NameAndType #1122:#758 // isDirectory:()Z + #664 = NameAndType #1123:#758 // isEmpty:()Z + #665 = NameAndType #1124:#758 // isNativeMethod:()Z + #666 = NameAndType #1125:#752 // iterator:()Ljava/util/Iterator; + #667 = NameAndType #1126:#758 // j:()Z + #668 = NameAndType #1126:#954 // j:Ljava/lang/Thread$UncaughtExceptionHandler; + #669 = NameAndType #1171:#758 // k:()Z + #670 = NameAndType #1171:#951 // k:Ljava/io/File; + #671 = NameAndType #1172:#757 // l:()V + #672 = NameAndType #1172:#951 // l:Ljava/io/File; + #673 = NameAndType #1173:#736 // length:()I + #674 = NameAndType #1173:#737 // length:()J + #675 = NameAndType #1174:#759 // listFiles:()[Ljava/io/File; + #676 = NameAndType #1174:#825 // listFiles:(Ljava/io/FilenameFilter;)[Ljava/io/File; + #677 = NameAndType #1175:#750 // m:()Ljava/lang/String; + #678 = NameAndType #1175:#757 // m:()V + #679 = NameAndType #1175:#965 // m:Ljava/util/concurrent/atomic/AtomicBoolean; + #680 = NameAndType #1176:#829 // matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; + #681 = NameAndType #1177:#758 // matches:()Z + #682 = NameAndType #1178:#770 // max:(II)I + #683 = NameAndType #1179:#770 // min:(II)I + #684 = NameAndType #1180:#750 // n:()Ljava/lang/String; + #685 = NameAndType #1180:#953 // n:Ljava/lang/String; + #686 = NameAndType #1181:#748 // next:()Ljava/lang/Object; + #687 = NameAndType #1183:#750 // o:()Ljava/lang/String; + #688 = NameAndType #1183:#759 // o:()[Ljava/io/File; + #689 = NameAndType #1183:#946 // o:Landroid/content/BroadcastReceiver; + #690 = NameAndType #1184:#944 // orientation:I + #691 = NameAndType #1185:#757 // p:()V + #692 = NameAndType #1185:#946 // p:Landroid/content/BroadcastReceiver; + #693 = NameAndType #1186:#736 // q:()I + #694 = NameAndType #1186:#947 // q:Lcom/crashlytics/android/d; + #695 = NameAndType #1187:#736 // r:()I + #696 = NameAndType #1187:#742 // r:()Lcom/crashlytics/android/internal/aR; + #697 = NameAndType #1187:#947 // r:Lcom/crashlytics/android/d; + #698 = NameAndType #1188:#755 // randomUUID:()Ljava/util/UUID; + #699 = NameAndType #1189:#872 // read:([BII)I + #700 = NameAndType #1190:#785 // registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; + #701 = NameAndType #1191:#830 // replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + #702 = NameAndType #1192:#849 // replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + #703 = NameAndType #1193:#736 // s:()I + #704 = NameAndType #1193:#964 // s:Ljava/util/concurrent/ExecutorService; + #705 = NameAndType #1194:#869 // set:(Z)V + #706 = NameAndType #1195:#833 // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map; + #707 = NameAndType #1196:#736 // size:()I + #708 = NameAndType #1197:#875 // sort:([Ljava/lang/Object;Ljava/util/Comparator;)V + #709 = NameAndType #1198:#757 // start:()V + #710 = NameAndType #1199:#834 // submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + #711 = NameAndType #1199:#866 // submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + #712 = NameAndType #1200:#766 // substring:(I)Ljava/lang/String; + #713 = NameAndType #1200:#771 // substring:(II)Ljava/lang/String; + #714 = NameAndType #1201:#945 // t:Landroid/app/ActivityManager$RunningAppProcessInfo; + #715 = NameAndType #1204:#750 // toString:()Ljava/lang/String; + #716 = NameAndType #1205:#948 // u:Lcom/crashlytics/android/internal/aq; + #717 = NameAndType #1206:#855 // uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V + #718 = NameAndType #1207:#784 // unregisterReceiver:(Landroid/content/BroadcastReceiver;)V + #719 = NameAndType #1208:#1002 // v:Z + #720 = NameAndType #1209:#764 // valueOf:(I)Ljava/lang/Integer; + #721 = NameAndType #1209:#782 // valueOf:(J)Ljava/lang/Long; + #722 = NameAndType #1209:#868 // valueOf:(Z)Ljava/lang/Boolean; + #723 = NameAndType #1210:#1008 // w:[Ljava/lang/Thread; + #724 = NameAndType #1211:#844 // write:(Ljava/lang/String;)V + #725 = NameAndType #1212:#959 // x:Ljava/util/List; + #726 = NameAndType #1213:#1006 // y:[Ljava/lang/StackTraceElement; + #727 = Utf8 + #728 = Utf8 \tat + #729 = Utf8 \n + #730 = Utf8 \r + #731 = Utf8 + #732 = Utf8 data for session ID + #733 = Utf8 \" from thread + #734 = Utf8 %d %s%n + #735 = Utf8 (\r\n|\n| ) + #736 = Utf8 ()I + #737 = Utf8 ()J + #738 = Utf8 ()Landroid/content/Context; + #739 = Utf8 ()Landroid/content/res/Configuration; + #740 = Utf8 ()Landroid/content/res/Resources; + #741 = Utf8 ()Lcom/crashlytics/android/Crashlytics; + #742 = Utf8 ()Lcom/crashlytics/android/internal/aR; + #743 = Utf8 ()Lcom/crashlytics/android/internal/ao; + #744 = Utf8 ()Lcom/crashlytics/android/internal/q; + #745 = Utf8 ()Lcom/crashlytics/android/internal/v; + #746 = Utf8 ()Ljava/io/File; + #747 = Utf8 ()Ljava/lang/Class; + #748 = Utf8 ()Ljava/lang/Object; + #749 = Utf8 ()Ljava/lang/Runtime; + #750 = Utf8 ()Ljava/lang/String; + #751 = Utf8 ()Ljava/lang/Throwable; + #752 = Utf8 ()Ljava/util/Iterator; + #753 = Utf8 ()Ljava/util/Map; + #754 = Utf8 ()Ljava/util/Set; + #755 = Utf8 ()Ljava/util/UUID; + #756 = Utf8 ()Ljava/util/regex/Pattern; + #757 = Utf8 ()V + #758 = Utf8 ()Z + #759 = Utf8 ()[Ljava/io/File; + #760 = Utf8 ()[Ljava/lang/StackTraceElement; + #761 = Utf8 (B)V + #762 = Utf8 (FIZIJJ)I + #763 = Utf8 (I)I + #764 = Utf8 (I)Ljava/lang/Integer; + #765 = Utf8 (I)Ljava/lang/Object; + #766 = Utf8 (I)Ljava/lang/String; + #767 = Utf8 (I)V + #768 = Utf8 (IF)I + #769 = Utf8 (IF)V + #770 = Utf8 (II)I + #771 = Utf8 (II)Ljava/lang/String; + #772 = Utf8 (II)V + #773 = Utf8 (IJ)I + #774 = Utf8 (IJ)V + #775 = Utf8 (ILcom/crashlytics/android/d;)I + #776 = Utf8 (ILcom/crashlytics/android/d;)V + #777 = Utf8 (ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;IJJZLjava/util/Map;ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;)I + #778 = Utf8 (ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;IJJZLjava/util/Map;ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;)I + #779 = Utf8 (ILjava/lang/String;)V + #780 = Utf8 (IZ)I + #781 = Utf8 (IZ)V + #782 = Utf8 (J)Ljava/lang/Long; + #783 = Utf8 (JLjava/lang/String;)V + #784 = Utf8 (Landroid/content/BroadcastReceiver;)V + #785 = Utf8 (Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; + #786 = Utf8 (Landroid/content/Context;)F + #787 = Utf8 (Landroid/content/Context;)J + #788 = Utf8 (Landroid/content/Context;)Z + #789 = Utf8 (Landroid/content/Context;Ljava/lang/String;Z)Z + #790 = Utf8 (Landroid/content/Context;Z)Ljava/lang/String; + #791 = Utf8 (Lcom/crashlytics/android/f;)V + #792 = Utf8 (Lcom/crashlytics/android/h;ILjava/lang/StackTraceElement;Z)V + #793 = Utf8 (Lcom/crashlytics/android/h;Ljava/io/File;)V + #794 = Utf8 (Lcom/crashlytics/android/h;Ljava/lang/String;)V + #795 = Utf8 (Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #796 = Utf8 (Lcom/crashlytics/android/h;Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)V + #797 = Utf8 (Lcom/crashlytics/android/h;Ljava/lang/Throwable;II)V + #798 = Utf8 (Lcom/crashlytics/android/h;Ljava/util/Map;)V + #799 = Utf8 (Lcom/crashlytics/android/h;Ljava/util/Map;)V + #800 = Utf8 (Lcom/crashlytics/android/h;[Ljava/io/File;Ljava/lang/String;)V + #801 = Utf8 (Lcom/crashlytics/android/internal/ao;)V + #802 = Utf8 (Lcom/crashlytics/android/internal/ap;Ljava/lang/String;)I + #803 = Utf8 (Lcom/crashlytics/android/internal/aq;)Lcom/crashlytics/android/d; + #804 = Utf8 (Lcom/crashlytics/android/internal/aq;IJLjava/lang/String;)V + #805 = Utf8 (Lcom/crashlytics/android/internal/au;)V + #806 = Utf8 (Lcom/crashlytics/android/v;)Lcom/crashlytics/android/internal/aq; + #807 = Utf8 (Lcom/crashlytics/android/v;)Ljava/io/File; + #808 = Utf8 (Lcom/crashlytics/android/v;)Ljava/util/concurrent/atomic/AtomicBoolean; + #809 = Utf8 (Lcom/crashlytics/android/v;)V + #810 = Utf8 (Lcom/crashlytics/android/v;)Z + #811 = Utf8 (Lcom/crashlytics/android/v;JLjava/lang/String;)V + #812 = Utf8 (Lcom/crashlytics/android/v;Ljava/io/File;)V + #813 = Utf8 (Lcom/crashlytics/android/v;Ljava/io/FilenameFilter;)[Ljava/io/File; + #814 = Utf8 (Lcom/crashlytics/android/v;Ljava/lang/Runnable;)V + #815 = Utf8 (Lcom/crashlytics/android/v;Ljava/lang/String;)V + #816 = Utf8 (Lcom/crashlytics/android/v;Ljava/util/Date;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #817 = Utf8 (Lcom/crashlytics/android/v;Ljava/util/concurrent/Callable;)V + #818 = Utf8 (Lcom/crashlytics/android/v;Z)Z + #819 = Utf8 (Lcom/crashlytics/android/v;[B[I)V + #820 = Utf8 (Ljava/io/Closeable;Ljava/lang/String;)V + #821 = Utf8 (Ljava/io/File;)Ljava/lang/String; + #822 = Utf8 (Ljava/io/File;)V + #823 = Utf8 (Ljava/io/File;Ljava/io/FilenameFilter;ILjava/util/Comparator;)V + #824 = Utf8 (Ljava/io/File;Ljava/lang/String;)V + #825 = Utf8 (Ljava/io/FilenameFilter;)[Ljava/io/File; + #826 = Utf8 (Ljava/io/Flushable;Ljava/lang/String;)V + #827 = Utf8 (Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + #828 = Utf8 (Ljava/io/OutputStream;)V + #829 = Utf8 (Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; + #830 = Utf8 (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + #831 = Utf8 (Ljava/lang/Object;)Ljava/lang/StringBuilder; + #832 = Utf8 (Ljava/lang/Object;)Z + #833 = Utf8 (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map; + #834 = Utf8 (Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + #835 = Utf8 (Ljava/lang/Runnable;)Ljava/util/concurrent/Future<*>; + #836 = Utf8 (Ljava/lang/Runnable;Ljava/lang/String;)V + #837 = Utf8 (Ljava/lang/StackTraceElement;Z)I + #838 = Utf8 (Ljava/lang/String;)J + #839 = Utf8 (Ljava/lang/String;)Lcom/crashlytics/android/d; + #840 = Utf8 (Ljava/lang/String;)Lcom/crashlytics/android/internal/ai; + #841 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; + #842 = Utf8 (Ljava/lang/String;)Ljava/util/concurrent/ExecutorService; + #843 = Utf8 (Ljava/lang/String;)Ljava/util/regex/Pattern; + #844 = Utf8 (Ljava/lang/String;)V + #845 = Utf8 (Ljava/lang/String;)[B + #846 = Utf8 (Ljava/lang/String;I)V + #847 = Utf8 (Ljava/lang/String;Landroid/content/Context;)Landroid/app/ActivityManager$RunningAppProcessInfo; + #848 = Utf8 (Ljava/lang/String;Ljava/lang/String;)I + #849 = Utf8 (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + #850 = Utf8 (Ljava/lang/String;Ljava/lang/String;)V + #851 = Utf8 (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + #852 = Utf8 (Ljava/lang/Thread$UncaughtExceptionHandler;Lcom/crashlytics/android/CrashlyticsListener;Ljava/lang/String;)V + #853 = Utf8 (Ljava/lang/Thread$UncaughtExceptionHandler;Lcom/crashlytics/android/CrashlyticsListener;Ljava/util/concurrent/ExecutorService;Ljava/lang/String;)V + #854 = Utf8 (Ljava/lang/Thread;Ljava/lang/Throwable;)I + #855 = Utf8 (Ljava/lang/Thread;Ljava/lang/Throwable;)V + #856 = Utf8 (Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + #857 = Utf8 (Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + #858 = Utf8 (Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)I + #859 = Utf8 (Ljava/lang/Throwable;I)I + #860 = Utf8 (Ljava/lang/Throwable;Ljava/io/OutputStream;)V + #861 = Utf8 (Ljava/lang/Throwable;Ljava/io/Writer;)V + #862 = Utf8 (Ljava/util/Date;Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/lang/String;Z)V + #863 = Utf8 (Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + #864 = Utf8 (Ljava/util/Map;)V + #865 = Utf8 (Ljava/util/concurrent/Callable;)Ljava/lang/Object; + #866 = Utf8 (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + #867 = Utf8 (Z)I + #868 = Utf8 (Z)Ljava/lang/Boolean; + #869 = Utf8 (Z)V + #870 = Utf8 (Z)Z + #871 = Utf8 ([B)V + #872 = Utf8 ([BII)I + #873 = Utf8 ([BII)Lcom/crashlytics/android/d; + #874 = Utf8 ([Ljava/io/File;)V + #875 = Utf8 ([Ljava/lang/Object;Ljava/util/Comparator;)V + #876 = Utf8 ([\d|A-Z|a-z]{12}\-[\d|A-Z|a-z]{4}\-[\d|A-Z|a-z]{4}\-[\d|A-Z|a-z]{12}).+ + #877 = Utf8 - + #878 = Utf8 . + #879 = Utf8 ... + #880 = Utf8 .temp + #881 = Utf8 0 + #882 = Utf8 1 + #883 = Utf8 : + #884 = Utf8 (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + #885 = Utf8 (Ljava/util/concurrent/Callable;)TT; + #886 = Utf8 + #887 = Utf8 + #888 = Utf8 A problem occurred while reading the Crashlytics log file. + #889 = Utf8 An error occurred in the fatal exception logger + #890 = Utf8 An error occurred in the non-fatal exception logger + #891 = Utf8 An error occurred in the uncaught exception handler + #892 = Utf8 An error occurred when trimming non-fatal files. + #893 = Utf8 Attempting to send crash report at time of crash... + #894 = Utf8 BeginSession + #895 = Utf8 CODENAME + #896 = Utf8 Can't find + #897 = Utf8 Caused by: + #898 = Utf8 Checking for previous crash marker. + #899 = Utf8 Closing all open sessions. + #900 = Utf8 Closing session: + #901 = Utf8 Code + #902 = Utf8 Collecting + #903 = Utf8 Collecting SessionStart data for session ID + #904 = Utf8 Collecting session parts for ID + #905 = Utf8 Could not close log file: + #906 = Utf8 Could not create log file: + #907 = Utf8 Could not write stack trace + #908 = Utf8 Crashlytics + #909 = Utf8 Crashlytics Android SDK/%s + #910 = Utf8 Crashlytics Exception Handler + #911 = Utf8 Crashlytics Report Uploader + #912 = Utf8 Crashlytics completed exception processing. Invoking default exception handler. + #913 = Utf8 Crashlytics is handling uncaught exception \" + #914 = Utf8 Crashlytics is logging non-fatal exception \" + #915 = Utf8 Deleting all part files for invalid session: + #916 = Utf8 Deleting session file: + #917 = Utf8 Error closing session file stream in the presence of an exception + #918 = Utf8 Error flushing session file stream + #919 = Utf8 Error writting non-fatal to session. + #920 = Utf8 Exception thrown by CrashlyticsListener while notifying of previous crash. + #921 = Utf8 Exceptions + #922 = Utf8 Executor is shut down because we're handling a fatal crash. + #923 = Utf8 Failed to close CLS file + #924 = Utf8 Failed to close begin session file. + #925 = Utf8 Failed to close fatal exception file output stream. + #926 = Utf8 Failed to close file input stream. + #927 = Utf8 Failed to close non-fatal file output stream. + #928 = Utf8 Failed to close session OS file. + #929 = Utf8 Failed to close session app file. + #930 = Utf8 Failed to close session device file. + #931 = Utf8 Failed to close session user file. + #932 = Utf8 Failed to close stack trace writer. + #933 = Utf8 Failed to create PrintWriter + #934 = Utf8 Failed to execute task. + #935 = Utf8 Failed to flush session device info. + #936 = Utf8 Failed to flush session user file. + #937 = Utf8 Failed to flush to non-fatal file. + #938 = Utf8 Failed to flush to session OS file. + #939 = Utf8 Failed to flush to session app file. + #940 = Utf8 Failed to flush to session begin file. + #941 = Utf8 Failed to write session file for session ID: + #942 = Utf8 Found Non Fatal for session ID %s in %s + #943 = Utf8 Found invalid session part file: + #944 = Utf8 I + #945 = Utf8 Landroid/app/ActivityManager$RunningAppProcessInfo; + #946 = Utf8 Landroid/content/BroadcastReceiver; + #947 = Utf8 Lcom/crashlytics/android/d; + #948 = Utf8 Lcom/crashlytics/android/internal/aq; + #949 = Utf8 Lcom/crashlytics/android/v; + #950 = Utf8 LineNumberTable + #951 = Utf8 Ljava/io/File; + #952 = Utf8 Ljava/io/FilenameFilter; + #953 = Utf8 Ljava/lang/String; + #954 = Utf8 Ljava/lang/Thread$UncaughtExceptionHandler; + #955 = Utf8 Ljava/lang/Thread; + #956 = Utf8 Ljava/lang/Throwable; + #957 = Utf8 Ljava/util/Comparator; + #958 = Utf8 Ljava/util/Comparator; + #959 = Utf8 Ljava/util/List; + #960 = Utf8 Ljava/util/List<[Ljava/lang/StackTraceElement;>; + #961 = Utf8 Ljava/util/Locale; + #962 = Utf8 Ljava/util/Map; + #963 = Utf8 Ljava/util/Map; + #964 = Utf8 Ljava/util/concurrent/ExecutorService; + #965 = Utf8 Ljava/util/concurrent/atomic/AtomicBoolean; + #966 = Utf8 Ljava/util/concurrent/atomic/AtomicInteger; + #967 = Utf8 Ljava/util/regex/Pattern; + #968 = Utf8 LocalVariableTable + #969 = Utf8 MANUFACTURER + #970 = Utf8 MODEL + #971 = Utf8 No events present for session ID + #972 = Utf8 No log data to include with this event. + #973 = Utf8 No session begin files found. + #974 = Utf8 Opening an new session with ID + #975 = Utf8 PRODUCT + #976 = Utf8 Preferences requested not to collect custom logs. Aborting log file creation. + #977 = Utf8 RELEASE + #978 = Utf8 Removing session part files for ID + #979 = Utf8 Session %s has fatal exception: %s + #980 = Utf8 Session %s has non-fatal exceptions: %s + #981 = Utf8 SessionApp + #982 = Utf8 SessionCrash + #983 = Utf8 SessionDevice + #984 = Utf8 SessionEvent + #985 = Utf8 SessionOS + #986 = Utf8 SessionUser + #987 = Utf8 Signature + #988 = Utf8 SourceFile + #989 = Utf8 StackMapTable + #990 = Utf8 There was a problem closing the Crashlytics log file. + #991 = Utf8 There was a problem writing to the Crashlytics log. + #992 = Utf8 Tried to include a file that doesn't exist: + #993 = Utf8 Tried to write a fatal exception while no session was open. + #994 = Utf8 Tried to write a non-fatal exception while no session was open. + #995 = Utf8 Trimming down to %d logged exceptions. + #996 = Utf8 Trimming open session file: + #997 = Utf8 US + #998 = Utf8 UTF-8 + #999 = Utf8 Unable to close session. Settings are not loaded. + #1000 = Utf8 Unregistering power receivers. + #1001 = Utf8 X-CRASHLYTICS-SEND-FLAGS + #1002 = Utf8 Z + #1003 = Utf8 [B + #1004 = Utf8 [I + #1005 = Utf8 [Ljava/io/File; + #1006 = Utf8 [Ljava/lang/StackTraceElement; + #1007 = Utf8 [Ljava/lang/String; + #1008 = Utf8 [Ljava/lang/Thread; + #1009 = Utf8 a + #1010 = Utf8 add + #1011 = Utf8 android.intent.action.ACTION_POWER_CONNECTED + #1012 = Utf8 android.intent.action.ACTION_POWER_DISCONNECTED + #1013 = Utf8 android/app/ActivityManager$RunningAppProcessInfo + #1014 = Utf8 android/content/Context + #1015 = Utf8 android/content/IntentFilter + #1016 = Utf8 android/content/res/Configuration + #1017 = Utf8 android/content/res/Resources + #1018 = Utf8 android/os/Build + #1019 = Utf8 android/os/Build$VERSION + #1020 = Utf8 android/os/Environment + #1021 = Utf8 android/os/StatFs + #1022 = Utf8 append + #1023 = Utf8 availableProcessors + #1024 = Utf8 b + #1025 = Utf8 booleanValue + #1026 = Utf8 c + #1027 = Utf8 com.crashlytics.CollectCustomKeys + #1028 = Utf8 com.crashlytics.CollectCustomLogs + #1029 = Utf8 com/crashlytics/android/A + #1030 = Utf8 com/crashlytics/android/B + #1031 = Utf8 com/crashlytics/android/C + #1032 = Utf8 com/crashlytics/android/Crashlytics + #1033 = Utf8 com/crashlytics/android/CrashlyticsListener + #1034 = Utf8 com/crashlytics/android/D + #1035 = Utf8 com/crashlytics/android/E + #1036 = Utf8 com/crashlytics/android/F + #1037 = Utf8 com/crashlytics/android/G + #1038 = Utf8 com/crashlytics/android/H + #1039 = Utf8 com/crashlytics/android/I + #1040 = Utf8 com/crashlytics/android/J + #1041 = Utf8 com/crashlytics/android/K + #1042 = Utf8 com/crashlytics/android/L + #1043 = Utf8 com/crashlytics/android/M + #1044 = Utf8 com/crashlytics/android/N + #1045 = Utf8 com/crashlytics/android/O + #1046 = Utf8 com/crashlytics/android/P + #1047 = Utf8 com/crashlytics/android/Q + #1048 = Utf8 com/crashlytics/android/R + #1049 = Utf8 com/crashlytics/android/S + #1050 = Utf8 com/crashlytics/android/b + #1051 = Utf8 com/crashlytics/android/d + #1052 = Utf8 com/crashlytics/android/e + #1053 = Utf8 com/crashlytics/android/f + #1054 = Utf8 com/crashlytics/android/h + #1055 = Utf8 com/crashlytics/android/internal/aR + #1056 = Utf8 com/crashlytics/android/internal/ab + #1057 = Utf8 com/crashlytics/android/internal/ah + #1058 = Utf8 com/crashlytics/android/internal/ai + #1059 = Utf8 com/crashlytics/android/internal/ao + #1060 = Utf8 com/crashlytics/android/internal/ap + #1061 = Utf8 com/crashlytics/android/internal/aq + #1062 = Utf8 com/crashlytics/android/internal/q + #1063 = Utf8 com/crashlytics/android/internal/r + #1064 = Utf8 com/crashlytics/android/internal/v + #1065 = Utf8 com/crashlytics/android/v + #1066 = Utf8 com/crashlytics/android/w + #1067 = Utf8 com/crashlytics/android/x + #1068 = Utf8 com/crashlytics/android/y + #1069 = Utf8 com/crashlytics/android/z + #1070 = Utf8 compile + #1071 = Utf8 contains + #1072 = Utf8 crash + #1073 = Utf8 crash_marker + #1074 = Utf8 crashlytics-userlog- + #1075 = Utf8 crashlyticsDidDetectCrashDuringPreviousExecution + #1076 = Utf8 createNewFile + #1077 = Utf8 d + #1078 = Utf8 delete + #1079 = Utf8 e + #1080 = Utf8 entrySet + #1081 = Utf8 error + #1082 = Utf8 ex + #1083 = Utf8 exists + #1084 = Utf8 f + #1085 = Utf8 format + #1086 = Utf8 g + #1087 = Utf8 get + #1088 = Utf8 getAllStackTraces + #1089 = Utf8 getAndIncrement + #1090 = Utf8 getAndSet + #1091 = Utf8 getBlockCount + #1092 = Utf8 getBlockSize + #1093 = Utf8 getBytes + #1094 = Utf8 getCause + #1095 = Utf8 getClass + #1096 = Utf8 getClassName + #1097 = Utf8 getConfiguration + #1098 = Utf8 getContext + #1099 = Utf8 getDataDirectory + #1100 = Utf8 getFileName + #1101 = Utf8 getInstance + #1102 = Utf8 getKey + #1103 = Utf8 getLineNumber + #1104 = Utf8 getLocalizedMessage + #1105 = Utf8 getMethodName + #1106 = Utf8 getName + #1107 = Utf8 getPackageCodePath + #1108 = Utf8 getPath + #1109 = Utf8 getResources + #1110 = Utf8 getRuntime + #1111 = Utf8 getStackTrace + #1112 = Utf8 getTime + #1113 = Utf8 getValue + #1114 = Utf8 getVersion + #1115 = Utf8 group + #1116 = Utf8 h + #1117 = Utf8 hasNext + #1118 = Utf8 i + #1119 = Utf8 importance + #1120 = Utf8 initialization_marker + #1121 = Utf8 invalidClsFiles + #1122 = Utf8 isDirectory + #1123 = Utf8 isEmpty + #1124 = Utf8 isNativeMethod + #1125 = Utf8 iterator + #1126 = Utf8 j + #1127 = Utf8 java/io/File + #1128 = Utf8 java/io/FileInputStream + #1129 = Utf8 java/io/FileOutputStream + #1130 = Utf8 java/io/FilenameFilter + #1131 = Utf8 java/io/IOException + #1132 = Utf8 java/io/OutputStream + #1133 = Utf8 java/io/PrintWriter + #1134 = Utf8 java/io/Writer + #1135 = Utf8 java/lang/Boolean + #1136 = Utf8 java/lang/Class + #1137 = Utf8 java/lang/Exception + #1138 = Utf8 java/lang/Integer + #1139 = Utf8 java/lang/Long + #1140 = Utf8 java/lang/Math + #1141 = Utf8 java/lang/Object + #1142 = Utf8 java/lang/Runnable + #1143 = Utf8 java/lang/Runtime + #1144 = Utf8 java/lang/StackTraceElement + #1145 = Utf8 java/lang/String + #1146 = Utf8 java/lang/StringBuilder + #1147 = Utf8 java/lang/Thread + #1148 = Utf8 java/lang/Thread$UncaughtExceptionHandler + #1149 = Utf8 java/lang/Throwable + #1150 = Utf8 java/util/Arrays + #1151 = Utf8 java/util/Collections + #1152 = Utf8 java/util/Date + #1153 = Utf8 java/util/HashSet + #1154 = Utf8 java/util/Iterator + #1155 = Utf8 java/util/LinkedList + #1156 = Utf8 java/util/List + #1157 = Utf8 java/util/Locale + #1158 = Utf8 java/util/Map + #1159 = Utf8 java/util/Map$Entry + #1160 = Utf8 java/util/Set + #1161 = Utf8 java/util/TreeMap + #1162 = Utf8 java/util/UUID + #1163 = Utf8 java/util/concurrent/Callable + #1164 = Utf8 java/util/concurrent/ExecutorService + #1165 = Utf8 java/util/concurrent/Future + #1166 = Utf8 java/util/concurrent/RejectedExecutionException + #1167 = Utf8 java/util/concurrent/atomic/AtomicBoolean + #1168 = Utf8 java/util/concurrent/atomic/AtomicInteger + #1169 = Utf8 java/util/regex/Matcher + #1170 = Utf8 java/util/regex/Pattern + #1171 = Utf8 k + #1172 = Utf8 l + #1173 = Utf8 length + #1174 = Utf8 listFiles + #1175 = Utf8 m + #1176 = Utf8 matcher + #1177 = Utf8 matches + #1178 = Utf8 max + #1179 = Utf8 min + #1180 = Utf8 n + #1181 = Utf8 next + #1182 = Utf8 null + #1183 = Utf8 o + #1184 = Utf8 orientation + #1185 = Utf8 p + #1186 = Utf8 q + #1187 = Utf8 r + #1188 = Utf8 randomUUID + #1189 = Utf8 read + #1190 = Utf8 registerReceiver + #1191 = Utf8 replace + #1192 = Utf8 replaceAll + #1193 = Utf8 s + #1194 = Utf8 set + #1195 = Utf8 singletonMap + #1196 = Utf8 size + #1197 = Utf8 sort + #1198 = Utf8 start + #1199 = Utf8 submit + #1200 = Utf8 substring + #1201 = Utf8 t + #1202 = Utf8 this + #1203 = Utf8 thread + #1204 = Utf8 toString + #1205 = Utf8 u + #1206 = Utf8 uncaughtException + #1207 = Utf8 unregisterReceiver + #1208 = Utf8 v + #1209 = Utf8 valueOf + #1210 = Utf8 w + #1211 = Utf8 write + #1212 = Utf8 x + #1213 = Utf8 y +{ + static final java.io.FilenameFilter a; + flags: ACC_STATIC, ACC_FINAL + + private static java.util.Comparator b; + flags: ACC_PRIVATE, ACC_STATIC + Signature: #958 // Ljava/util/Comparator; + + private static java.util.Comparator c; + flags: ACC_PRIVATE, ACC_STATIC + Signature: #958 // Ljava/util/Comparator; + + private static final java.util.regex.Pattern d; + flags: ACC_PRIVATE, ACC_STATIC, ACC_FINAL + + private static final java.util.Map e; + flags: ACC_PRIVATE, ACC_STATIC, ACC_FINAL + Signature: #963 // Ljava/util/Map; + + private static final com.crashlytics.android.d f; + flags: ACC_PRIVATE, ACC_STATIC, ACC_FINAL + + private final java.util.concurrent.atomic.AtomicInteger g; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.util.concurrent.atomic.AtomicBoolean h; + flags: ACC_PRIVATE, ACC_FINAL + + private final int i; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.lang.Thread$UncaughtExceptionHandler j; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.io.File k; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.io.File l; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.util.concurrent.atomic.AtomicBoolean m; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.lang.String n; + flags: ACC_PRIVATE, ACC_FINAL + + private final android.content.BroadcastReceiver o; + flags: ACC_PRIVATE, ACC_FINAL + + private final android.content.BroadcastReceiver p; + flags: ACC_PRIVATE, ACC_FINAL + + private final com.crashlytics.android.d q; + flags: ACC_PRIVATE, ACC_FINAL + + private final com.crashlytics.android.d r; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.util.concurrent.ExecutorService s; + flags: ACC_PRIVATE, ACC_FINAL + + private android.app.ActivityManager$RunningAppProcessInfo t; + flags: ACC_PRIVATE + + private com.crashlytics.android.internal.aq u; + flags: ACC_PRIVATE + + private boolean v; + flags: ACC_PRIVATE + + private java.lang.Thread[] w; + flags: ACC_PRIVATE + + private java.util.List x; + flags: ACC_PRIVATE + Signature: #960 // Ljava/util/List<[Ljava/lang/StackTraceElement;>; + + private java.lang.StackTraceElement[] y; + flags: ACC_PRIVATE + + public com.crashlytics.android.v(java.lang.Thread$UncaughtExceptionHandler, com.crashlytics.android.CrashlyticsListener, java.lang.String); + flags: ACC_PUBLIC + Code: + stack=5, locals=4, args_size=4 + 0: aload_0 + 1: aload_1 + 2: aload_2 + 3: ldc #39 // String Crashlytics Exception Handler + 5: invokestatic #334 // Method com/crashlytics/android/internal/ah.a:(Ljava/lang/String;)Ljava/util/concurrent/ExecutorService; + 8: aload_3 + 9: invokespecial #351 // Method "":(Ljava/lang/Thread$UncaughtExceptionHandler;Lcom/crashlytics/android/CrashlyticsListener;Ljava/util/concurrent/ExecutorService;Ljava/lang/String;)V + 12: return + LineNumberTable: + line 236: 0 + line 238: 12 + + private com.crashlytics.android.v(java.lang.Thread$UncaughtExceptionHandler, com.crashlytics.android.CrashlyticsListener, java.util.concurrent.ExecutorService, java.lang.String); + flags: ACC_PRIVATE + Code: + stack=7, locals=5, args_size=5 + 0: aload_0 + 1: invokespecial #417 // Method java/lang/Object."":()V + 4: aload_0 + 5: new #204 // class java/util/concurrent/atomic/AtomicInteger + 8: dup + 9: iconst_0 + 10: invokespecial #460 // Method java/util/concurrent/atomic/AtomicInteger."":(I)V + 13: putfield #225 // Field g:Ljava/util/concurrent/atomic/AtomicInteger; + 16: aload_0 + 17: new #203 // class java/util/concurrent/atomic/AtomicBoolean + 20: dup + 21: iconst_0 + 22: invokespecial #456 // Method java/util/concurrent/atomic/AtomicBoolean."":(Z)V + 25: putfield #226 // Field h:Ljava/util/concurrent/atomic/AtomicBoolean; + 28: aload_0 + 29: aload_1 + 30: putfield #228 // Field j:Ljava/lang/Thread$UncaughtExceptionHandler; + 33: aload_0 + 34: aload_3 + 35: putfield #237 // Field s:Ljava/util/concurrent/ExecutorService; + 38: aload_0 + 39: new #203 // class java/util/concurrent/atomic/AtomicBoolean + 42: dup + 43: iconst_0 + 44: invokespecial #456 // Method java/util/concurrent/atomic/AtomicBoolean."":(Z)V + 47: putfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 50: aload_0 + 51: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 54: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 57: putfield #229 // Field k:Ljava/io/File; + 60: aload_0 + 61: new #163 // class java/io/File + 64: dup + 65: aload_0 + 66: getfield #229 // Field k:Ljava/io/File; + 69: ldc #105 // String initialization_marker + 71: invokespecial #396 // Method java/io/File."":(Ljava/io/File;Ljava/lang/String;)V + 74: putfield #230 // Field l:Ljava/io/File; + 77: aload_0 + 78: getstatic #244 // Field java/util/Locale.US:Ljava/util/Locale; + 81: ldc #38 // String Crashlytics Android SDK/%s + 83: iconst_1 + 84: anewarray #177 // class java/lang/Object + 87: dup + 88: iconst_0 + 89: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 92: invokevirtual #268 // Method com/crashlytics/android/Crashlytics.getVersion:()Ljava/lang/String; + 95: aastore + 96: invokestatic #427 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + 99: putfield #232 // Field n:Ljava/lang/String; + 102: aload_0 + 103: bipush 8 + 105: putfield #227 // Field i:I + 108: aload_2 + 109: astore_1 + 110: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 113: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 116: ldc #37 // String Crashlytics + 118: ldc #28 // String Checking for previous crash marker. + 120: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 125: new #163 // class java/io/File + 128: dup + 129: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 132: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 135: ldc #102 // String crash_marker + 137: invokespecial #396 // Method java/io/File."":(Ljava/io/File;Ljava/lang/String;)V + 140: dup + 141: astore_2 + 142: invokevirtual #399 // Method java/io/File.exists:()Z + 145: ifeq 183 + 148: aload_2 + 149: invokevirtual #398 // Method java/io/File.delete:()Z + 152: pop + 153: aload_1 + 154: ifnull 183 + 157: aload_1 + 158: invokeinterface #466, 1 // InterfaceMethod com/crashlytics/android/CrashlyticsListener.crashlyticsDidDetectCrashDuringPreviousExecution:()V + 163: goto 183 + 166: astore_1 + 167: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 170: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 173: ldc #37 // String Crashlytics + 175: ldc #49 // String Exception thrown by CrashlyticsListener while notifying of previous crash. + 177: aload_1 + 178: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 183: aload_0 + 184: invokestatic #262 // Method com/crashlytics/android/Crashlytics.d:()Ljava/lang/String; + 187: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 190: putfield #235 // Field q:Lcom/crashlytics/android/d; + 193: aload_0 + 194: aload 4 + 196: ifnonnull 203 + 199: aconst_null + 200: goto 215 + 203: aload 4 + 205: ldc #12 // String - + 207: ldc #2 // String + 209: invokevirtual #430 // Method java/lang/String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + 212: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 215: putfield #236 // Field r:Lcom/crashlytics/android/d; + 218: aload_0 + 219: new #135 // class com/crashlytics/android/L + 222: dup + 223: aload_0 + 224: invokespecial #283 // Method com/crashlytics/android/L."":(Lcom/crashlytics/android/v;)V + 227: putfield #234 // Field p:Landroid/content/BroadcastReceiver; + 230: new #115 // class android/content/IntentFilter + 233: dup + 234: ldc #97 // String android.intent.action.ACTION_POWER_CONNECTED + 236: invokespecial #249 // Method android/content/IntentFilter."":(Ljava/lang/String;)V + 239: astore_1 + 240: aload_0 + 241: new #136 // class com/crashlytics/android/M + 244: dup + 245: aload_0 + 246: invokespecial #284 // Method com/crashlytics/android/M."":(Lcom/crashlytics/android/v;)V + 249: putfield #233 // Field o:Landroid/content/BroadcastReceiver; + 252: new #115 // class android/content/IntentFilter + 255: dup + 256: ldc #98 // String android.intent.action.ACTION_POWER_DISCONNECTED + 258: invokespecial #249 // Method android/content/IntentFilter."":(Ljava/lang/String;)V + 261: astore_2 + 262: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 265: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 268: aload_0 + 269: getfield #234 // Field p:Landroid/content/BroadcastReceiver; + 272: aload_1 + 273: invokevirtual #247 // Method android/content/Context.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; + 276: pop + 277: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 280: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 283: aload_0 + 284: getfield #233 // Field o:Landroid/content/BroadcastReceiver; + 287: aload_2 + 288: invokevirtual #247 // Method android/content/Context.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; + 291: pop + 292: aload_0 + 293: getfield #226 // Field h:Ljava/util/concurrent/atomic/AtomicBoolean; + 296: iconst_1 + 297: invokevirtual #459 // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V + 300: return + Exception table: + from to target type + 157 163 166 Class java/lang/Exception + LineNumberTable: + line 244: 0 + line 192: 4 + line 193: 16 + line 245: 28 + line 246: 33 + line 247: 38 + line 248: 50 + line 249: 60 + line 250: 77 + line 257: 102 + line 259: 108 + line 261: 183 + line 262: 193 + line 264: 218 + line 271: 230 + line 273: 240 + line 280: 252 + line 282: 262 + line 283: 277 + line 284: 292 + line 285: 300 + StackMapTable: number_of_entries = 4 + frame_type = 255 /* full_frame */ + offset_delta = 166 + locals = [ class com/crashlytics/android/v, top, top, top, class java/lang/String ] + stack = [ class java/lang/Exception ] + frame_type = 16 /* same */ + frame_type = 83 /* same_locals_1_stack_item */ + stack = [ class com/crashlytics/android/v ] + frame_type = 255 /* full_frame */ + offset_delta = 11 + locals = [ class com/crashlytics/android/v ] + stack = [ class com/crashlytics/android/v, class com/crashlytics/android/d ] + + + final boolean a(); + flags: ACC_FINAL + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: getfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 4: invokevirtual #457 // Method java/util/concurrent/atomic/AtomicBoolean.get:()Z + 7: ireturn + LineNumberTable: + line 288: 0 + + public final synchronized void uncaughtException(java.lang.Thread, java.lang.Throwable); + flags: ACC_PUBLIC, ACC_FINAL, ACC_SYNCHRONIZED + Code: + stack=7, locals=4, args_size=3 + 0: aload_0 + 1: getfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 4: iconst_1 + 5: invokevirtual #459 // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V + 8: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 11: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 14: ldc #37 // String Crashlytics + 16: new #182 // class java/lang/StringBuilder + 19: dup + 20: ldc #42 // String Crashlytics is handling uncaught exception \" + 22: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 25: aload_2 + 26: invokevirtual #436 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + 29: ldc #8 // String \" from thread + 31: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 34: aload_1 + 35: invokevirtual #441 // Method java/lang/Thread.getName:()Ljava/lang/String; + 38: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 41: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 44: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 49: aload_0 + 50: getfield #226 // Field h:Ljava/util/concurrent/atomic/AtomicBoolean; + 53: iconst_1 + 54: invokevirtual #458 // Method java/util/concurrent/atomic/AtomicBoolean.getAndSet:(Z)Z + 57: ifne 101 + 60: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 63: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 66: ldc #37 // String Crashlytics + 68: ldc #95 // String Unregistering power receivers. + 70: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 75: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 78: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 81: aload_0 + 82: getfield #234 // Field p:Landroid/content/BroadcastReceiver; + 85: invokevirtual #248 // Method android/content/Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V + 88: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 91: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 94: aload_0 + 95: getfield #233 // Field o:Landroid/content/BroadcastReceiver; + 98: invokevirtual #248 // Method android/content/Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V + 101: new #188 // class java/util/Date + 104: dup + 105: invokespecial #448 // Method java/util/Date."":()V + 108: astore_3 + 109: aload_0 + 110: new #137 // class com/crashlytics/android/N + 113: dup + 114: aload_0 + 115: aload_3 + 116: aload_1 + 117: aload_2 + 118: invokespecial #285 // Method com/crashlytics/android/N."":(Lcom/crashlytics/android/v;Ljava/util/Date;Ljava/lang/Thread;Ljava/lang/Throwable;)V + 121: invokespecial #378 // Method a:(Ljava/util/concurrent/Callable;)Ljava/lang/Object; + 124: pop + 125: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 128: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 131: ldc #37 // String Crashlytics + 133: ldc #41 // String Crashlytics completed exception processing. Invoking default exception handler. + 135: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 140: aload_0 + 141: getfield #228 // Field j:Ljava/lang/Thread$UncaughtExceptionHandler; + 144: aload_1 + 145: aload_2 + 146: invokeinterface #469, 3 // InterfaceMethod java/lang/Thread$UncaughtExceptionHandler.uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V + 151: aload_0 + 152: getfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 155: iconst_0 + 156: invokevirtual #459 // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V + 159: return + 160: astore_3 + 161: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 164: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 167: ldc #37 // String Crashlytics + 169: ldc #22 // String An error occurred in the uncaught exception handler + 171: aload_3 + 172: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 177: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 180: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 183: ldc #37 // String Crashlytics + 185: ldc #41 // String Crashlytics completed exception processing. Invoking default exception handler. + 187: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 192: aload_0 + 193: getfield #228 // Field j:Ljava/lang/Thread$UncaughtExceptionHandler; + 196: aload_1 + 197: aload_2 + 198: invokeinterface #469, 3 // InterfaceMethod java/lang/Thread$UncaughtExceptionHandler.uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V + 203: aload_0 + 204: getfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 207: iconst_0 + 208: invokevirtual #459 // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V + 211: return + 212: astore_3 + 213: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 216: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 219: ldc #37 // String Crashlytics + 221: ldc #41 // String Crashlytics completed exception processing. Invoking default exception handler. + 223: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 228: aload_0 + 229: getfield #228 // Field j:Ljava/lang/Thread$UncaughtExceptionHandler; + 232: aload_1 + 233: aload_2 + 234: invokeinterface #469, 3 // InterfaceMethod java/lang/Thread$UncaughtExceptionHandler.uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V + 239: aload_0 + 240: getfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 243: iconst_0 + 244: invokevirtual #459 // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V + 247: aload_3 + 248: athrow + Exception table: + from to target type + 8 125 160 Class java/lang/Exception + 8 125 212 any + 160 177 212 any + LineNumberTable: + line 293: 0 + line 295: 8 + line 297: 49 + line 298: 60 + line 299: 75 + line 300: 88 + line 305: 101 + line 307: 109 + line 317: 125 + line 318: 140 + line 319: 151 + line 320: 159 + line 314: 160 + line 315: 161 + line 317: 177 + line 318: 192 + line 319: 203 + line 320: 211 + line 317: 212 + line 318: 228 + line 319: 239 + LocalVariableTable: + Start Length Slot Name Signature + 0 233 1 thread Ljava/lang/Thread; + 0 234 2 ex Ljava/lang/Throwable; + 0 240 0 this Lcom/crashlytics/android/v; + StackMapTable: number_of_entries = 3 + frame_type = 251 /* same_frame_extended */ + offset_delta = 101 + frame_type = 122 /* same_locals_1_stack_item */ + stack = [ class java/lang/Exception ] + frame_type = 115 /* same_locals_1_stack_item */ + stack = [ class java/lang/Throwable ] + + + final boolean b(); + flags: ACC_FINAL + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #138 // class com/crashlytics/android/O + 4: dup + 5: aload_0 + 6: invokespecial #286 // Method com/crashlytics/android/O."":(Lcom/crashlytics/android/v;)V + 9: invokespecial #378 // Method a:(Ljava/util/concurrent/Callable;)Ljava/lang/Object; + 12: checkcast #171 // class java/lang/Boolean + 15: invokevirtual #410 // Method java/lang/Boolean.booleanValue:()Z + 18: ireturn + LineNumberTable: + line 338: 0 + + final void a(java.lang.Thread, java.lang.Throwable); + flags: ACC_FINAL + Code: + stack=7, locals=4, args_size=3 + 0: new #188 // class java/util/Date + 3: dup + 4: invokespecial #448 // Method java/util/Date."":()V + 7: astore_3 + 8: aload_0 + 9: new #139 // class com/crashlytics/android/P + 12: dup + 13: aload_0 + 14: aload_3 + 15: aload_1 + 16: aload_2 + 17: invokespecial #287 // Method com/crashlytics/android/P."":(Lcom/crashlytics/android/v;Ljava/util/Date;Ljava/lang/Thread;Ljava/lang/Throwable;)V + 20: invokespecial #367 // Method a:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + 23: pop + 24: return + LineNumberTable: + line 357: 0 + line 359: 8 + line 367: 24 + + final void a(long, java.lang.String); + flags: ACC_FINAL + Code: + stack=7, locals=4, args_size=3 + 0: aload_0 + 1: new #160 // class com/crashlytics/android/x + 4: dup + 5: aload_0 + 6: lload_1 + 7: aload_3 + 8: invokespecial #393 // Method com/crashlytics/android/x."":(Lcom/crashlytics/android/v;JLjava/lang/String;)V + 11: invokespecial #381 // Method b:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + 14: pop + 15: return + LineNumberTable: + line 373: 0 + line 385: 15 + + private com.crashlytics.android.d a(com.crashlytics.android.internal.aq); + flags: ACC_PRIVATE + Code: + stack=6, locals=4, args_size=2 + 0: aload_1 + 1: ifnonnull 6 + 4: aconst_null + 5: areturn + 6: iconst_1 + 7: newarray int + 9: dup + 10: iconst_0 + 11: iconst_0 + 12: iastore + 13: astore_2 + 14: aload_1 + 15: invokevirtual #341 // Method com/crashlytics/android/internal/aq.a:()I + 18: newarray byte + 20: astore_3 + 21: aload_1 + 22: new #161 // class com/crashlytics/android/y + 25: dup + 26: aload_0 + 27: aload_3 + 28: aload_2 + 29: invokespecial #394 // Method com/crashlytics/android/y."":(Lcom/crashlytics/android/v;[B[I)V + 32: invokevirtual #342 // Method com/crashlytics/android/internal/aq.a:(Lcom/crashlytics/android/internal/au;)V + 35: goto 55 + 38: astore_1 + 39: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 42: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 45: ldc #37 // String Crashlytics + 47: ldc #19 // String A problem occurred while reading the Crashlytics log file. + 49: aload_1 + 50: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 55: aload_3 + 56: iconst_0 + 57: aload_2 + 58: iconst_0 + 59: iaload + 60: invokestatic #293 // Method com/crashlytics/android/d.a:([BII)Lcom/crashlytics/android/d; + 63: areturn + Exception table: + from to target type + 21 35 38 Class java/io/IOException + LineNumberTable: + line 402: 0 + line 403: 4 + line 409: 6 + line 411: 14 + line 414: 21 + line 427: 35 + line 425: 38 + line 426: 39 + line 429: 55 + StackMapTable: number_of_entries = 3 + frame_type = 6 /* same */ + frame_type = 255 /* full_frame */ + offset_delta = 31 + locals = [ top, top, class "[I", class "[B" ] + stack = [ class java/io/IOException ] + frame_type = 16 /* same */ + + + final void c(); + flags: ACC_FINAL + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #162 // class com/crashlytics/android/z + 4: dup + 5: aload_0 + 6: invokespecial #395 // Method com/crashlytics/android/z."":(Lcom/crashlytics/android/v;)V + 9: invokespecial #381 // Method b:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + 12: pop + 13: return + LineNumberTable: + line 436: 0 + line 445: 13 + + final void d(); + flags: ACC_FINAL + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #122 // class com/crashlytics/android/A + 4: dup + 5: aload_0 + 6: invokespecial #255 // Method com/crashlytics/android/A."":(Lcom/crashlytics/android/v;)V + 9: invokespecial #381 // Method b:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + 12: pop + 13: return + LineNumberTable: + line 448: 0 + line 458: 13 + + final void e(); + flags: ACC_FINAL + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #123 // class com/crashlytics/android/B + 4: dup + 5: aload_0 + 6: invokespecial #256 // Method com/crashlytics/android/B."":(Lcom/crashlytics/android/v;)V + 9: invokespecial #381 // Method b:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + 12: pop + 13: return + LineNumberTable: + line 464: 0 + line 477: 13 + + final boolean f(); + flags: ACC_FINAL + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #124 // class com/crashlytics/android/C + 4: dup + 5: aload_0 + 6: invokespecial #257 // Method com/crashlytics/android/C."":(Lcom/crashlytics/android/v;)V + 9: invokespecial #378 // Method a:(Ljava/util/concurrent/Callable;)Ljava/lang/Object; + 12: checkcast #171 // class java/lang/Boolean + 15: invokevirtual #410 // Method java/lang/Boolean.booleanValue:()Z + 18: ireturn + LineNumberTable: + line 480: 0 + + static void a(com.crashlytics.android.internal.aq, int, long, java.lang.String); + flags: ACC_STATIC + Code: + stack=7, locals=5, args_size=4 + 0: aload_0 + 1: ifnonnull 5 + 4: return + 5: aload 4 + 7: ifnonnull 14 + 10: ldc #107 // String null + 12: astore 4 + 14: aload 4 + 16: invokevirtual #429 // Method java/lang/String.length:()I + 19: sipush 16384 + 22: if_icmple 56 + 25: new #182 // class java/lang/StringBuilder + 28: dup + 29: ldc #14 // String ... + 31: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 34: aload 4 + 36: aload 4 + 38: invokevirtual #429 // Method java/lang/String.length:()I + 41: sipush 16384 + 44: isub + 45: invokevirtual #432 // Method java/lang/String.substring:(I)Ljava/lang/String; + 48: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 51: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 54: astore 4 + 56: aload 4 + 58: ldc #5 // String \r + 60: ldc #6 // String + 62: invokevirtual #431 // Method java/lang/String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + 65: dup + 66: astore 4 + 68: ldc #4 // String \n + 70: ldc #6 // String + 72: invokevirtual #431 // Method java/lang/String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + 75: astore 4 + 77: getstatic #244 // Field java/util/Locale.US:Ljava/util/Locale; + 80: ldc #9 // String %d %s%n + 82: iconst_2 + 83: anewarray #177 // class java/lang/Object + 86: dup + 87: iconst_0 + 88: lload_2 + 89: invokestatic #414 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long; + 92: aastore + 93: dup + 94: iconst_1 + 95: aload 4 + 97: aastore + 98: invokestatic #427 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + 101: ldc #93 // String UTF-8 + 103: invokevirtual #428 // Method java/lang/String.getBytes:(Ljava/lang/String;)[B + 106: astore_1 + 107: aload_0 + 108: aload_1 + 109: invokevirtual #343 // Method com/crashlytics/android/internal/aq.a:([B)V + 112: aload_0 + 113: invokevirtual #344 // Method com/crashlytics/android/internal/aq.b:()Z + 116: ifne 135 + 119: aload_0 + 120: invokevirtual #341 // Method com/crashlytics/android/internal/aq.a:()I + 123: ldc #1 // int 65536 + 125: if_icmple 135 + 128: aload_0 + 129: invokevirtual #345 // Method com/crashlytics/android/internal/aq.c:()V + 132: goto 112 + 135: return + 136: astore_0 + 137: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 140: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 143: ldc #37 // String Crashlytics + 145: ldc #87 // String There was a problem writing to the Crashlytics log. + 147: aload_0 + 148: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 153: return + Exception table: + from to target type + 14 135 136 Class java/io/IOException + LineNumberTable: + line 532: 0 + line 533: 4 + line 535: 5 + line 536: 10 + line 556: 14 + line 559: 25 + line 562: 56 + line 563: 66 + line 565: 77 + line 567: 107 + line 570: 112 + line 571: 128 + line 575: 135 + line 573: 136 + line 574: 137 + line 576: 153 + StackMapTable: number_of_entries = 6 + frame_type = 255 /* full_frame */ + offset_delta = 5 + locals = [ class com/crashlytics/android/internal/aq, top, long, class java/lang/String ] + stack = [] + frame_type = 8 /* same */ + frame_type = 41 /* same */ + frame_type = 248 /* chop */ + offset_delta = 55 + frame_type = 250 /* chop */ + offset_delta = 22 + frame_type = 64 /* same_locals_1_stack_item */ + stack = [ class java/io/IOException ] + + + final boolean g(); + flags: ACC_FINAL + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: invokespecial #387 // Method o:()[Ljava/io/File; + 4: arraylength + 5: ifle 10 + 8: iconst_1 + 9: ireturn + 10: iconst_0 + 11: ireturn + LineNumberTable: + line 580: 0 + StackMapTable: number_of_entries = 1 + frame_type = 250 /* chop */ + offset_delta = 10 + + + private boolean k(); + flags: ACC_PRIVATE + Code: + stack=5, locals=3, args_size=1 + 0: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 3: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 6: ldc #100 // String com.crashlytics.CollectCustomLogs + 8: iconst_1 + 9: invokestatic #321 // Method com/crashlytics/android/internal/ab.a:(Landroid/content/Context;Ljava/lang/String;Z)Z + 12: dup + 13: istore_1 + 14: ifne 34 + 17: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 20: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 23: ldc #37 // String Crashlytics + 25: ldc #76 // String Preferences requested not to collect custom logs. Aborting log file creation. + 27: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 32: iconst_0 + 33: ireturn + 34: aload_0 + 35: getfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 38: new #182 // class java/lang/StringBuilder + 41: dup + 42: ldc #34 // String Could not close log file: + 44: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 47: aload_0 + 48: getfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 51: invokevirtual #436 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + 54: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 57: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 60: aconst_null + 61: astore_1 + 62: new #182 // class java/lang/StringBuilder + 65: dup + 66: ldc #103 // String crashlytics-userlog- + 68: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 71: invokestatic #454 // Method java/util/UUID.randomUUID:()Ljava/util/UUID; + 74: invokevirtual #455 // Method java/util/UUID.toString:()Ljava/lang/String; + 77: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 80: ldc #15 // String .temp + 82: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 85: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 88: astore_2 + 89: new #163 // class java/io/File + 92: dup + 93: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 96: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 99: aload_2 + 100: invokespecial #396 // Method java/io/File."":(Ljava/io/File;Ljava/lang/String;)V + 103: astore_1 + 104: aload_0 + 105: new #154 // class com/crashlytics/android/internal/aq + 108: dup + 109: aload_1 + 110: invokespecial #340 // Method com/crashlytics/android/internal/aq."":(Ljava/io/File;)V + 113: putfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 116: aload_1 + 117: invokevirtual #398 // Method java/io/File.delete:()Z + 120: pop + 121: goto 157 + 124: astore_2 + 125: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 128: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 131: ldc #37 // String Crashlytics + 133: new #182 // class java/lang/StringBuilder + 136: dup + 137: ldc #35 // String Could not create log file: + 139: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 142: aload_1 + 143: invokevirtual #436 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + 146: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 149: aload_2 + 150: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 155: iconst_0 + 156: ireturn + 157: iconst_1 + 158: ireturn + Exception table: + from to target type + 62 121 124 Class java/lang/Exception + LineNumberTable: + line 603: 0 + line 606: 13 + line 607: 17 + line 608: 32 + line 612: 34 + line 614: 60 + line 625: 62 + line 626: 89 + line 627: 104 + line 628: 116 + line 632: 121 + line 629: 124 + line 630: 125 + line 631: 155 + line 634: 157 + StackMapTable: number_of_entries = 3 + frame_type = 34 /* same */ + frame_type = 255 /* full_frame */ + offset_delta = 89 + locals = [ top, class java/io/File ] + stack = [ class java/lang/Exception ] + frame_type = 249 /* chop */ + offset_delta = 32 + + + private void l() throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=7, locals=16, args_size=1 + 0: new #188 // class java/util/Date + 3: dup + 4: invokespecial #448 // Method java/util/Date."":()V + 7: astore_1 + 8: new #145 // class com/crashlytics/android/e + 11: dup + 12: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 15: invokevirtual #260 // Method com/crashlytics/android/Crashlytics.b:()Lcom/crashlytics/android/internal/ao; + 18: invokespecial #294 // Method com/crashlytics/android/e."":(Lcom/crashlytics/android/internal/ao;)V + 21: invokevirtual #295 // Method com/crashlytics/android/e.toString:()Ljava/lang/String; + 24: astore_2 + 25: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 28: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 31: ldc #37 // String Crashlytics + 33: new #182 // class java/lang/StringBuilder + 36: dup + 37: ldc #75 // String Opening an new session with ID + 39: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 42: aload_2 + 43: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 46: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 49: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 54: aload_0 + 55: aload_1 + 56: aload_2 + 57: astore 4 + 59: astore_3 + 60: astore_1 + 61: aconst_null + 62: astore 5 + 64: aconst_null + 65: astore 6 + 67: new #146 // class com/crashlytics/android/f + 70: dup + 71: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 74: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 77: new #182 // class java/lang/StringBuilder + 80: dup + 81: invokespecial #434 // Method java/lang/StringBuilder."":()V + 84: aload 4 + 86: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 89: ldc #25 // String BeginSession + 91: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 94: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 97: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 100: dup + 101: astore 5 + 103: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 106: dup + 107: astore 6 + 109: iconst_1 + 110: aload_1 + 111: getfield #232 // Field n:Ljava/lang/String; + 114: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 117: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 120: aload 6 + 122: iconst_2 + 123: aload 4 + 125: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 128: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 131: aload 6 + 133: iconst_3 + 134: aload_3 + 135: invokevirtual #449 // Method java/util/Date.getTime:()J + 138: ldc2_w #207 // long 1000l + 141: ldiv + 142: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 145: aload 6 + 147: ldc #68 // String Failed to flush to session begin file. + 149: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 152: aload 5 + 154: ldc #52 // String Failed to close begin session file. + 156: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 159: goto 191 + 162: astore_3 + 163: aload_1 + 164: aload_3 + 165: aload 5 + 167: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 170: aload_3 + 171: athrow + 172: astore 7 + 174: aload 6 + 176: ldc #68 // String Failed to flush to session begin file. + 178: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 181: aload 5 + 183: ldc #52 // String Failed to close begin session file. + 185: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 188: aload 7 + 190: athrow + 191: aload_0 + 192: aload_2 + 193: astore_3 + 194: astore_1 + 195: aconst_null + 196: astore 4 + 198: aconst_null + 199: astore 5 + 201: new #146 // class com/crashlytics/android/f + 204: dup + 205: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 208: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 211: new #182 // class java/lang/StringBuilder + 214: dup + 215: invokespecial #434 // Method java/lang/StringBuilder."":()V + 218: aload_3 + 219: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 222: ldc #80 // String SessionApp + 224: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 227: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 230: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 233: dup + 234: astore 4 + 236: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 239: astore 5 + 241: invokestatic #262 // Method com/crashlytics/android/Crashlytics.d:()Ljava/lang/String; + 244: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 247: astore 6 + 249: invokestatic #265 // Method com/crashlytics/android/Crashlytics.g:()Ljava/lang/String; + 252: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 255: astore_3 + 256: invokestatic #264 // Method com/crashlytics/android/Crashlytics.f:()Ljava/lang/String; + 259: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 262: astore 7 + 264: invokestatic #269 // Method com/crashlytics/android/Crashlytics.h:()Ljava/lang/String; + 267: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 270: pop + 271: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 274: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 277: invokevirtual #245 // Method android/content/Context.getPackageCodePath:()Ljava/lang/String; + 280: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 283: pop + 284: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 287: invokevirtual #260 // Method com/crashlytics/android/Crashlytics.b:()Lcom/crashlytics/android/internal/ao; + 290: invokevirtual #337 // Method com/crashlytics/android/internal/ao.b:()Ljava/lang/String; + 293: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 296: astore 9 + 298: invokestatic #263 // Method com/crashlytics/android/Crashlytics.e:()Ljava/lang/String; + 301: invokestatic #336 // Method com/crashlytics/android/internal/ai.a:(Ljava/lang/String;)Lcom/crashlytics/android/internal/ai; + 304: invokevirtual #335 // Method com/crashlytics/android/internal/ai.a:()I + 307: istore 10 + 309: aload 5 + 311: bipush 7 + 313: iconst_2 + 314: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 317: aload 5 + 319: aload_1 + 320: aload 6 + 322: aload_3 + 323: aload 7 + 325: aload 9 + 327: iload 10 + 329: istore 15 + 331: astore 14 + 333: astore 13 + 335: astore 12 + 337: astore 8 + 339: astore 11 + 341: iconst_0 + 342: iconst_1 + 343: aload 8 + 345: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 348: iadd + 349: dup + 350: istore 8 + 352: iconst_2 + 353: aload 12 + 355: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 358: iadd + 359: dup + 360: istore 8 + 362: iconst_3 + 363: aload 13 + 365: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 368: iadd + 369: istore 8 + 371: invokestatic #389 // Method q:()I + 374: istore 11 + 376: iload 8 + 378: iconst_5 + 379: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 382: iload 11 + 384: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 387: iadd + 388: iload 11 + 390: iadd + 391: iadd + 392: dup + 393: istore 8 + 395: bipush 6 + 397: aload 14 + 399: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 402: iadd + 403: dup + 404: istore 8 + 406: bipush 10 + 408: iload 15 + 410: invokestatic #316 // Method com/crashlytics/android/h.e:(II)I + 413: iadd + 414: dup + 415: istore 8 + 417: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 420: aload 5 + 422: iconst_1 + 423: aload 6 + 425: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 428: aload 5 + 430: iconst_2 + 431: aload_3 + 432: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 435: aload 5 + 437: iconst_3 + 438: aload 7 + 440: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 443: aload 5 + 445: iconst_5 + 446: iconst_2 + 447: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 450: aload 5 + 452: invokestatic #389 // Method q:()I + 455: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 458: aload 5 + 460: iconst_1 + 461: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 464: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 467: dup + 468: astore_3 + 469: iconst_0 + 470: invokestatic #346 // Method com/crashlytics/android/internal/r.a:(Landroid/content/Context;Z)Ljava/lang/String; + 473: invokevirtual #303 // Method com/crashlytics/android/h.a:(ILjava/lang/String;)V + 476: aload 5 + 478: bipush 6 + 480: aload 9 + 482: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 485: aload 5 + 487: bipush 10 + 489: iload 10 + 491: invokevirtual #309 // Method com/crashlytics/android/h.b:(II)V + 494: aload 5 + 496: ldc #67 // String Failed to flush to session app file. + 498: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 501: aload 4 + 503: ldc #57 // String Failed to close session app file. + 505: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 508: goto 541 + 511: astore 6 + 513: aload_1 + 514: aload 6 + 516: aload 4 + 518: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 521: aload 6 + 523: athrow + 524: astore_1 + 525: aload 5 + 527: ldc #67 // String Failed to flush to session app file. + 529: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 532: aload 4 + 534: ldc #57 // String Failed to close session app file. + 536: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 539: aload_1 + 540: athrow + 541: aload_0 + 542: aload_2 + 543: astore_3 + 544: astore_1 + 545: aconst_null + 546: astore 4 + 548: aconst_null + 549: astore 5 + 551: new #146 // class com/crashlytics/android/f + 554: dup + 555: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 558: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 561: new #182 // class java/lang/StringBuilder + 564: dup + 565: invokespecial #434 // Method java/lang/StringBuilder."":()V + 568: aload_3 + 569: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 572: ldc #84 // String SessionOS + 574: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 577: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 580: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 583: dup + 584: astore 4 + 586: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 589: astore 5 + 591: getstatic #215 // Field android/os/Build$VERSION.RELEASE:Ljava/lang/String; + 594: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 597: astore 6 + 599: getstatic #214 // Field android/os/Build$VERSION.CODENAME:Ljava/lang/String; + 602: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 605: astore_3 + 606: invokestatic #332 // Method com/crashlytics/android/internal/ab.e:()Z + 609: istore 7 + 611: aload 5 + 613: bipush 8 + 615: iconst_2 + 616: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 619: aload 5 + 621: aload 6 + 623: aload_3 + 624: iload 7 + 626: istore 10 + 628: astore 9 + 630: astore 8 + 632: iconst_0 + 633: iconst_1 + 634: iconst_3 + 635: invokestatic #316 // Method com/crashlytics/android/h.e:(II)I + 638: iadd + 639: dup + 640: istore 11 + 642: iconst_2 + 643: aload 8 + 645: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 648: iadd + 649: dup + 650: istore 11 + 652: iconst_3 + 653: aload 9 + 655: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 658: iadd + 659: dup + 660: istore 11 + 662: iconst_4 + 663: iload 10 + 665: invokestatic #312 // Method com/crashlytics/android/h.b:(IZ)I + 668: iadd + 669: dup + 670: istore 11 + 672: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 675: aload 5 + 677: iconst_1 + 678: iconst_3 + 679: invokevirtual #309 // Method com/crashlytics/android/h.b:(II)V + 682: aload 5 + 684: iconst_2 + 685: aload 6 + 687: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 690: aload 5 + 692: iconst_3 + 693: aload_3 + 694: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 697: aload 5 + 699: iconst_4 + 700: iload 7 + 702: invokevirtual #304 // Method com/crashlytics/android/h.a:(IZ)V + 705: aload 5 + 707: ldc #66 // String Failed to flush to session OS file. + 709: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 712: aload 4 + 714: ldc #56 // String Failed to close session OS file. + 716: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 719: goto 752 + 722: astore 6 + 724: aload_1 + 725: aload 6 + 727: aload 4 + 729: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 732: aload 6 + 734: athrow + 735: astore_1 + 736: aload 5 + 738: ldc #66 // String Failed to flush to session OS file. + 740: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 743: aload 4 + 745: ldc #56 // String Failed to close session OS file. + 747: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 750: aload_1 + 751: athrow + 752: aload_0 + 753: aload_2 + 754: invokespecial #382 // Method c:(Ljava/lang/String;)V + 757: return + Exception table: + from to target type + 67 145 162 Class java/lang/Exception + 67 145 172 any + 162 174 172 any + 201 494 511 Class java/lang/Exception + 201 494 524 any + 511 525 524 any + 551 705 722 Class java/lang/Exception + 551 705 735 any + 722 736 735 any + LineNumberTable: + line 714: 0 + line 715: 8 + line 717: 25 + line 719: 54 + line 720: 191 + line 721: 541 + line 722: 752 + line 723: 757 + StackMapTable: number_of_entries = 9 + frame_type = 255 /* full_frame */ + offset_delta = 162 + locals = [ top, class com/crashlytics/android/v, top, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Exception ] + frame_type = 255 /* full_frame */ + offset_delta = 9 + locals = [ top, top, top, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Throwable ] + frame_type = 255 /* full_frame */ + offset_delta = 18 + locals = [ class com/crashlytics/android/v, top, class java/lang/String ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 319 + locals = [ top, class com/crashlytics/android/v, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Exception ] + frame_type = 255 /* full_frame */ + offset_delta = 12 + locals = [ top, top, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Throwable ] + frame_type = 255 /* full_frame */ + offset_delta = 16 + locals = [ class com/crashlytics/android/v, top, class java/lang/String ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 180 + locals = [ top, class com/crashlytics/android/v, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Exception ] + frame_type = 255 /* full_frame */ + offset_delta = 12 + locals = [ top, top, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Throwable ] + frame_type = 255 /* full_frame */ + offset_delta = 16 + locals = [ class com/crashlytics/android/v, top, class java/lang/String ] + stack = [] + + Exceptions: + throws java.lang.Exception + + private void m() throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=8, locals=15, args_size=1 + 0: aload_0 + 1: bipush 8 + 3: istore 6 + 5: astore 5 + 7: new #189 // class java/util/HashSet + 10: dup + 11: invokespecial #450 // Method java/util/HashSet."":()V + 14: astore 7 + 16: aload 5 + 18: invokespecial #387 // Method o:()[Ljava/io/File; + 21: dup + 22: astore 8 + 24: getstatic #220 // Field b:Ljava/util/Comparator; + 27: invokestatic #446 // Method java/util/Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V + 30: bipush 8 + 32: aload 8 + 34: arraylength + 35: invokestatic #416 // Method java/lang/Math.min:(II)I + 38: istore 9 + 40: iconst_0 + 41: istore 10 + 43: iload 10 + 45: iload 9 + 47: if_icmpge 76 + 50: aload 8 + 52: iload 10 + 54: aaload + 55: invokestatic #365 // Method a:(Ljava/io/File;)Ljava/lang/String; + 58: astore 11 + 60: aload 7 + 62: aload 11 + 64: invokeinterface #479, 2 // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z + 69: pop + 70: iinc 10, 1 + 73: goto 43 + 76: aload 5 + 78: new #140 // class com/crashlytics/android/Q + 81: dup + 82: iconst_0 + 83: invokespecial #288 // Method com/crashlytics/android/Q."":(B)V + 86: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 89: dup + 90: astore 10 + 92: dup + 93: astore 11 + 95: arraylength + 96: istore 12 + 98: iconst_0 + 99: istore 13 + 101: iload 13 + 103: iload 12 + 105: if_icmpge 193 + 108: aload 11 + 110: iload 13 + 112: aaload + 113: dup + 114: astore 14 + 116: invokevirtual #400 // Method java/io/File.getName:()Ljava/lang/String; + 119: astore_1 + 120: getstatic #222 // Field d:Ljava/util/regex/Pattern; + 123: aload_1 + 124: invokevirtual #465 // Method java/util/regex/Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; + 127: dup + 128: astore 6 + 130: invokevirtual #463 // Method java/util/regex/Matcher.matches:()Z + 133: pop + 134: aload 6 + 136: iconst_1 + 137: invokevirtual #462 // Method java/util/regex/Matcher.group:(I)Ljava/lang/String; + 140: astore_2 + 141: aload 7 + 143: aload_2 + 144: invokeinterface #480, 2 // InterfaceMethod java/util/Set.contains:(Ljava/lang/Object;)Z + 149: ifne 187 + 152: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 155: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 158: ldc #37 // String Crashlytics + 160: new #182 // class java/lang/StringBuilder + 163: dup + 164: ldc #92 // String Trimming open session file: + 166: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 169: aload_1 + 170: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 173: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 176: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 181: aload 14 + 183: invokevirtual #398 // Method java/io/File.delete:()Z + 186: pop + 187: iinc 13, 1 + 190: goto 101 + 193: aload_0 + 194: invokespecial #386 // Method n:()Ljava/lang/String; + 197: dup + 198: astore_1 + 199: ifnull 1243 + 202: aload_0 + 203: aload_1 + 204: astore 6 + 206: astore 5 + 208: aconst_null + 209: astore 7 + 211: aconst_null + 212: astore 8 + 214: new #146 // class com/crashlytics/android/f + 217: dup + 218: aload 5 + 220: getfield #229 // Field k:Ljava/io/File; + 223: new #182 // class java/lang/StringBuilder + 226: dup + 227: invokespecial #434 // Method java/lang/StringBuilder."":()V + 230: aload 6 + 232: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 235: ldc #85 // String SessionUser + 237: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 240: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 243: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 246: dup + 247: astore 7 + 249: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 252: astore 8 + 254: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 257: invokevirtual #271 // Method com/crashlytics/android/Crashlytics.m:()Ljava/lang/String; + 260: astore 9 + 262: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 265: invokevirtual #273 // Method com/crashlytics/android/Crashlytics.o:()Ljava/lang/String; + 268: astore 10 + 270: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 273: invokevirtual #272 // Method com/crashlytics/android/Crashlytics.n:()Ljava/lang/String; + 276: astore 11 + 278: aload 9 + 280: ifnonnull 310 + 283: aload 10 + 285: ifnonnull 310 + 288: aload 11 + 290: ifnonnull 310 + 293: aload 8 + 295: ldc #64 // String Failed to flush session user file. + 297: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 300: aload 7 + 302: ldc #59 // String Failed to close session user file. + 304: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 307: goto 494 + 310: aload 9 + 312: ifnonnull 320 + 315: ldc #2 // String + 317: goto 322 + 320: aload 9 + 322: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 325: astore 12 + 327: aload 10 + 329: ifnonnull 336 + 332: aconst_null + 333: goto 341 + 336: aload 10 + 338: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 341: astore 13 + 343: aload 11 + 345: ifnonnull 352 + 348: aconst_null + 349: goto 357 + 352: aload 11 + 354: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 357: astore 14 + 359: iconst_0 + 360: iconst_1 + 361: aload 12 + 363: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 366: iadd + 367: istore_1 + 368: aload 13 + 370: ifnull 382 + 373: iload_1 + 374: iconst_2 + 375: aload 13 + 377: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 380: iadd + 381: istore_1 + 382: aload 14 + 384: ifnull 396 + 387: iload_1 + 388: iconst_3 + 389: aload 14 + 391: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 394: iadd + 395: istore_1 + 396: aload 8 + 398: bipush 6 + 400: iconst_2 + 401: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 404: aload 8 + 406: iload_1 + 407: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 410: aload 8 + 412: iconst_1 + 413: aload 12 + 415: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 418: aload 13 + 420: ifnull 431 + 423: aload 8 + 425: iconst_2 + 426: aload 13 + 428: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 431: aload 14 + 433: ifnull 444 + 436: aload 8 + 438: iconst_3 + 439: aload 14 + 441: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 444: aload 8 + 446: ldc #64 // String Failed to flush session user file. + 448: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 451: aload 7 + 453: ldc #59 // String Failed to close session user file. + 455: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 458: goto 494 + 461: astore 9 + 463: aload 5 + 465: aload 9 + 467: aload 7 + 469: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 472: aload 9 + 474: athrow + 475: astore 6 + 477: aload 8 + 479: ldc #64 // String Failed to flush session user file. + 481: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 484: aload 7 + 486: ldc #59 // String Failed to close session user file. + 488: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 491: aload 6 + 493: athrow + 494: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 497: invokevirtual #274 // Method com/crashlytics/android/Crashlytics.r:()Lcom/crashlytics/android/internal/aR; + 500: dup + 501: astore_1 + 502: ifnull 1227 + 505: aload_1 + 506: getfield #216 // Field com/crashlytics/android/internal/aR.a:I + 509: istore_1 + 510: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 513: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 516: ldc #37 // String Crashlytics + 518: ldc #29 // String Closing all open sessions. + 520: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 525: aload_0 + 526: invokespecial #387 // Method o:()[Ljava/io/File; + 529: dup + 530: astore_2 + 531: ifnull 1224 + 534: aload_2 + 535: arraylength + 536: ifle 1224 + 539: aload_2 + 540: dup + 541: astore_2 + 542: arraylength + 543: istore_3 + 544: iconst_0 + 545: istore 4 + 547: iload 4 + 549: iload_3 + 550: if_icmpge 1224 + 553: aload_2 + 554: iload 4 + 556: aaload + 557: dup + 558: astore 5 + 560: invokestatic #365 // Method a:(Ljava/io/File;)Ljava/lang/String; + 563: astore 6 + 565: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 568: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 571: ldc #37 // String Crashlytics + 573: new #182 // class java/lang/StringBuilder + 576: dup + 577: ldc #30 // String Closing session: + 579: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 582: aload 6 + 584: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 587: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 590: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 595: aload_0 + 596: aload 5 + 598: aload 6 + 600: iload_1 + 601: istore 8 + 603: astore 7 + 605: astore 6 + 607: astore 5 + 609: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 612: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 615: ldc #37 // String Crashlytics + 617: new #182 // class java/lang/StringBuilder + 620: dup + 621: ldc #33 // String Collecting session parts for ID + 623: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 626: aload 7 + 628: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 631: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 634: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 639: aload 5 + 641: new #141 // class com/crashlytics/android/R + 644: dup + 645: new #182 // class java/lang/StringBuilder + 648: dup + 649: invokespecial #434 // Method java/lang/StringBuilder."":()V + 652: aload 7 + 654: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 657: ldc #81 // String SessionCrash + 659: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 662: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 665: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 668: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 671: dup + 672: astore 9 + 674: ifnull 687 + 677: aload 9 + 679: arraylength + 680: ifle 687 + 683: iconst_1 + 684: goto 688 + 687: iconst_0 + 688: istore 10 + 690: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 693: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 696: ldc #37 // String Crashlytics + 698: getstatic #244 // Field java/util/Locale.US:Ljava/util/Locale; + 701: ldc #78 // String Session %s has fatal exception: %s + 703: iconst_2 + 704: anewarray #177 // class java/lang/Object + 707: dup + 708: iconst_0 + 709: aload 7 + 711: aastore + 712: dup + 713: iconst_1 + 714: iload 10 + 716: invokestatic #411 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean; + 719: aastore + 720: invokestatic #427 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + 723: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 728: aload 5 + 730: new #141 // class com/crashlytics/android/R + 733: dup + 734: new #182 // class java/lang/StringBuilder + 737: dup + 738: invokespecial #434 // Method java/lang/StringBuilder."":()V + 741: aload 7 + 743: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 746: ldc #83 // String SessionEvent + 748: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 751: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 754: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 757: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 760: dup + 761: astore 11 + 763: ifnull 776 + 766: aload 11 + 768: arraylength + 769: ifle 776 + 772: iconst_1 + 773: goto 777 + 776: iconst_0 + 777: istore 12 + 779: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 782: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 785: ldc #37 // String Crashlytics + 787: getstatic #244 // Field java/util/Locale.US:Ljava/util/Locale; + 790: ldc #79 // String Session %s has non-fatal exceptions: %s + 792: iconst_2 + 793: anewarray #177 // class java/lang/Object + 796: dup + 797: iconst_0 + 798: aload 7 + 800: aastore + 801: dup + 802: iconst_1 + 803: iload 12 + 805: invokestatic #411 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean; + 808: aastore + 809: invokestatic #427 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + 812: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 817: iload 10 + 819: ifne 827 + 822: iload 12 + 824: ifeq 1151 + 827: aconst_null + 828: astore 13 + 830: aconst_null + 831: astore 14 + 833: new #146 // class com/crashlytics/android/f + 836: dup + 837: aload 5 + 839: getfield #229 // Field k:Ljava/io/File; + 842: aload 7 + 844: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 847: dup + 848: astore 13 + 850: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 853: astore 14 + 855: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 858: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 861: ldc #37 // String Crashlytics + 863: new #182 // class java/lang/StringBuilder + 866: dup + 867: ldc #32 // String Collecting SessionStart data for session ID + 869: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 872: aload 7 + 874: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 877: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 880: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 885: aload 14 + 887: aload 6 + 889: invokestatic #356 // Method a:(Lcom/crashlytics/android/h;Ljava/io/File;)V + 892: aload 14 + 894: iconst_4 + 895: new #188 // class java/util/Date + 898: dup + 899: invokespecial #448 // Method java/util/Date."":()V + 902: invokevirtual #449 // Method java/util/Date.getTime:()J + 905: ldc2_w #207 // long 1000l + 908: ldiv + 909: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 912: aload 14 + 914: iconst_5 + 915: iload 10 + 917: invokevirtual #304 // Method com/crashlytics/android/h.a:(IZ)V + 920: aload 5 + 922: aload 14 + 924: aload 7 + 926: invokespecial #357 // Method a:(Lcom/crashlytics/android/h;Ljava/lang/String;)V + 929: iload 12 + 931: ifeq 1029 + 934: aload 11 + 936: arraylength + 937: iload 8 + 939: if_icmple 1018 + 942: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 945: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 948: ldc #37 // String Crashlytics + 950: getstatic #244 // Field java/util/Locale.US:Ljava/util/Locale; + 953: ldc #91 // String Trimming down to %d logged exceptions. + 955: iconst_1 + 956: anewarray #177 // class java/lang/Object + 959: dup + 960: iconst_0 + 961: iload 8 + 963: invokestatic #413 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; + 966: aastore + 967: invokestatic #427 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + 970: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 975: aload 5 + 977: aload 7 + 979: iload 8 + 981: invokespecial #370 // Method a:(Ljava/lang/String;I)V + 984: aload 5 + 986: new #141 // class com/crashlytics/android/R + 989: dup + 990: new #182 // class java/lang/StringBuilder + 993: dup + 994: invokespecial #434 // Method java/lang/StringBuilder."":()V + 997: aload 7 + 999: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 1002: ldc #83 // String SessionEvent + 1004: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 1007: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 1010: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 1013: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 1016: astore 11 + 1018: aload 5 + 1020: aload 14 + 1022: aload 11 + 1024: aload 7 + 1026: invokespecial #362 // Method a:(Lcom/crashlytics/android/h;[Ljava/io/File;Ljava/lang/String;)V + 1029: iload 10 + 1031: ifeq 1043 + 1034: aload 14 + 1036: aload 9 + 1038: iconst_0 + 1039: aaload + 1040: invokestatic #356 // Method a:(Lcom/crashlytics/android/h;Ljava/io/File;)V + 1043: aload 14 + 1045: bipush 11 + 1047: iconst_1 + 1048: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 1051: aload 14 + 1053: bipush 12 + 1055: iconst_3 + 1056: invokevirtual #309 // Method com/crashlytics/android/h.b:(II)V + 1059: aload 14 + 1061: ldc #47 // String Error flushing session file stream + 1063: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 1066: aload 13 + 1068: ldc #51 // String Failed to close CLS file + 1070: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 1073: goto 1181 + 1076: astore 6 + 1078: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 1081: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 1084: ldc #37 // String Crashlytics + 1086: new #182 // class java/lang/StringBuilder + 1089: dup + 1090: ldc #69 // String Failed to write session file for session ID: + 1092: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 1095: aload 7 + 1097: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 1100: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 1103: aload 6 + 1105: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 1110: aload 5 + 1112: aload 6 + 1114: aload 13 + 1116: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 1119: aload 14 + 1121: ldc #47 // String Error flushing session file stream + 1123: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 1126: aload 13 + 1128: invokestatic #354 // Method a:(Lcom/crashlytics/android/f;)V + 1131: goto 1181 + 1134: astore_2 + 1135: aload 14 + 1137: ldc #47 // String Error flushing session file stream + 1139: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 1142: aload 13 + 1144: ldc #51 // String Failed to close CLS file + 1146: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 1149: aload_2 + 1150: athrow + 1151: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 1154: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 1157: ldc #37 // String Crashlytics + 1159: new #182 // class java/lang/StringBuilder + 1162: dup + 1163: ldc #72 // String No events present for session ID + 1165: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 1168: aload 7 + 1170: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 1173: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 1176: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 1181: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 1184: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 1187: ldc #37 // String Crashlytics + 1189: new #182 // class java/lang/StringBuilder + 1192: dup + 1193: ldc #77 // String Removing session part files for ID + 1195: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 1198: aload 7 + 1200: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 1203: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 1206: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 1211: aload 5 + 1213: aload 7 + 1215: invokespecial #369 // Method a:(Ljava/lang/String;)V + 1218: iinc 4, 1 + 1221: goto 547 + 1224: goto 1258 + 1227: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 1230: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 1233: ldc #37 // String Crashlytics + 1235: ldc #74 // String No session begin files found. + 1237: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 1242: return + 1243: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 1246: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 1249: ldc #37 // String Crashlytics + 1251: ldc #94 // String Unable to close session. Settings are not loaded. + 1253: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 1258: return + Exception table: + from to target type + 214 293 461 Class java/lang/Exception + 310 444 461 Class java/lang/Exception + 214 293 475 any + 310 444 475 any + 461 477 475 any + 833 1059 1076 Class java/lang/Exception + 833 1059 1134 any + 1076 1119 1134 any + LineNumberTable: + line 729: 0 + line 731: 193 + line 733: 198 + line 736: 202 + line 738: 494 + line 740: 501 + line 741: 505 + line 743: 510 + line 744: 525 + line 746: 530 + line 747: 539 + line 748: 558 + line 749: 565 + line 750: 595 + line 747: 1218 + line 753: 1224 + line 754: 1227 + line 756: 1242 + line 757: 1243 + line 759: 1258 + StackMapTable: number_of_entries = 36 + frame_type = 255 /* full_frame */ + offset_delta = 43 + locals = [ class com/crashlytics/android/v, top, top, top, top, class com/crashlytics/android/v, top, class java/util/HashSet, class "[Ljava/io/File;", int, int ] + stack = [] + frame_type = 248 /* chop */ + offset_delta = 32 + frame_type = 255 /* full_frame */ + offset_delta = 24 + locals = [ class com/crashlytics/android/v, top, top, top, top, top, top, class java/util/HashSet, top, top, top, class "[Ljava/io/File;", int, int ] + stack = [] + frame_type = 251 /* same_frame_extended */ + offset_delta = 85 + frame_type = 255 /* full_frame */ + offset_delta = 5 + locals = [ class com/crashlytics/android/v ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 116 + locals = [ class com/crashlytics/android/v, top, top, top, top, class com/crashlytics/android/v, top, class com/crashlytics/android/f, class com/crashlytics/android/h, class java/lang/String, class java/lang/String, class java/lang/String ] + stack = [] + frame_type = 9 /* same */ + frame_type = 255 /* full_frame */ + offset_delta = 1 + locals = [ class com/crashlytics/android/v, top, top, top, top, class com/crashlytics/android/v, top, class com/crashlytics/android/f, class com/crashlytics/android/h, top, class java/lang/String, class java/lang/String ] + stack = [ class java/lang/String ] + frame_type = 252 /* append */ + offset_delta = 13 + locals = [ class com/crashlytics/android/d ] + frame_type = 255 /* full_frame */ + offset_delta = 4 + locals = [ class com/crashlytics/android/v, top, top, top, top, class com/crashlytics/android/v, top, class com/crashlytics/android/f, class com/crashlytics/android/h, top, top, class java/lang/String, class com/crashlytics/android/d ] + stack = [ class com/crashlytics/android/d ] + frame_type = 252 /* append */ + offset_delta = 10 + locals = [ class com/crashlytics/android/d ] + frame_type = 255 /* full_frame */ + offset_delta = 4 + locals = [ class com/crashlytics/android/v, top, top, top, top, class com/crashlytics/android/v, top, class com/crashlytics/android/f, class com/crashlytics/android/h, top, top, top, class com/crashlytics/android/d, class com/crashlytics/android/d ] + stack = [ class com/crashlytics/android/d ] + frame_type = 255 /* full_frame */ + offset_delta = 24 + locals = [ class com/crashlytics/android/v, int, top, top, top, class com/crashlytics/android/v, top, class com/crashlytics/android/f, class com/crashlytics/android/h, top, top, top, class com/crashlytics/android/d, class com/crashlytics/android/d, class com/crashlytics/android/d ] + stack = [] + frame_type = 13 /* same */ + frame_type = 255 /* full_frame */ + offset_delta = 34 + locals = [ class com/crashlytics/android/v, top, top, top, top, class com/crashlytics/android/v, top, class com/crashlytics/android/f, class com/crashlytics/android/h, top, top, top, top, top, class com/crashlytics/android/d ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 12 + locals = [ class com/crashlytics/android/v, top, top, top, top, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 16 + locals = [ top, top, top, top, top, class com/crashlytics/android/v, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Exception ] + frame_type = 255 /* full_frame */ + offset_delta = 13 + locals = [ top, top, top, top, top, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Throwable ] + frame_type = 255 /* full_frame */ + offset_delta = 18 + locals = [ class com/crashlytics/android/v ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 52 + locals = [ class com/crashlytics/android/v, int, class "[Ljava/io/File;", int, int ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 139 + locals = [ class com/crashlytics/android/v, int, class "[Ljava/io/File;", int, int, class com/crashlytics/android/v, class java/io/File, class java/lang/String, int, class "[Ljava/io/File;" ] + stack = [] + frame_type = 64 /* same_locals_1_stack_item */ + stack = [ int ] + frame_type = 253 /* append */ + offset_delta = 87 + locals = [ int, class "[Ljava/io/File;" ] + frame_type = 64 /* same_locals_1_stack_item */ + stack = [ int ] + frame_type = 252 /* append */ + offset_delta = 49 + locals = [ int ] + frame_type = 255 /* full_frame */ + offset_delta = 190 + locals = [ class com/crashlytics/android/v, int, class "[Ljava/io/File;", int, int, class com/crashlytics/android/v, top, class java/lang/String, top, class "[Ljava/io/File;", int, class "[Ljava/io/File;", top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 10 + locals = [ class com/crashlytics/android/v, int, class "[Ljava/io/File;", int, int, class com/crashlytics/android/v, top, class java/lang/String, top, class "[Ljava/io/File;", int, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 13 + locals = [ class com/crashlytics/android/v, int, class "[Ljava/io/File;", int, int, class com/crashlytics/android/v, top, class java/lang/String, top, top, top, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [] + frame_type = 96 /* same_locals_1_stack_item */ + stack = [ class java/lang/Exception ] + frame_type = 255 /* full_frame */ + offset_delta = 57 + locals = [ top, top, top, top, top, top, top, top, top, top, top, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Throwable ] + frame_type = 255 /* full_frame */ + offset_delta = 16 + locals = [ class com/crashlytics/android/v, int, class "[Ljava/io/File;", int, int, class com/crashlytics/android/v, top, class java/lang/String ] + stack = [] + frame_type = 29 /* same */ + frame_type = 255 /* full_frame */ + offset_delta = 42 + locals = [] + stack = [] + frame_type = 2 /* same */ + frame_type = 15 /* same */ + frame_type = 14 /* same */ + + Exceptions: + throws java.lang.Exception + + private java.lang.String n(); + flags: ACC_PRIVATE + Code: + stack=4, locals=2, args_size=1 + 0: aload_0 + 1: new #141 // class com/crashlytics/android/R + 4: dup + 5: ldc #25 // String BeginSession + 7: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 10: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 13: dup + 14: astore_1 + 15: getstatic #220 // Field b:Ljava/util/Comparator; + 18: invokestatic #446 // Method java/util/Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V + 21: aload_1 + 22: arraylength + 23: ifle 33 + 26: aload_1 + 27: iconst_0 + 28: aaload + 29: invokestatic #365 // Method a:(Ljava/io/File;)Ljava/lang/String; + 32: areturn + 33: aconst_null + 34: areturn + LineNumberTable: + line 771: 0 + line 772: 14 + line 773: 21 + StackMapTable: number_of_entries = 1 + frame_type = 250 /* chop */ + offset_delta = 33 + + + private static java.lang.String a(java.io.File); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=3, locals=1, args_size=1 + 0: aload_0 + 1: invokevirtual #400 // Method java/io/File.getName:()Ljava/lang/String; + 4: iconst_0 + 5: bipush 35 + 7: invokevirtual #433 // Method java/lang/String.substring:(II)Ljava/lang/String; + 10: areturn + LineNumberTable: + line 786: 0 + + private static void a(com.crashlytics.android.f); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: ifnull 26 + 4: aload_0 + 5: invokevirtual #297 // Method com/crashlytics/android/f.a:()V + 8: return + 9: astore_0 + 10: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 13: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 16: ldc #37 // String Crashlytics + 18: ldc #46 // String Error closing session file stream in the presence of an exception + 20: aload_0 + 21: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 26: return + Exception table: + from to target type + 4 8 9 Class java/io/IOException + LineNumberTable: + line 872: 0 + line 874: 4 + line 877: 8 + line 875: 9 + line 876: 10 + line 879: 26 + StackMapTable: number_of_entries = 2 + frame_type = 255 /* full_frame */ + offset_delta = 9 + locals = [] + stack = [ class java/io/IOException ] + frame_type = 16 /* same */ + + + private void a(com.crashlytics.android.h, java.io.File[], java.lang.String); + flags: ACC_PRIVATE + Code: + stack=8, locals=7, args_size=4 + 0: aload_2 + 1: getstatic #217 // Field com/crashlytics/android/internal/ab.a:Ljava/util/Comparator; + 4: invokestatic #446 // Method java/util/Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V + 7: aload_2 + 8: dup + 9: astore_2 + 10: arraylength + 11: istore 4 + 13: iconst_0 + 14: istore 5 + 16: iload 5 + 18: iload 4 + 20: if_icmpge 100 + 23: aload_2 + 24: iload 5 + 26: aaload + 27: astore 6 + 29: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 32: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 35: ldc #37 // String Crashlytics + 37: getstatic #244 // Field java/util/Locale.US:Ljava/util/Locale; + 40: ldc #70 // String Found Non Fatal for session ID %s in %s + 42: iconst_2 + 43: anewarray #177 // class java/lang/Object + 46: dup + 47: iconst_0 + 48: aload_3 + 49: aastore + 50: dup + 51: iconst_1 + 52: aload 6 + 54: invokevirtual #400 // Method java/io/File.getName:()Ljava/lang/String; + 57: aastore + 58: invokestatic #427 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + 61: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 66: aload_1 + 67: aload 6 + 69: invokestatic #356 // Method a:(Lcom/crashlytics/android/h;Ljava/io/File;)V + 72: goto 94 + 75: astore 6 + 77: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 80: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 83: ldc #37 // String Crashlytics + 85: ldc #48 // String Error writting non-fatal to session. + 87: aload 6 + 89: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 94: iinc 5, 1 + 97: goto 16 + 100: return + Exception table: + from to target type + 29 72 75 Class java/lang/Exception + LineNumberTable: + line 882: 0 + line 884: 7 + line 886: 29 + line 887: 66 + line 890: 72 + line 888: 75 + line 889: 77 + line 884: 94 + line 892: 100 + StackMapTable: number_of_entries = 4 + frame_type = 255 /* full_frame */ + offset_delta = 16 + locals = [ top, class com/crashlytics/android/h, class "[Ljava/io/File;", class java/lang/String, int, int ] + stack = [] + frame_type = 122 /* same_locals_1_stack_item */ + stack = [ class java/lang/Exception ] + frame_type = 18 /* same */ + frame_type = 255 /* full_frame */ + offset_delta = 5 + locals = [] + stack = [] + + + private void a(com.crashlytics.android.h, java.lang.String) throws java.io.IOException; + flags: ACC_PRIVATE + Code: + stack=5, locals=8, args_size=3 + 0: iconst_4 + 1: anewarray #181 // class java/lang/String + 4: dup + 5: iconst_0 + 6: ldc #85 // String SessionUser + 8: aastore + 9: dup + 10: iconst_1 + 11: ldc #80 // String SessionApp + 13: aastore + 14: dup + 15: iconst_2 + 16: ldc #84 // String SessionOS + 18: aastore + 19: dup + 20: iconst_3 + 21: ldc #82 // String SessionDevice + 23: aastore + 24: dup + 25: astore_3 + 26: dup + 27: astore_3 + 28: arraylength + 29: istore 4 + 31: iconst_0 + 32: istore 5 + 34: iload 5 + 36: iload 4 + 38: if_icmpge 180 + 41: aload_3 + 42: iload 5 + 44: aaload + 45: astore 6 + 47: aload_0 + 48: new #141 // class com/crashlytics/android/R + 51: dup + 52: new #182 // class java/lang/StringBuilder + 55: dup + 56: invokespecial #434 // Method java/lang/StringBuilder."":()V + 59: aload_2 + 60: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 63: aload 6 + 65: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 68: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 71: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 74: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 77: dup + 78: astore 7 + 80: arraylength + 81: ifne 127 + 84: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 87: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 90: ldc #37 // String Crashlytics + 92: new #182 // class java/lang/StringBuilder + 95: dup + 96: ldc #26 // String Can't find + 98: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 101: aload 6 + 103: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 106: ldc #7 // String data for session ID + 108: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 111: aload_2 + 112: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 115: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 118: aconst_null + 119: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 124: goto 174 + 127: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 130: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 133: ldc #37 // String Crashlytics + 135: new #182 // class java/lang/StringBuilder + 138: dup + 139: ldc #31 // String Collecting + 141: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 144: aload 6 + 146: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 149: ldc #7 // String data for session ID + 151: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 154: aload_2 + 155: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 158: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 161: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 166: aload_1 + 167: aload 7 + 169: iconst_0 + 170: aaload + 171: invokestatic #356 // Method a:(Lcom/crashlytics/android/h;Ljava/io/File;)V + 174: iinc 5, 1 + 177: goto 34 + 180: return + LineNumberTable: + line 895: 0 + line 897: 25 + line 898: 47 + line 900: 78 + line 901: 84 + line 903: 127 + line 904: 166 + line 897: 174 + line 907: 180 + StackMapTable: number_of_entries = 4 + frame_type = 254 /* append */ + offset_delta = 34 + locals = [ class "[Ljava/lang/String;", int, int ] + frame_type = 253 /* append */ + offset_delta = 92 + locals = [ class java/lang/String, class "[Ljava/io/File;" ] + frame_type = 249 /* chop */ + offset_delta = 46 + frame_type = 255 /* full_frame */ + offset_delta = 5 + locals = [] + stack = [] + + Exceptions: + throws java.io.IOException + + private void a(java.lang.String); + flags: ACC_PRIVATE + Code: + stack=4, locals=5, args_size=2 + 0: aload_0 + 1: aload_1 + 2: astore_2 + 3: dup + 4: astore_1 + 5: new #142 // class com/crashlytics/android/S + 8: dup + 9: aload_2 + 10: invokespecial #290 // Method com/crashlytics/android/S."":(Ljava/lang/String;)V + 13: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 16: dup + 17: astore_1 + 18: arraylength + 19: istore_2 + 20: iconst_0 + 21: istore_3 + 22: iload_3 + 23: iload_2 + 24: if_icmpge 43 + 27: aload_1 + 28: iload_3 + 29: aaload + 30: dup + 31: astore 4 + 33: invokevirtual #398 // Method java/io/File.delete:()Z + 36: pop + 37: iinc 3, 1 + 40: goto 22 + 43: return + LineNumberTable: + line 913: 0 + line 914: 31 + line 913: 37 + line 916: 43 + StackMapTable: number_of_entries = 2 + frame_type = 255 /* full_frame */ + offset_delta = 22 + locals = [ top, class "[Ljava/io/File;", int, int ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 20 + locals = [] + stack = [] + + + private java.io.File[] o(); + flags: ACC_PRIVATE + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #141 // class com/crashlytics/android/R + 4: dup + 5: ldc #25 // String BeginSession + 7: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 10: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 13: areturn + LineNumberTable: + line 930: 0 + + private java.io.File[] a(java.io.FilenameFilter); + flags: ACC_PRIVATE + Code: + stack=2, locals=2, args_size=2 + 0: aload_0 + 1: getfield #229 // Field k:Ljava/io/File; + 4: aload_1 + 5: invokevirtual #405 // Method java/io/File.listFiles:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 8: dup + 9: astore_1 + 10: ifnonnull 18 + 13: iconst_0 + 14: anewarray #163 // class java/io/File + 17: areturn + 18: aload_1 + 19: areturn + LineNumberTable: + line 941: 0 + StackMapTable: number_of_entries = 1 + frame_type = 255 /* full_frame */ + offset_delta = 18 + locals = [ top, class "[Ljava/io/File;" ] + stack = [] + + + private void p(); + flags: ACC_PRIVATE + Code: + stack=6, locals=5, args_size=1 + 0: aload_0 + 1: dup + 2: astore_1 + 3: getstatic #219 // Field a:Ljava/io/FilenameFilter; + 6: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 9: dup + 10: astore_1 + 11: arraylength + 12: istore_2 + 13: iconst_0 + 14: istore_3 + 15: iload_3 + 16: iload_2 + 17: if_icmpge 71 + 20: aload_1 + 21: iload_3 + 22: aaload + 23: dup + 24: astore 4 + 26: astore 4 + 28: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 31: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 34: ldc #37 // String Crashlytics + 36: ldc #24 // String Attempting to send crash report at time of crash... + 38: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 43: new #183 // class java/lang/Thread + 46: dup + 47: new #127 // class com/crashlytics/android/D + 50: dup + 51: aload_0 + 52: aload 4 + 54: invokespecial #275 // Method com/crashlytics/android/D."":(Lcom/crashlytics/android/v;Ljava/io/File;)V + 57: ldc #40 // String Crashlytics Report Uploader + 59: invokespecial #439 // Method java/lang/Thread."":(Ljava/lang/Runnable;Ljava/lang/String;)V + 62: invokevirtual #442 // Method java/lang/Thread.start:()V + 65: iinc 3, 1 + 68: goto 15 + 71: return + LineNumberTable: + line 1003: 0 + line 1004: 24 + line 1005: 28 + line 1007: 43 + line 1003: 65 + line 1019: 71 + StackMapTable: number_of_entries = 2 + frame_type = 254 /* append */ + offset_delta = 15 + locals = [ class "[Ljava/io/File;", int, int ] + frame_type = 255 /* full_frame */ + offset_delta = 55 + locals = [] + stack = [] + + + private void a(java.lang.Throwable, java.io.OutputStream); + flags: ACC_PRIVATE + Code: + stack=4, locals=4, args_size=3 + 0: aload_2 + 1: ifnull 66 + 4: aload_0 + 5: aload_1 + 6: aload_2 + 7: astore_3 + 8: astore_2 + 9: astore_1 + 10: aconst_null + 11: astore_1 + 12: new #169 // class java/io/PrintWriter + 15: dup + 16: aload_3 + 17: invokespecial #408 // Method java/io/PrintWriter."":(Ljava/io/OutputStream;)V + 20: astore_1 + 21: aload_2 + 22: aload_1 + 23: invokestatic #376 // Method a:(Ljava/lang/Throwable;Ljava/io/Writer;)V + 26: aload_1 + 27: ldc #60 // String Failed to close stack trace writer. + 29: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 32: return + 33: astore_2 + 34: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 37: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 40: ldc #37 // String Crashlytics + 42: ldc #61 // String Failed to create PrintWriter + 44: aload_2 + 45: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 50: aload_1 + 51: ldc #60 // String Failed to close stack trace writer. + 53: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 56: return + 57: astore_2 + 58: aload_1 + 59: ldc #60 // String Failed to close stack trace writer. + 61: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 64: aload_2 + 65: athrow + 66: return + Exception table: + from to target type + 12 26 33 Class java/lang/Exception + 12 26 57 any + 33 50 57 any + LineNumberTable: + line 1089: 0 + line 1090: 4 + line 1092: 66 + StackMapTable: number_of_entries = 3 + frame_type = 255 /* full_frame */ + offset_delta = 33 + locals = [ top, class java/io/PrintWriter ] + stack = [ class java/lang/Exception ] + frame_type = 87 /* same_locals_1_stack_item */ + stack = [ class java/lang/Throwable ] + frame_type = 249 /* chop */ + offset_delta = 8 + + + private static void a(java.lang.Throwable, java.io.Writer); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=4, locals=7, args_size=2 + 0: iconst_1 + 1: istore_2 + 2: aload_0 + 3: ifnull 165 + 6: aload_0 + 7: dup + 8: astore_3 + 9: invokevirtual #444 // Method java/lang/Throwable.getLocalizedMessage:()Ljava/lang/String; + 12: dup + 13: astore_3 + 14: ifnonnull 21 + 17: aconst_null + 18: goto 29 + 21: aload_3 + 22: ldc #10 // String (\r\n|\n| ) + 24: ldc #6 // String + 26: invokevirtual #431 // Method java/lang/String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + 29: dup + 30: astore_3 + 31: ifnull 38 + 34: aload_3 + 35: goto 40 + 38: ldc #2 // String + 40: astore_3 + 41: iload_2 + 42: ifeq 50 + 45: ldc #2 // String + 47: goto 52 + 50: ldc #27 // String Caused by: + 52: astore_2 + 53: aload_1 + 54: new #182 // class java/lang/StringBuilder + 57: dup + 58: invokespecial #434 // Method java/lang/StringBuilder."":()V + 61: aload_2 + 62: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 65: aload_0 + 66: invokevirtual #418 // Method java/lang/Object.getClass:()Ljava/lang/Class; + 69: invokevirtual #412 // Method java/lang/Class.getName:()Ljava/lang/String; + 72: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 75: ldc #18 // String : + 77: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 80: aload_3 + 81: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 84: ldc #4 // String \n + 86: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 89: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 92: invokevirtual #409 // Method java/io/Writer.write:(Ljava/lang/String;)V + 95: iconst_0 + 96: istore_2 + 97: aload_0 + 98: invokevirtual #445 // Method java/lang/Throwable.getStackTrace:()[Ljava/lang/StackTraceElement; + 101: dup + 102: astore_3 + 103: arraylength + 104: istore 4 + 106: iconst_0 + 107: istore 5 + 109: iload 5 + 111: iload 4 + 113: if_icmpge 157 + 116: aload_3 + 117: iload 5 + 119: aaload + 120: astore 6 + 122: aload_1 + 123: new #182 // class java/lang/StringBuilder + 126: dup + 127: ldc #3 // String \tat + 129: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 132: aload 6 + 134: invokevirtual #426 // Method java/lang/StackTraceElement.toString:()Ljava/lang/String; + 137: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 140: ldc #4 // String \n + 142: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 145: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 148: invokevirtual #409 // Method java/io/Writer.write:(Ljava/lang/String;)V + 151: iinc 5, 1 + 154: goto 109 + 157: aload_0 + 158: invokevirtual #443 // Method java/lang/Throwable.getCause:()Ljava/lang/Throwable; + 161: astore_0 + 162: goto 2 + 165: return + 166: astore_2 + 167: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 170: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 173: ldc #37 // String Crashlytics + 175: ldc #36 // String Could not write stack trace + 177: aload_2 + 178: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 183: return + Exception table: + from to target type + 0 165 166 Class java/lang/Exception + LineNumberTable: + line 1122: 0 + line 1124: 2 + line 1125: 6 + line 1126: 30 + line 1128: 41 + line 1129: 53 + line 1131: 95 + line 1133: 97 + line 1134: 122 + line 1133: 151 + line 1137: 157 + line 1138: 162 + line 1141: 165 + line 1139: 166 + line 1140: 167 + line 1142: 183 + StackMapTable: number_of_entries = 11 + frame_type = 252 /* append */ + offset_delta = 2 + locals = [ int ] + frame_type = 252 /* append */ + offset_delta = 18 + locals = [ class java/lang/String ] + frame_type = 255 /* full_frame */ + offset_delta = 7 + locals = [ class java/lang/Throwable, class java/io/Writer, int ] + stack = [ class java/lang/String ] + frame_type = 8 /* same */ + frame_type = 65 /* same_locals_1_stack_item */ + stack = [ class java/lang/String ] + frame_type = 255 /* full_frame */ + offset_delta = 9 + locals = [ class java/lang/Throwable, class java/io/Writer, top, class java/lang/String ] + stack = [] + frame_type = 65 /* same_locals_1_stack_item */ + stack = [ class java/lang/String ] + frame_type = 255 /* full_frame */ + offset_delta = 56 + locals = [ class java/lang/Throwable, class java/io/Writer, int, class "[Ljava/lang/StackTraceElement;", int, int ] + stack = [] + frame_type = 248 /* chop */ + offset_delta = 47 + frame_type = 248 /* chop */ + offset_delta = 7 + frame_type = 64 /* same_locals_1_stack_item */ + stack = [ class java/lang/Exception ] + + + private static int q(); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=4, locals=2, args_size=0 + 0: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 3: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 6: astore_0 + 7: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 10: invokevirtual #349 // Method com/crashlytics/android/internal/v.f:()Z + 13: istore_1 + 14: iconst_0 + 15: iconst_1 + 16: aload_0 + 17: iload_1 + 18: invokestatic #346 // Method com/crashlytics/android/internal/r.a:(Landroid/content/Context;Z)Ljava/lang/String; + 21: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 24: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 27: iadd + 28: dup + 29: istore_0 + 30: ireturn + LineNumberTable: + line 1160: 0 + line 1162: 7 + line 1163: 14 + line 1165: 29 + + private static com.crashlytics.android.d b(java.lang.String); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: ifnonnull 6 + 4: aconst_null + 5: areturn + 6: aload_0 + 7: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 10: areturn + LineNumberTable: + line 1210: 0 + StackMapTable: number_of_entries = 1 + frame_type = 6 /* same */ + + + private void c(java.lang.String) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=15, locals=16, args_size=2 + 0: aconst_null + 1: astore_2 + 2: aconst_null + 3: astore_3 + 4: new #146 // class com/crashlytics/android/f + 7: dup + 8: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 11: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 14: new #182 // class java/lang/StringBuilder + 17: dup + 18: invokespecial #434 // Method java/lang/StringBuilder."":()V + 21: aload_1 + 22: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 25: ldc #82 // String SessionDevice + 27: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 30: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 33: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 36: dup + 37: astore_2 + 38: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 41: astore_3 + 42: new #121 // class android/os/StatFs + 45: dup + 46: invokestatic #251 // Method android/os/Environment.getDataDirectory:()Ljava/io/File; + 49: invokevirtual #401 // Method java/io/File.getPath:()Ljava/lang/String; + 52: invokespecial #252 // Method android/os/StatFs."":(Ljava/lang/String;)V + 55: astore_1 + 56: invokestatic #326 // Method com/crashlytics/android/internal/ab.b:()I + 59: istore 4 + 61: getstatic #212 // Field android/os/Build.MODEL:Ljava/lang/String; + 64: invokestatic #379 // Method b:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 67: astore 5 + 69: getstatic #211 // Field android/os/Build.MANUFACTURER:Ljava/lang/String; + 72: invokestatic #379 // Method b:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 75: astore 6 + 77: getstatic #213 // Field android/os/Build.PRODUCT:Ljava/lang/String; + 80: invokestatic #379 // Method b:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 83: astore 7 + 85: invokestatic #420 // Method java/lang/Runtime.getRuntime:()Ljava/lang/Runtime; + 88: invokevirtual #419 // Method java/lang/Runtime.availableProcessors:()I + 91: istore 8 + 93: invokestatic #329 // Method com/crashlytics/android/internal/ab.c:()J + 96: lstore 10 + 98: aload_1 + 99: invokevirtual #253 // Method android/os/StatFs.getBlockCount:()I + 102: i2l + 103: aload_1 + 104: invokevirtual #254 // Method android/os/StatFs.getBlockSize:()I + 107: i2l + 108: lmul + 109: lstore 12 + 111: invokestatic #331 // Method com/crashlytics/android/internal/ab.d:()Z + 114: istore_1 + 115: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 118: invokevirtual #260 // Method com/crashlytics/android/Crashlytics.b:()Lcom/crashlytics/android/internal/ao; + 121: dup + 122: astore 9 + 124: invokevirtual #338 // Method com/crashlytics/android/internal/ao.e:()Ljava/lang/String; + 127: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 130: astore 14 + 132: aload 9 + 134: invokevirtual #339 // Method com/crashlytics/android/internal/ao.f:()Ljava/util/Map; + 137: astore 9 + 139: invokestatic #333 // Method com/crashlytics/android/internal/ab.f:()I + 142: istore 15 + 144: aload_3 + 145: bipush 9 + 147: iconst_2 + 148: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 151: aload_3 + 152: aload_0 + 153: iload 4 + 155: aload 14 + 157: aload 5 + 159: iload 8 + 161: lload 10 + 163: lload 12 + 165: iload_1 + 166: aload 9 + 168: iload 15 + 170: aload 6 + 172: aload 7 + 174: invokespecial #353 // Method a:(ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;IJJZLjava/util/Map;ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;)I + 177: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 180: aload_3 + 181: iconst_1 + 182: aload 14 + 184: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 187: aload_3 + 188: iconst_3 + 189: iload 4 + 191: invokevirtual #309 // Method com/crashlytics/android/h.b:(II)V + 194: aload_3 + 195: iconst_4 + 196: aload 5 + 198: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 201: aload_3 + 202: iconst_5 + 203: iload 8 + 205: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 208: aload_3 + 209: bipush 6 + 211: lload 10 + 213: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 216: aload_3 + 217: bipush 7 + 219: lload 12 + 221: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 224: aload_3 + 225: bipush 10 + 227: iload_1 + 228: invokevirtual #304 // Method com/crashlytics/android/h.a:(IZ)V + 231: aload 9 + 233: invokeinterface #474, 1 // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set; + 238: invokeinterface #481, 1 // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator; + 243: astore_1 + 244: aload_1 + 245: invokeinterface #470, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z + 250: ifeq 337 + 253: aload_1 + 254: invokeinterface #471, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; + 259: checkcast #195 // class java/util/Map$Entry + 262: astore 4 + 264: aload_3 + 265: bipush 11 + 267: iconst_2 + 268: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 271: aload_3 + 272: aload 4 + 274: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 279: checkcast #153 // class com/crashlytics/android/internal/ap + 282: aload 4 + 284: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 289: checkcast #181 // class java/lang/String + 292: invokestatic #363 // Method a:(Lcom/crashlytics/android/internal/ap;Ljava/lang/String;)I + 295: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 298: aload_3 + 299: iconst_1 + 300: aload 4 + 302: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 307: checkcast #153 // class com/crashlytics/android/internal/ap + 310: getfield #218 // Field com/crashlytics/android/internal/ap.f:I + 313: invokevirtual #309 // Method com/crashlytics/android/h.b:(II)V + 316: aload_3 + 317: iconst_2 + 318: aload 4 + 320: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 325: checkcast #181 // class java/lang/String + 328: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 331: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 334: goto 244 + 337: aload_3 + 338: bipush 12 + 340: iload 15 + 342: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 345: aload 6 + 347: ifnull 358 + 350: aload_3 + 351: bipush 13 + 353: aload 6 + 355: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 358: aload 7 + 360: ifnull 371 + 363: aload_3 + 364: bipush 14 + 366: aload 7 + 368: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 371: aload_3 + 372: ldc #63 // String Failed to flush session device info. + 374: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 377: aload_2 + 378: ldc #58 // String Failed to close session device file. + 380: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 383: return + 384: astore_1 + 385: aload_0 + 386: aload_1 + 387: aload_2 + 388: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 391: aload_1 + 392: athrow + 393: astore_1 + 394: aload_3 + 395: ldc #63 // String Failed to flush session device info. + 397: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 400: aload_2 + 401: ldc #58 // String Failed to close session device file. + 403: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 406: aload_1 + 407: athrow + Exception table: + from to target type + 4 371 384 Class java/lang/Exception + 4 371 393 any + 384 394 393 any + LineNumberTable: + line 1218: 0 + line 1219: 2 + line 1221: 4 + line 1222: 37 + line 1224: 42 + line 1226: 56 + line 1228: 61 + line 1229: 69 + line 1230: 77 + line 1232: 85 + line 1233: 93 + line 1234: 98 + line 1235: 111 + line 1237: 115 + line 1238: 122 + line 1240: 132 + line 1242: 139 + line 1244: 144 + line 1246: 151 + line 1249: 180 + line 1251: 187 + line 1252: 194 + line 1253: 201 + line 1254: 208 + line 1255: 216 + line 1256: 224 + line 1258: 231 + line 1259: 264 + line 1260: 271 + line 1262: 298 + line 1263: 316 + line 1264: 334 + line 1265: 337 + line 1267: 345 + line 1268: 350 + line 1270: 358 + line 1271: 363 + line 1277: 371 + line 1278: 377 + line 1279: 383 + line 1273: 384 + line 1274: 385 + line 1275: 391 + line 1277: 393 + line 1278: 400 + StackMapTable: number_of_entries = 6 + frame_type = 255 /* full_frame */ + offset_delta = 244 + locals = [ class com/crashlytics/android/v, class java/util/Iterator, class com/crashlytics/android/f, class com/crashlytics/android/h, top, top, class com/crashlytics/android/d, class com/crashlytics/android/d, top, top, top, top, top, top, top, int ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 92 + locals = [ class com/crashlytics/android/v, top, class com/crashlytics/android/f, class com/crashlytics/android/h, top, top, class com/crashlytics/android/d, class com/crashlytics/android/d, top, top, top, top, top, top, top, int ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 20 + locals = [ class com/crashlytics/android/v, top, class com/crashlytics/android/f, class com/crashlytics/android/h, top, top, top, class com/crashlytics/android/d ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 12 + locals = [ top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 12 + locals = [ class com/crashlytics/android/v, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Exception ] + frame_type = 255 /* full_frame */ + offset_delta = 8 + locals = [ top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Throwable ] + + Exceptions: + throws java.lang.Exception + + private static int a(com.crashlytics.android.internal.ap, java.lang.String); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=3, locals=2, args_size=2 + 0: iconst_1 + 1: aload_0 + 2: getfield #218 // Field com/crashlytics/android/internal/ap.f:I + 5: invokestatic #316 // Method com/crashlytics/android/h.e:(II)I + 8: dup + 9: istore_0 + 10: iconst_2 + 11: aload_1 + 12: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 15: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 18: iadd + 19: dup + 20: istore_0 + 21: ireturn + LineNumberTable: + line 1283: 0 + line 1284: 9 + line 1286: 20 + + private int a(int, com.crashlytics.android.d, com.crashlytics.android.d, int, long, long, boolean, java.util.Map, int, com.crashlytics.android.d, com.crashlytics.android.d); + flags: ACC_PRIVATE + Code: + stack=4, locals=14, args_size=12 + 0: iconst_0 + 1: iconst_1 + 2: aload_2 + 3: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 6: iadd + 7: dup + 8: istore_2 + 9: iconst_3 + 10: iload_1 + 11: invokestatic #316 // Method com/crashlytics/android/h.e:(II)I + 14: iadd + 15: dup + 16: istore_2 + 17: aload_3 + 18: ifnonnull 25 + 21: iconst_0 + 22: goto 30 + 25: iconst_4 + 26: aload_3 + 27: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 30: iadd + 31: dup + 32: istore_2 + 33: iconst_5 + 34: iload 4 + 36: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 39: iadd + 40: dup + 41: istore_2 + 42: bipush 6 + 44: lload 5 + 46: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 49: iadd + 50: dup + 51: istore_2 + 52: bipush 7 + 54: lload 7 + 56: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 59: iadd + 60: dup + 61: istore_2 + 62: bipush 10 + 64: iload 9 + 66: invokestatic #312 // Method com/crashlytics/android/h.b:(IZ)I + 69: iadd + 70: istore_2 + 71: aload 10 + 73: ifnull 148 + 76: aload 10 + 78: invokeinterface #474, 1 // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set; + 83: invokeinterface #481, 1 // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator; + 88: astore_1 + 89: aload_1 + 90: invokeinterface #470, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z + 95: ifeq 148 + 98: aload_1 + 99: invokeinterface #471, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; + 104: checkcast #195 // class java/util/Map$Entry + 107: dup + 108: astore_3 + 109: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 114: checkcast #153 // class com/crashlytics/android/internal/ap + 117: aload_3 + 118: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 123: checkcast #181 // class java/lang/String + 126: invokestatic #363 // Method a:(Lcom/crashlytics/android/internal/ap;Ljava/lang/String;)I + 129: istore_3 + 130: iload_2 + 131: bipush 11 + 133: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 136: iload_3 + 137: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 140: iadd + 141: iload_3 + 142: iadd + 143: iadd + 144: istore_2 + 145: goto 89 + 148: iload_2 + 149: bipush 12 + 151: iload 11 + 153: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 156: iadd + 157: dup + 158: istore_2 + 159: aload 12 + 161: ifnonnull 168 + 164: iconst_0 + 165: goto 175 + 168: bipush 13 + 170: aload 12 + 172: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 175: iadd + 176: dup + 177: istore_2 + 178: aload 13 + 180: ifnonnull 187 + 183: iconst_0 + 184: goto 194 + 187: bipush 14 + 189: aload 13 + 191: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 194: iadd + 195: dup + 196: istore_2 + 197: ireturn + LineNumberTable: + line 1292: 0 + line 1295: 8 + line 1296: 16 + line 1297: 32 + line 1298: 41 + line 1299: 51 + line 1300: 61 + line 1301: 71 + line 1302: 76 + line 1303: 108 + line 1304: 130 + line 1306: 145 + line 1308: 148 + line 1309: 158 + line 1310: 177 + line 1312: 196 + StackMapTable: number_of_entries = 8 + frame_type = 255 /* full_frame */ + offset_delta = 25 + locals = [ top, top, top, class com/crashlytics/android/d, int, long, long, int, class java/util/Map, int, class com/crashlytics/android/d, class com/crashlytics/android/d ] + stack = [ int ] + frame_type = 255 /* full_frame */ + offset_delta = 4 + locals = [ top, top, top, top, int, long, long, int, class java/util/Map, int, class com/crashlytics/android/d, class com/crashlytics/android/d ] + stack = [ int, int ] + frame_type = 255 /* full_frame */ + offset_delta = 58 + locals = [ top, class java/util/Iterator, int, top, top, top, top, top, top, top, top, int, class com/crashlytics/android/d, class com/crashlytics/android/d ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 58 + locals = [ top, top, int, top, top, top, top, top, top, top, top, int, class com/crashlytics/android/d, class com/crashlytics/android/d ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 19 + locals = [ top, top, top, top, top, top, top, top, top, top, top, top, class com/crashlytics/android/d, class com/crashlytics/android/d ] + stack = [ int ] + frame_type = 255 /* full_frame */ + offset_delta = 6 + locals = [ top, top, top, top, top, top, top, top, top, top, top, top, top, class com/crashlytics/android/d ] + stack = [ int, int ] + frame_type = 75 /* same_locals_1_stack_item */ + stack = [ int ] + frame_type = 255 /* full_frame */ + offset_delta = 6 + locals = [] + stack = [ int, int ] + + Signature: #778 // (ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;IJJZLjava/util/Map;ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;)I + + private static void a(com.crashlytics.android.h, java.io.File) throws java.io.IOException; + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=5, locals=5, args_size=2 + 0: aload_1 + 1: invokevirtual #399 // Method java/io/File.exists:()Z + 4: ifeq 87 + 7: aload_1 + 8: invokevirtual #403 // Method java/io/File.length:()J + 11: dup2 + 12: lstore_2 + 13: l2i + 14: newarray byte + 16: astore_2 + 17: aconst_null + 18: astore_3 + 19: new #164 // class java/io/FileInputStream + 22: dup + 23: aload_1 + 24: invokespecial #406 // Method java/io/FileInputStream."":(Ljava/io/File;)V + 27: astore_3 + 28: iconst_0 + 29: istore_1 + 30: iconst_0 + 31: istore 4 + 33: iload_1 + 34: aload_2 + 35: arraylength + 36: if_icmpge 63 + 39: aload_3 + 40: aload_2 + 41: iload_1 + 42: aload_2 + 43: arraylength + 44: iload_1 + 45: isub + 46: invokevirtual #407 // Method java/io/FileInputStream.read:([BII)I + 49: dup + 50: istore 4 + 52: iflt 63 + 55: iload_1 + 56: iload 4 + 58: iadd + 59: istore_1 + 60: goto 33 + 63: aload_3 + 64: ldc #54 // String Failed to close file input stream. + 66: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 69: goto 81 + 72: astore_0 + 73: aload_3 + 74: ldc #54 // String Failed to close file input stream. + 76: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 79: aload_0 + 80: athrow + 81: aload_0 + 82: aload_2 + 83: invokevirtual #306 // Method com/crashlytics/android/h.a:([B)V + 86: return + 87: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 90: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 93: ldc #37 // String Crashlytics + 95: new #182 // class java/lang/StringBuilder + 98: dup + 99: ldc #88 // String Tried to include a file that doesn't exist: + 101: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 104: aload_1 + 105: invokevirtual #400 // Method java/io/File.getName:()Ljava/lang/String; + 108: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 111: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 114: aconst_null + 115: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 120: return + Exception table: + from to target type + 19 63 72 any + LineNumberTable: + line 1319: 0 + line 1321: 7 + line 1322: 12 + line 1324: 17 + line 1327: 19 + line 1329: 28 + line 1330: 30 + line 1332: 33 + line 1333: 55 + line 1336: 63 + line 1337: 69 + line 1336: 72 + line 1339: 81 + line 1340: 86 + line 1341: 87 + line 1343: 120 + StackMapTable: number_of_entries = 5 + frame_type = 255 /* full_frame */ + offset_delta = 33 + locals = [ class com/crashlytics/android/h, int, class "[B", class java/io/FileInputStream ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 29 + locals = [ class com/crashlytics/android/h, top, class "[B", class java/io/FileInputStream ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 8 + locals = [ top, top, top, class java/io/FileInputStream ] + stack = [ class java/lang/Throwable ] + frame_type = 255 /* full_frame */ + offset_delta = 8 + locals = [ class com/crashlytics/android/h, top, class "[B" ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 5 + locals = [ top, class java/io/File ] + stack = [] + + Exceptions: + throws java.io.IOException + + private void a(java.lang.String, int); + flags: ACC_PRIVATE + Code: + stack=5, locals=3, args_size=3 + 0: aload_0 + 1: getfield #229 // Field k:Ljava/io/File; + 4: new #141 // class com/crashlytics/android/R + 7: dup + 8: new #182 // class java/lang/StringBuilder + 11: dup + 12: invokespecial #434 // Method java/lang/StringBuilder."":()V + 15: aload_1 + 16: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 19: ldc #83 // String SessionEvent + 21: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 24: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 27: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 30: iload_2 + 31: getstatic #221 // Field c:Ljava/util/Comparator; + 34: invokestatic #291 // Method com/crashlytics/android/b.a:(Ljava/io/File;Ljava/io/FilenameFilter;ILjava/util/Comparator;)V + 37: return + LineNumberTable: + line 1355: 0 + line 1357: 37 + + private void a(java.util.Date, com.crashlytics.android.h, java.lang.Thread, java.lang.Throwable, java.lang.String, boolean) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=17, locals=36, args_size=7 + 0: aload_1 + 1: invokevirtual #449 // Method java/util/Date.getTime:()J + 4: ldc2_w #207 // long 1000l + 7: ldiv + 8: lstore 7 + 10: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 13: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 16: invokestatic #327 // Method com/crashlytics/android/internal/ab.b:(Landroid/content/Context;)F + 19: fstore_1 + 20: aload_0 + 21: getfield #240 // Field v:Z + 24: invokestatic #325 // Method com/crashlytics/android/internal/ab.a:(Z)I + 27: istore 9 + 29: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 32: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 35: invokestatic #330 // Method com/crashlytics/android/internal/ab.c:(Landroid/content/Context;)Z + 38: istore 10 + 40: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 43: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 46: invokevirtual #246 // Method android/content/Context.getResources:()Landroid/content/res/Resources; + 49: invokevirtual #250 // Method android/content/res/Resources.getConfiguration:()Landroid/content/res/Configuration; + 52: getfield #210 // Field android/content/res/Configuration.orientation:I + 55: istore 11 + 57: invokestatic #329 // Method com/crashlytics/android/internal/ab.c:()J + 60: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 63: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 66: invokestatic #320 // Method com/crashlytics/android/internal/ab.a:(Landroid/content/Context;)J + 69: lsub + 70: lstore 13 + 72: invokestatic #251 // Method android/os/Environment.getDataDirectory:()Ljava/io/File; + 75: invokevirtual #401 // Method java/io/File.getPath:()Ljava/lang/String; + 78: invokestatic #328 // Method com/crashlytics/android/internal/ab.b:(Ljava/lang/String;)J + 81: lstore 15 + 83: aload_0 + 84: invokestatic #262 // Method com/crashlytics/android/Crashlytics.d:()Ljava/lang/String; + 87: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 90: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 93: invokestatic #324 // Method com/crashlytics/android/internal/ab.a:(Ljava/lang/String;Landroid/content/Context;)Landroid/app/ActivityManager$RunningAppProcessInfo; + 96: putfield #238 // Field t:Landroid/app/ActivityManager$RunningAppProcessInfo; + 99: aload_0 + 100: new #191 // class java/util/LinkedList + 103: dup + 104: invokespecial #451 // Method java/util/LinkedList."":()V + 107: putfield #242 // Field x:Ljava/util/List; + 110: aload_0 + 111: aload 4 + 113: invokevirtual #445 // Method java/lang/Throwable.getStackTrace:()[Ljava/lang/StackTraceElement; + 116: putfield #243 // Field y:[Ljava/lang/StackTraceElement; + 119: iload 6 + 121: ifeq 225 + 124: invokestatic #440 // Method java/lang/Thread.getAllStackTraces:()Ljava/util/Map; + 127: astore 6 + 129: aload_0 + 130: aload 6 + 132: invokeinterface #476, 1 // InterfaceMethod java/util/Map.size:()I + 137: anewarray #183 // class java/lang/Thread + 140: putfield #241 // Field w:[Ljava/lang/Thread; + 143: iconst_0 + 144: istore 12 + 146: aload 6 + 148: invokeinterface #474, 1 // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set; + 153: invokeinterface #481, 1 // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator; + 158: astore 6 + 160: aload 6 + 162: invokeinterface #470, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z + 167: ifeq 222 + 170: aload 6 + 172: invokeinterface #471, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; + 177: checkcast #195 // class java/util/Map$Entry + 180: astore 17 + 182: aload_0 + 183: getfield #241 // Field w:[Ljava/lang/Thread; + 186: iload 12 + 188: aload 17 + 190: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 195: checkcast #183 // class java/lang/Thread + 198: aastore + 199: aload_0 + 200: getfield #242 // Field x:Ljava/util/List; + 203: aload 17 + 205: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 210: invokeinterface #472, 2 // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z + 215: pop + 216: iinc 12, 1 + 219: goto 160 + 222: goto 233 + 225: aload_0 + 226: iconst_0 + 227: anewarray #183 // class java/lang/Thread + 230: putfield #241 // Field w:[Ljava/lang/Thread; + 233: aload_0 + 234: aload_0 + 235: getfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 238: invokespecial #364 // Method a:(Lcom/crashlytics/android/internal/aq;)Lcom/crashlytics/android/d; + 241: dup + 242: astore 6 + 244: ifnonnull 262 + 247: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 250: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 253: ldc #37 // String Crashlytics + 255: ldc #73 // String No log data to include with this event. + 257: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 262: aload_0 + 263: getfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 266: ldc #86 // String There was a problem closing the Crashlytics log file. + 268: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 271: aload_0 + 272: aconst_null + 273: putfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 276: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 279: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 282: ldc #99 // String com.crashlytics.CollectCustomKeys + 284: iconst_1 + 285: invokestatic #321 // Method com/crashlytics/android/internal/ab.a:(Landroid/content/Context;Ljava/lang/String;Z)Z + 288: ifne 303 + 291: new #197 // class java/util/TreeMap + 294: dup + 295: invokespecial #452 // Method java/util/TreeMap."":()V + 298: astore 12 + 300: goto 337 + 303: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 306: invokevirtual #258 // Method com/crashlytics/android/Crashlytics.a:()Ljava/util/Map; + 309: dup + 310: astore 12 + 312: ifnull 337 + 315: aload 12 + 317: invokeinterface #476, 1 // InterfaceMethod java/util/Map.size:()I + 322: iconst_1 + 323: if_icmple 337 + 326: new #197 // class java/util/TreeMap + 329: dup + 330: aload 12 + 332: invokespecial #453 // Method java/util/TreeMap."":(Ljava/util/Map;)V + 335: astore 12 + 337: aload_2 + 338: bipush 10 + 340: iconst_2 + 341: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 344: aload_2 + 345: aload_0 + 346: aload_3 + 347: aload 4 + 349: aload 5 + 351: lload 7 + 353: aload 12 + 355: fload_1 + 356: iload 9 + 358: iload 10 + 360: iload 11 + 362: lload 13 + 364: lload 15 + 366: aload 6 + 368: astore 22 + 370: lstore 34 + 372: lstore 32 + 374: istore 21 + 376: istore 30 + 378: istore 29 + 380: fstore 28 + 382: astore 27 + 384: lstore 25 + 386: astore 20 + 388: astore 19 + 390: astore 18 + 392: astore 17 + 394: iconst_0 + 395: iconst_1 + 396: lload 25 + 398: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 401: iadd + 402: dup + 403: istore 23 + 405: iconst_2 + 406: aload 20 + 408: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 411: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 414: iadd + 415: istore 23 + 417: aload 17 + 419: aload 18 + 421: aload 19 + 423: aload 27 + 425: invokespecial #372 // Method a:(Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + 428: istore 17 + 430: iload 23 + 432: iconst_3 + 433: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 436: iload 17 + 438: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 441: iadd + 442: iload 17 + 444: iadd + 445: iadd + 446: istore 23 + 448: fload 28 + 450: iload 29 + 452: iload 30 + 454: iload 21 + 456: lload 32 + 458: lload 34 + 460: invokestatic #352 // Method a:(FIZIJJ)I + 463: istore 17 + 465: iload 23 + 467: iconst_5 + 468: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 471: iload 17 + 473: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 476: iadd + 477: iload 17 + 479: iadd + 480: iadd + 481: istore 23 + 483: aload 22 + 485: ifnull 519 + 488: aload 22 + 490: astore 17 + 492: iconst_1 + 493: aload 17 + 495: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 498: istore 17 + 500: iload 23 + 502: bipush 6 + 504: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 507: iload 17 + 509: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 512: iadd + 513: iload 17 + 515: iadd + 516: iadd + 517: istore 23 + 519: iload 23 + 521: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 524: aload_2 + 525: iconst_1 + 526: lload 7 + 528: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 531: aload_2 + 532: iconst_2 + 533: aload 5 + 535: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 538: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 541: aload_0 + 542: aload_2 + 543: aload_3 + 544: aload 4 + 546: aload 12 + 548: astore 25 + 550: astore 20 + 552: astore 19 + 554: astore 18 + 556: astore 17 + 558: aload 18 + 560: iconst_3 + 561: iconst_2 + 562: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 565: aload 18 + 567: aload 17 + 569: aload 19 + 571: aload 20 + 573: aload 25 + 575: invokespecial #372 // Method a:(Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + 578: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 581: aload 17 + 583: aload 18 + 585: aload 19 + 587: aload 20 + 589: invokespecial #358 // Method a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;)V + 592: aload 25 + 594: ifnull 616 + 597: aload 25 + 599: invokeinterface #475, 1 // InterfaceMethod java/util/Map.isEmpty:()Z + 604: ifne 616 + 607: aload 17 + 609: aload 18 + 611: aload 25 + 613: invokespecial #361 // Method a:(Lcom/crashlytics/android/h;Ljava/util/Map;)V + 616: aload 17 + 618: getfield #238 // Field t:Landroid/app/ActivityManager$RunningAppProcessInfo; + 621: ifnull 648 + 624: aload 18 + 626: iconst_3 + 627: aload 17 + 629: getfield #238 // Field t:Landroid/app/ActivityManager$RunningAppProcessInfo; + 632: getfield #209 // Field android/app/ActivityManager$RunningAppProcessInfo.importance:I + 635: bipush 100 + 637: if_icmpeq 644 + 640: iconst_1 + 641: goto 645 + 644: iconst_0 + 645: invokevirtual #304 // Method com/crashlytics/android/h.a:(IZ)V + 648: aload 18 + 650: iconst_4 + 651: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 654: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 657: invokevirtual #246 // Method android/content/Context.getResources:()Landroid/content/res/Resources; + 660: invokevirtual #250 // Method android/content/res/Resources.getConfiguration:()Landroid/content/res/Configuration; + 663: getfield #210 // Field android/content/res/Configuration.orientation:I + 666: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 669: aload_0 + 670: aload_2 + 671: fload_1 + 672: iload 9 + 674: iload 10 + 676: iload 11 + 678: lload 13 + 680: lload 15 + 682: lstore 29 + 684: lstore 27 + 686: istore 26 + 688: istore 25 + 690: istore 20 + 692: fstore 19 + 694: astore 18 + 696: astore 17 + 698: aload 18 + 700: iconst_5 + 701: iconst_2 + 702: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 705: aload 18 + 707: fload 19 + 709: iload 20 + 711: iload 25 + 713: iload 26 + 715: lload 27 + 717: lload 29 + 719: invokestatic #352 // Method a:(FIZIJJ)I + 722: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 725: aload 18 + 727: iconst_1 + 728: fload 19 + 730: invokevirtual #299 // Method com/crashlytics/android/h.a:(IF)V + 733: aload 18 + 735: iconst_2 + 736: iload 20 + 738: invokevirtual #314 // Method com/crashlytics/android/h.c:(II)V + 741: aload 18 + 743: iconst_3 + 744: iload 25 + 746: invokevirtual #304 // Method com/crashlytics/android/h.a:(IZ)V + 749: aload 18 + 751: iconst_4 + 752: iload 26 + 754: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 757: aload 18 + 759: iconst_5 + 760: lload 27 + 762: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 765: aload 18 + 767: bipush 6 + 769: lload 29 + 771: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 774: aload_0 + 775: aload_2 + 776: aload 6 + 778: astore 19 + 780: astore 18 + 782: astore 17 + 784: aload 19 + 786: ifnull 820 + 789: aload 18 + 791: bipush 6 + 793: iconst_2 + 794: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 797: aload 18 + 799: aload 19 + 801: astore 17 + 803: iconst_1 + 804: aload 17 + 806: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 809: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 812: aload 18 + 814: iconst_1 + 815: aload 19 + 817: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 820: return + LineNumberTable: + line 1406: 0 + line 1407: 10 + line 1408: 20 + line 1409: 29 + line 1410: 40 + line 1411: 57 + line 1412: 72 + line 1414: 83 + line 1415: 99 + line 1416: 110 + line 1418: 119 + line 1419: 124 + line 1420: 129 + line 1421: 143 + line 1422: 146 + line 1423: 182 + line 1424: 199 + line 1425: 216 + line 1426: 219 + line 1427: 222 + line 1430: 225 + line 1433: 233 + line 1435: 242 + line 1436: 247 + line 1440: 262 + line 1441: 271 + line 1444: 276 + line 1445: 291 + line 1447: 303 + line 1448: 310 + line 1452: 326 + line 1456: 337 + line 1457: 344 + line 1460: 524 + line 1461: 531 + line 1463: 541 + line 1464: 669 + line 1466: 774 + line 1467: 820 + StackMapTable: number_of_entries = 13 + frame_type = 255 /* full_frame */ + offset_delta = 160 + locals = [ class com/crashlytics/android/v, float, class com/crashlytics/android/h, class java/lang/Thread, class java/lang/Throwable, class java/lang/String, class java/util/Iterator, long, int, int, int, int, long, long ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 61 + locals = [ class com/crashlytics/android/v, float, class com/crashlytics/android/h, class java/lang/Thread, class java/lang/Throwable, class java/lang/String, top, long, int, int, int, top, long, long ] + stack = [] + frame_type = 2 /* same */ + frame_type = 7 /* same */ + frame_type = 255 /* full_frame */ + offset_delta = 28 + locals = [ class com/crashlytics/android/v, float, class com/crashlytics/android/h, class java/lang/Thread, class java/lang/Throwable, class java/lang/String, class com/crashlytics/android/d, long, int, int, int, top, long, long ] + stack = [] + frame_type = 40 /* same */ + frame_type = 255 /* full_frame */ + offset_delta = 33 + locals = [ class com/crashlytics/android/v, float, class com/crashlytics/android/h, class java/lang/Thread, class java/lang/Throwable, class java/lang/String, class com/crashlytics/android/d, long, int, int, int, class java/util/Map, long, long ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 181 + locals = [ class com/crashlytics/android/v, float, class com/crashlytics/android/h, class java/lang/Thread, class java/lang/Throwable, class java/lang/String, class com/crashlytics/android/d, long, int, int, int, class java/util/Map, long, long, top, top, top, top, top, top, int ] + stack = [ class com/crashlytics/android/h ] + frame_type = 255 /* full_frame */ + offset_delta = 96 + locals = [ class com/crashlytics/android/v, float, class com/crashlytics/android/h, top, top, top, class com/crashlytics/android/d, top, top, int, int, int, top, long, long, class com/crashlytics/android/v, class com/crashlytics/android/h ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 27 + locals = [ class com/crashlytics/android/v, float, class com/crashlytics/android/h, top, top, top, class com/crashlytics/android/d, top, top, int, int, int, top, long, long, top, class com/crashlytics/android/h ] + stack = [ class com/crashlytics/android/h, int ] + frame_type = 255 /* full_frame */ + offset_delta = 0 + locals = [ class com/crashlytics/android/v, float, class com/crashlytics/android/h, top, top, top, class com/crashlytics/android/d, top, top, int, int, int, top, long, long, top, class com/crashlytics/android/h ] + stack = [ class com/crashlytics/android/h, int, int ] + frame_type = 2 /* same */ + frame_type = 255 /* full_frame */ + offset_delta = 171 + locals = [] + stack = [] + + Exceptions: + throws java.lang.Exception + + private void a(com.crashlytics.android.h, java.lang.Thread, java.lang.Throwable) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=6, locals=6, args_size=4 + 0: aload_1 + 1: iconst_1 + 2: iconst_2 + 3: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 6: aload_1 + 7: aload_0 + 8: aload_2 + 9: aload_3 + 10: invokespecial #380 // Method b:(Ljava/lang/Thread;Ljava/lang/Throwable;)I + 13: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 16: aload_0 + 17: aload_1 + 18: aload_2 + 19: aload_0 + 20: getfield #243 // Field y:[Ljava/lang/StackTraceElement; + 23: iconst_4 + 24: iconst_1 + 25: invokespecial #359 // Method a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)V + 28: aload_0 + 29: getfield #241 // Field w:[Ljava/lang/Thread; + 32: arraylength + 33: istore_2 + 34: iconst_0 + 35: istore 4 + 37: iload 4 + 39: iload_2 + 40: if_icmpge 81 + 43: aload_0 + 44: getfield #241 // Field w:[Ljava/lang/Thread; + 47: iload 4 + 49: aaload + 50: astore 5 + 52: aload_0 + 53: aload_1 + 54: aload 5 + 56: aload_0 + 57: getfield #242 // Field x:Ljava/util/List; + 60: iload 4 + 62: invokeinterface #473, 2 // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object; + 67: checkcast #111 // class "[Ljava/lang/StackTraceElement;" + 70: iconst_0 + 71: iconst_0 + 72: invokespecial #359 // Method a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)V + 75: iinc 4, 1 + 78: goto 37 + 81: aload_0 + 82: aload_1 + 83: aload_3 + 84: iconst_1 + 85: iconst_2 + 86: invokespecial #360 // Method a:(Lcom/crashlytics/android/h;Ljava/lang/Throwable;II)V + 89: aload_1 + 90: iconst_3 + 91: iconst_2 + 92: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 95: aload_1 + 96: invokestatic #391 // Method s:()I + 99: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 102: aload_1 + 103: iconst_1 + 104: getstatic #224 // Field f:Lcom/crashlytics/android/d; + 107: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 110: aload_1 + 111: iconst_2 + 112: getstatic #224 // Field f:Lcom/crashlytics/android/d; + 115: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 118: aload_1 + 119: iconst_3 + 120: lconst_0 + 121: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 124: aload_1 + 125: iconst_4 + 126: iconst_2 + 127: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 130: aload_1 + 131: aload_0 + 132: invokespecial #390 // Method r:()I + 135: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 138: aload_1 + 139: iconst_1 + 140: lconst_0 + 141: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 144: aload_1 + 145: iconst_2 + 146: lconst_0 + 147: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 150: aload_1 + 151: iconst_3 + 152: aload_0 + 153: getfield #235 // Field q:Lcom/crashlytics/android/d; + 156: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 159: aload_0 + 160: getfield #236 // Field r:Lcom/crashlytics/android/d; + 163: ifnull 175 + 166: aload_1 + 167: iconst_4 + 168: aload_0 + 169: getfield #236 // Field r:Lcom/crashlytics/android/d; + 172: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 175: return + LineNumberTable: + line 1491: 0 + line 1492: 6 + line 1494: 16 + line 1498: 28 + line 1499: 34 + line 1500: 43 + line 1501: 52 + line 1499: 75 + line 1504: 81 + line 1506: 89 + line 1507: 95 + line 1508: 102 + line 1509: 110 + line 1510: 118 + line 1512: 124 + line 1513: 130 + line 1514: 138 + line 1515: 144 + line 1516: 150 + line 1517: 159 + line 1518: 166 + line 1520: 175 + StackMapTable: number_of_entries = 3 + frame_type = 255 /* full_frame */ + offset_delta = 37 + locals = [ class com/crashlytics/android/v, class com/crashlytics/android/h, int, class java/lang/Throwable, int ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 43 + locals = [ class com/crashlytics/android/v, class com/crashlytics/android/h, top, class java/lang/Throwable ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 93 + locals = [] + stack = [] + + Exceptions: + throws java.lang.Exception + + private void a(com.crashlytics.android.h, java.util.Map) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=3, locals=4, args_size=3 + 0: aload_2 + 1: invokeinterface #474, 1 // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set; + 6: invokeinterface #481, 1 // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator; + 11: astore_2 + 12: aload_2 + 13: invokeinterface #470, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z + 18: ifeq 110 + 21: aload_2 + 22: invokeinterface #471, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; + 27: checkcast #195 // class java/util/Map$Entry + 30: astore_3 + 31: aload_1 + 32: iconst_2 + 33: iconst_2 + 34: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 37: aload_1 + 38: aload_3 + 39: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 44: checkcast #181 // class java/lang/String + 47: aload_3 + 48: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 53: checkcast #181 // class java/lang/String + 56: invokestatic #371 // Method a:(Ljava/lang/String;Ljava/lang/String;)I + 59: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 62: aload_1 + 63: iconst_1 + 64: aload_3 + 65: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 70: checkcast #181 // class java/lang/String + 73: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 76: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 79: aload_3 + 80: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 85: checkcast #181 // class java/lang/String + 88: astore_3 + 89: aload_1 + 90: iconst_2 + 91: aload_3 + 92: ifnonnull 100 + 95: ldc #2 // String + 97: goto 101 + 100: aload_3 + 101: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 104: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 107: goto 12 + 110: return + LineNumberTable: + line 1525: 0 + line 1526: 31 + line 1527: 37 + line 1529: 62 + line 1530: 79 + line 1531: 89 + line 1532: 107 + line 1533: 110 + StackMapTable: number_of_entries = 4 + frame_type = 255 /* full_frame */ + offset_delta = 12 + locals = [ top, class com/crashlytics/android/h, class java/util/Iterator ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 87 + locals = [ top, class com/crashlytics/android/h, class java/util/Iterator, class java/lang/String ] + stack = [ class com/crashlytics/android/h, int ] + frame_type = 255 /* full_frame */ + offset_delta = 0 + locals = [ top, class com/crashlytics/android/h, class java/util/Iterator ] + stack = [ class com/crashlytics/android/h, int, class java/lang/String ] + frame_type = 248 /* chop */ + offset_delta = 8 + + Exceptions: + throws java.lang.Exception + Signature: #799 // (Lcom/crashlytics/android/h;Ljava/util/Map;)V + + private int r(); + flags: ACC_PRIVATE + Code: + stack=4, locals=2, args_size=1 + 0: iconst_0 + 1: iconst_1 + 2: lconst_0 + 3: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 6: iadd + 7: dup + 8: istore_1 + 9: iconst_2 + 10: lconst_0 + 11: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 14: iadd + 15: dup + 16: istore_1 + 17: iconst_3 + 18: aload_0 + 19: getfield #235 // Field q:Lcom/crashlytics/android/d; + 22: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 25: iadd + 26: istore_1 + 27: aload_0 + 28: getfield #236 // Field r:Lcom/crashlytics/android/d; + 31: ifnull 45 + 34: iload_1 + 35: iconst_4 + 36: aload_0 + 37: getfield #236 // Field r:Lcom/crashlytics/android/d; + 40: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 43: iadd + 44: istore_1 + 45: iload_1 + 46: ireturn + LineNumberTable: + line 1536: 0 + line 1539: 8 + line 1540: 16 + line 1541: 27 + line 1542: 34 + line 1545: 45 + StackMapTable: number_of_entries = 1 + frame_type = 255 /* full_frame */ + offset_delta = 45 + locals = [ top, int ] + stack = [] + + + private void a(com.crashlytics.android.h, java.lang.Throwable, int, int) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=5, locals=8, args_size=5 + 0: aload_1 + 1: iload 4 + 3: iconst_2 + 4: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 7: aload_1 + 8: aload_0 + 9: aload_2 + 10: iconst_1 + 11: invokespecial #374 // Method a:(Ljava/lang/Throwable;I)I + 14: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 17: aload_1 + 18: iconst_1 + 19: aload_2 + 20: invokevirtual #418 // Method java/lang/Object.getClass:()Ljava/lang/Class; + 23: invokevirtual #412 // Method java/lang/Class.getName:()Ljava/lang/String; + 26: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 29: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 32: aload_2 + 33: invokevirtual #444 // Method java/lang/Throwable.getLocalizedMessage:()Ljava/lang/String; + 36: dup + 37: astore 4 + 39: ifnull 52 + 42: aload_1 + 43: iconst_3 + 44: aload 4 + 46: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 49: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 52: aload_2 + 53: invokevirtual #445 // Method java/lang/Throwable.getStackTrace:()[Ljava/lang/StackTraceElement; + 56: dup + 57: astore 4 + 59: arraylength + 60: istore 5 + 62: iconst_0 + 63: istore 6 + 65: iload 6 + 67: iload 5 + 69: if_icmpge 94 + 72: aload 4 + 74: iload 6 + 76: aaload + 77: astore 7 + 79: aload_0 + 80: aload_1 + 81: iconst_4 + 82: aload 7 + 84: iconst_1 + 85: invokespecial #355 // Method a:(Lcom/crashlytics/android/h;ILjava/lang/StackTraceElement;Z)V + 88: iinc 6, 1 + 91: goto 65 + 94: aload_2 + 95: invokevirtual #443 // Method java/lang/Throwable.getCause:()Ljava/lang/Throwable; + 98: dup + 99: astore 4 + 101: ifnull 152 + 104: iload_3 + 105: bipush 8 + 107: if_icmpge 123 + 110: aload_0 + 111: aload_1 + 112: aload 4 + 114: iload_3 + 115: iconst_1 + 116: iadd + 117: bipush 6 + 119: invokespecial #360 // Method a:(Lcom/crashlytics/android/h;Ljava/lang/Throwable;II)V + 122: return + 123: iconst_0 + 124: istore 5 + 126: aload 4 + 128: ifnull 144 + 131: aload 4 + 133: invokevirtual #443 // Method java/lang/Throwable.getCause:()Ljava/lang/Throwable; + 136: astore 4 + 138: iinc 5, 1 + 141: goto 126 + 144: aload_1 + 145: bipush 7 + 147: iload 5 + 149: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 152: return + LineNumberTable: + line 1550: 0 + line 1551: 7 + line 1553: 17 + line 1554: 32 + line 1555: 37 + line 1556: 42 + line 1559: 52 + line 1560: 79 + line 1559: 88 + line 1563: 94 + line 1564: 99 + line 1565: 104 + line 1566: 110 + line 1570: 123 + line 1571: 126 + line 1572: 131 + line 1573: 138 + line 1575: 144 + line 1578: 152 + StackMapTable: number_of_entries = 7 + frame_type = 250 /* chop */ + offset_delta = 52 + frame_type = 254 /* append */ + offset_delta = 12 + locals = [ class "[Ljava/lang/StackTraceElement;", int, int ] + frame_type = 248 /* chop */ + offset_delta = 28 + frame_type = 255 /* full_frame */ + offset_delta = 28 + locals = [ top, class com/crashlytics/android/h, top, top, class java/lang/Throwable ] + stack = [] + frame_type = 252 /* append */ + offset_delta = 2 + locals = [ int ] + frame_type = 255 /* full_frame */ + offset_delta = 17 + locals = [ top, class com/crashlytics/android/h, top, top, top, int ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 7 + locals = [] + stack = [] + + Exceptions: + throws java.lang.Exception + + private int a(java.lang.Thread, java.lang.StackTraceElement[], int, boolean); + flags: ACC_PRIVATE + Code: + stack=3, locals=7, args_size=5 + 0: iconst_1 + 1: aload_1 + 2: invokevirtual #441 // Method java/lang/Thread.getName:()Ljava/lang/String; + 5: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 8: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 11: dup + 12: istore_1 + 13: iconst_2 + 14: iload_3 + 15: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 18: iadd + 19: istore_1 + 20: aload_2 + 21: dup + 22: astore_2 + 23: arraylength + 24: istore_3 + 25: iconst_0 + 26: istore 5 + 28: iload 5 + 30: iload_3 + 31: if_icmpge 70 + 34: aload_2 + 35: iload 5 + 37: aaload + 38: dup + 39: astore 6 + 41: iload 4 + 43: invokestatic #368 // Method a:(Ljava/lang/StackTraceElement;Z)I + 46: istore 6 + 48: iload_1 + 49: iconst_3 + 50: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 53: iload 6 + 55: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 58: iadd + 59: iload 6 + 61: iadd + 62: iadd + 63: istore_1 + 64: iinc 5, 1 + 67: goto 28 + 70: iload_1 + 71: ireturn + LineNumberTable: + line 1582: 0 + line 1583: 12 + line 1585: 20 + line 1586: 39 + line 1587: 48 + line 1585: 64 + line 1591: 70 + StackMapTable: number_of_entries = 2 + frame_type = 255 /* full_frame */ + offset_delta = 28 + locals = [ top, int, class "[Ljava/lang/StackTraceElement;", int, int, int ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 41 + locals = [ top, int ] + stack = [] + + + private void a(com.crashlytics.android.h, java.lang.Thread, java.lang.StackTraceElement[], int, boolean) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=5, locals=7, args_size=6 + 0: aload_1 + 1: iconst_1 + 2: iconst_2 + 3: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 6: aload_0 + 7: aload_2 + 8: aload_3 + 9: iload 4 + 11: iload 5 + 13: invokespecial #373 // Method a:(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)I + 16: istore 6 + 18: aload_1 + 19: iload 6 + 21: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 24: aload_1 + 25: iconst_1 + 26: aload_2 + 27: invokevirtual #441 // Method java/lang/Thread.getName:()Ljava/lang/String; + 30: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 33: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 36: aload_1 + 37: iconst_2 + 38: iload 4 + 40: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 43: aload_3 + 44: dup + 45: astore_2 + 46: arraylength + 47: istore_3 + 48: iconst_0 + 49: istore 4 + 51: iload 4 + 53: iload_3 + 54: if_icmpge 79 + 57: aload_2 + 58: iload 4 + 60: aaload + 61: astore 6 + 63: aload_0 + 64: aload_1 + 65: iconst_3 + 66: aload 6 + 68: iload 5 + 70: invokespecial #355 // Method a:(Lcom/crashlytics/android/h;ILjava/lang/StackTraceElement;Z)V + 73: iinc 4, 1 + 76: goto 51 + 79: return + LineNumberTable: + line 1596: 0 + line 1597: 6 + line 1598: 18 + line 1599: 24 + line 1600: 36 + line 1602: 43 + line 1603: 63 + line 1602: 73 + line 1605: 79 + StackMapTable: number_of_entries = 2 + frame_type = 255 /* full_frame */ + offset_delta = 51 + locals = [ class com/crashlytics/android/v, class com/crashlytics/android/h, class "[Ljava/lang/StackTraceElement;", int, int, int ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 27 + locals = [] + stack = [] + + Exceptions: + throws java.lang.Exception + + private static int a(java.lang.StackTraceElement, boolean); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=4, locals=3, args_size=2 + 0: aload_0 + 1: invokevirtual #425 // Method java/lang/StackTraceElement.isNativeMethod:()Z + 4: ifeq 26 + 7: iconst_0 + 8: iconst_1 + 9: aload_0 + 10: invokevirtual #423 // Method java/lang/StackTraceElement.getLineNumber:()I + 13: iconst_0 + 14: invokestatic #415 // Method java/lang/Math.max:(II)I + 17: i2l + 18: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 21: iadd + 22: istore_2 + 23: goto 34 + 26: iconst_0 + 27: iconst_1 + 28: lconst_0 + 29: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 32: iadd + 33: istore_2 + 34: iload_2 + 35: iconst_2 + 36: new #182 // class java/lang/StringBuilder + 39: dup + 40: invokespecial #434 // Method java/lang/StringBuilder."":()V + 43: aload_0 + 44: invokevirtual #421 // Method java/lang/StackTraceElement.getClassName:()Ljava/lang/String; + 47: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 50: ldc #13 // String . + 52: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 55: aload_0 + 56: invokevirtual #424 // Method java/lang/StackTraceElement.getMethodName:()Ljava/lang/String; + 59: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 62: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 65: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 68: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 71: iadd + 72: istore_2 + 73: aload_0 + 74: invokevirtual #422 // Method java/lang/StackTraceElement.getFileName:()Ljava/lang/String; + 77: ifnull 94 + 80: iload_2 + 81: iconst_3 + 82: aload_0 + 83: invokevirtual #422 // Method java/lang/StackTraceElement.getFileName:()Ljava/lang/String; + 86: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 89: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 92: iadd + 93: istore_2 + 94: aload_0 + 95: invokevirtual #425 // Method java/lang/StackTraceElement.isNativeMethod:()Z + 98: ifne 120 + 101: aload_0 + 102: invokevirtual #423 // Method java/lang/StackTraceElement.getLineNumber:()I + 105: ifle 120 + 108: iload_2 + 109: iconst_4 + 110: aload_0 + 111: invokevirtual #423 // Method java/lang/StackTraceElement.getLineNumber:()I + 114: i2l + 115: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 118: iadd + 119: istore_2 + 120: iload_2 + 121: iconst_5 + 122: iload_1 + 123: ifeq 130 + 126: iconst_2 + 127: goto 131 + 130: iconst_0 + 131: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 134: iadd + 135: dup + 136: istore_2 + 137: ireturn + LineNumberTable: + line 1608: 0 + line 1612: 7 + line 1614: 26 + line 1617: 34 + line 1621: 73 + line 1622: 80 + line 1625: 94 + line 1626: 101 + line 1628: 108 + line 1631: 120 + line 1633: 136 + StackMapTable: number_of_entries = 6 + frame_type = 26 /* same */ + frame_type = 252 /* append */ + offset_delta = 7 + locals = [ int ] + frame_type = 59 /* same */ + frame_type = 255 /* full_frame */ + offset_delta = 25 + locals = [ top, int, int ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 9 + locals = [] + stack = [ int, int ] + frame_type = 255 /* full_frame */ + offset_delta = 0 + locals = [] + stack = [ int, int, int ] + + + private void a(com.crashlytics.android.h, int, java.lang.StackTraceElement, boolean) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=4, locals=5, args_size=5 + 0: aload_1 + 1: iload_2 + 2: iconst_2 + 3: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 6: aload_1 + 7: aload_3 + 8: iload 4 + 10: invokestatic #368 // Method a:(Ljava/lang/StackTraceElement;Z)I + 13: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 16: aload_3 + 17: invokevirtual #425 // Method java/lang/StackTraceElement.isNativeMethod:()Z + 20: ifeq 40 + 23: aload_1 + 24: iconst_1 + 25: aload_3 + 26: invokevirtual #423 // Method java/lang/StackTraceElement.getLineNumber:()I + 29: iconst_0 + 30: invokestatic #415 // Method java/lang/Math.max:(II)I + 33: i2l + 34: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 37: goto 46 + 40: aload_1 + 41: iconst_1 + 42: lconst_0 + 43: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 46: aload_1 + 47: iconst_2 + 48: new #182 // class java/lang/StringBuilder + 51: dup + 52: invokespecial #434 // Method java/lang/StringBuilder."":()V + 55: aload_3 + 56: invokevirtual #421 // Method java/lang/StackTraceElement.getClassName:()Ljava/lang/String; + 59: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 62: ldc #13 // String . + 64: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 67: aload_3 + 68: invokevirtual #424 // Method java/lang/StackTraceElement.getMethodName:()Ljava/lang/String; + 71: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 74: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 77: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 80: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 83: aload_3 + 84: invokevirtual #422 // Method java/lang/StackTraceElement.getFileName:()Ljava/lang/String; + 87: ifnull 102 + 90: aload_1 + 91: iconst_3 + 92: aload_3 + 93: invokevirtual #422 // Method java/lang/StackTraceElement.getFileName:()Ljava/lang/String; + 96: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 99: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 102: aload_3 + 103: invokevirtual #425 // Method java/lang/StackTraceElement.isNativeMethod:()Z + 106: ifne 126 + 109: aload_3 + 110: invokevirtual #423 // Method java/lang/StackTraceElement.getLineNumber:()I + 113: ifle 126 + 116: aload_1 + 117: iconst_4 + 118: aload_3 + 119: invokevirtual #423 // Method java/lang/StackTraceElement.getLineNumber:()I + 122: i2l + 123: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 126: aload_1 + 127: iconst_5 + 128: iload 4 + 130: ifeq 137 + 133: iconst_4 + 134: goto 138 + 137: iconst_0 + 138: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 141: return + LineNumberTable: + line 1638: 0 + line 1639: 6 + line 1641: 16 + line 1644: 23 + line 1646: 40 + line 1649: 46 + line 1651: 83 + line 1652: 90 + line 1655: 102 + line 1658: 109 + line 1659: 116 + line 1666: 126 + line 1667: 141 + StackMapTable: number_of_entries = 6 + frame_type = 255 /* full_frame */ + offset_delta = 40 + locals = [ top, class com/crashlytics/android/h, top, class java/lang/StackTraceElement, int ] + stack = [] + frame_type = 5 /* same */ + frame_type = 55 /* same */ + frame_type = 255 /* full_frame */ + offset_delta = 23 + locals = [ top, class com/crashlytics/android/h, top, top, int ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 10 + locals = [] + stack = [ class com/crashlytics/android/h, int ] + frame_type = 255 /* full_frame */ + offset_delta = 0 + locals = [] + stack = [ class com/crashlytics/android/h, int, int ] + + Exceptions: + throws java.lang.Exception + + private int a(java.lang.Thread, java.lang.Throwable, java.util.Map); + flags: ACC_PRIVATE + Code: + stack=4, locals=4, args_size=4 + 0: aload_0 + 1: aload_1 + 2: aload_2 + 3: invokespecial #380 // Method b:(Ljava/lang/Thread;Ljava/lang/Throwable;)I + 6: istore_1 + 7: iconst_0 + 8: iconst_1 + 9: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 12: iload_1 + 13: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 16: iadd + 17: iload_1 + 18: iadd + 19: iadd + 20: istore_1 + 21: aload_3 + 22: ifnull 95 + 25: aload_3 + 26: invokeinterface #474, 1 // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set; + 31: invokeinterface #481, 1 // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator; + 36: astore_2 + 37: aload_2 + 38: invokeinterface #470, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z + 43: ifeq 95 + 46: aload_2 + 47: invokeinterface #471, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; + 52: checkcast #195 // class java/util/Map$Entry + 55: dup + 56: astore_3 + 57: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 62: checkcast #181 // class java/lang/String + 65: aload_3 + 66: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 71: checkcast #181 // class java/lang/String + 74: invokestatic #371 // Method a:(Ljava/lang/String;Ljava/lang/String;)I + 77: istore_3 + 78: iload_1 + 79: iconst_2 + 80: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 83: iload_3 + 84: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 87: iadd + 88: iload_3 + 89: iadd + 90: iadd + 91: istore_1 + 92: goto 37 + 95: aload_0 + 96: getfield #238 // Field t:Landroid/app/ActivityManager$RunningAppProcessInfo; + 99: ifnull 126 + 102: iload_1 + 103: iconst_3 + 104: aload_0 + 105: getfield #238 // Field t:Landroid/app/ActivityManager$RunningAppProcessInfo; + 108: getfield #209 // Field android/app/ActivityManager$RunningAppProcessInfo.importance:I + 111: bipush 100 + 113: if_icmpeq 120 + 116: iconst_1 + 117: goto 121 + 120: iconst_0 + 121: invokestatic #312 // Method com/crashlytics/android/h.b:(IZ)I + 124: iadd + 125: istore_1 + 126: iload_1 + 127: iconst_4 + 128: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 131: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 134: invokevirtual #246 // Method android/content/Context.getResources:()Landroid/content/res/Resources; + 137: invokevirtual #250 // Method android/content/res/Resources.getConfiguration:()Landroid/content/res/Configuration; + 140: getfield #210 // Field android/content/res/Configuration.orientation:I + 143: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 146: iadd + 147: dup + 148: istore_1 + 149: ireturn + LineNumberTable: + line 1714: 0 + line 1717: 7 + line 1720: 21 + line 1721: 25 + line 1722: 56 + line 1723: 78 + line 1725: 92 + line 1729: 95 + line 1730: 102 + line 1733: 126 + line 1736: 148 + StackMapTable: number_of_entries = 5 + frame_type = 255 /* full_frame */ + offset_delta = 37 + locals = [ class com/crashlytics/android/v, int, class java/util/Iterator ] + stack = [] + frame_type = 250 /* chop */ + offset_delta = 57 + frame_type = 255 /* full_frame */ + offset_delta = 24 + locals = [] + stack = [ int, int ] + frame_type = 255 /* full_frame */ + offset_delta = 0 + locals = [] + stack = [ int, int, int ] + frame_type = 253 /* append */ + offset_delta = 4 + locals = [ top, int ] + + Signature: #857 // (Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + + private int b(java.lang.Thread, java.lang.Throwable); + flags: ACC_PRIVATE + Code: + stack=5, locals=6, args_size=3 + 0: aload_0 + 1: aload_1 + 2: aload_0 + 3: getfield #243 // Field y:[Ljava/lang/StackTraceElement; + 6: iconst_4 + 7: iconst_1 + 8: invokespecial #373 // Method a:(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)I + 11: istore_3 + 12: iconst_0 + 13: iconst_1 + 14: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 17: iload_3 + 18: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 21: iadd + 22: iload_3 + 23: iadd + 24: iadd + 25: istore_1 + 26: aload_0 + 27: getfield #241 // Field w:[Ljava/lang/Thread; + 30: arraylength + 31: istore 4 + 33: iconst_0 + 34: istore 5 + 36: iload 5 + 38: iload 4 + 40: if_icmpge 93 + 43: aload_0 + 44: getfield #241 // Field w:[Ljava/lang/Thread; + 47: iload 5 + 49: aaload + 50: astore_3 + 51: aload_0 + 52: aload_3 + 53: aload_0 + 54: getfield #242 // Field x:Ljava/util/List; + 57: iload 5 + 59: invokeinterface #473, 2 // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object; + 64: checkcast #111 // class "[Ljava/lang/StackTraceElement;" + 67: iconst_0 + 68: iconst_0 + 69: invokespecial #373 // Method a:(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)I + 72: istore_3 + 73: iload_1 + 74: iconst_1 + 75: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 78: iload_3 + 79: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 82: iadd + 83: iload_3 + 84: iadd + 85: iadd + 86: istore_1 + 87: iinc 5, 1 + 90: goto 36 + 93: aload_0 + 94: aload_2 + 95: iconst_1 + 96: invokespecial #374 // Method a:(Ljava/lang/Throwable;I)I + 99: istore 5 + 101: iload_1 + 102: iconst_2 + 103: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 106: iload 5 + 108: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 111: iadd + 112: iload 5 + 114: iadd + 115: iadd + 116: istore_1 + 117: invokestatic #391 // Method s:()I + 120: istore_3 + 121: iload_1 + 122: iconst_3 + 123: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 126: iload_3 + 127: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 130: iadd + 131: iload_3 + 132: iadd + 133: iadd + 134: istore_1 + 135: aload_0 + 136: invokespecial #390 // Method r:()I + 139: istore_2 + 140: iload_1 + 141: iconst_3 + 142: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 145: iload_2 + 146: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 149: iadd + 150: iload_2 + 151: iadd + 152: iadd + 153: dup + 154: istore_1 + 155: ireturn + LineNumberTable: + line 1740: 0 + line 1743: 12 + line 1745: 26 + line 1746: 33 + line 1747: 43 + line 1748: 51 + line 1749: 73 + line 1746: 87 + line 1753: 93 + line 1754: 101 + line 1757: 117 + line 1758: 121 + line 1760: 135 + line 1761: 140 + line 1764: 154 + StackMapTable: number_of_entries = 2 + frame_type = 255 /* full_frame */ + offset_delta = 36 + locals = [ class com/crashlytics/android/v, int, class java/lang/Throwable, top, int, int ] + stack = [] + frame_type = 248 /* chop */ + offset_delta = 56 + + + private static int a(java.lang.String, java.lang.String); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=3, locals=2, args_size=2 + 0: iconst_1 + 1: aload_0 + 2: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 5: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 8: dup + 9: istore_0 + 10: iconst_2 + 11: aload_1 + 12: ifnonnull 20 + 15: ldc #2 // String + 17: goto 21 + 20: aload_1 + 21: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 24: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 27: iadd + 28: dup + 29: istore_0 + 30: ireturn + LineNumberTable: + line 1768: 0 + line 1769: 9 + line 1770: 29 + StackMapTable: number_of_entries = 2 + frame_type = 255 /* full_frame */ + offset_delta = 20 + locals = [ top, class java/lang/String ] + stack = [ int, int ] + frame_type = 255 /* full_frame */ + offset_delta = 0 + locals = [] + stack = [ int, int, class java/lang/String ] + + + private static int a(float, int, boolean, int, long, long); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=4, locals=8, args_size=6 + 0: iconst_0 + 1: iconst_1 + 2: fload_0 + 3: invokestatic #308 // Method com/crashlytics/android/h.b:(IF)I + 6: iadd + 7: dup + 8: istore_0 + 9: iconst_2 + 10: iload_1 + 11: invokestatic #317 // Method com/crashlytics/android/h.f:(II)I + 14: iadd + 15: dup + 16: istore_0 + 17: iconst_3 + 18: iload_2 + 19: invokestatic #312 // Method com/crashlytics/android/h.b:(IZ)I + 22: iadd + 23: dup + 24: istore_0 + 25: iconst_4 + 26: iload_3 + 27: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 30: iadd + 31: dup + 32: istore_0 + 33: iconst_5 + 34: lload 4 + 36: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 39: iadd + 40: dup + 41: istore_0 + 42: bipush 6 + 44: lload 6 + 46: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 49: iadd + 50: dup + 51: istore_0 + 52: ireturn + LineNumberTable: + line 1775: 0 + line 1778: 8 + line 1779: 16 + line 1780: 24 + line 1781: 32 + line 1782: 41 + line 1784: 51 + + private int a(java.lang.Throwable, int); + flags: ACC_PRIVATE + Code: + stack=4, locals=8, args_size=3 + 0: iconst_0 + 1: iconst_1 + 2: aload_1 + 3: invokevirtual #418 // Method java/lang/Object.getClass:()Ljava/lang/Class; + 6: invokevirtual #412 // Method java/lang/Class.getName:()Ljava/lang/String; + 9: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 12: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 15: iadd + 16: istore_3 + 17: aload_1 + 18: invokevirtual #444 // Method java/lang/Throwable.getLocalizedMessage:()Ljava/lang/String; + 21: dup + 22: astore 4 + 24: ifnull 39 + 27: iload_3 + 28: iconst_3 + 29: aload 4 + 31: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 34: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 37: iadd + 38: istore_3 + 39: aload_1 + 40: invokevirtual #445 // Method java/lang/Throwable.getStackTrace:()[Ljava/lang/StackTraceElement; + 43: dup + 44: astore 4 + 46: arraylength + 47: istore 5 + 49: iconst_0 + 50: istore 6 + 52: iload 6 + 54: iload 5 + 56: if_icmpge 95 + 59: aload 4 + 61: iload 6 + 63: aaload + 64: dup + 65: astore 7 + 67: iconst_1 + 68: invokestatic #368 // Method a:(Ljava/lang/StackTraceElement;Z)I + 71: istore 7 + 73: iload_3 + 74: iconst_4 + 75: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 78: iload 7 + 80: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 83: iadd + 84: iload 7 + 86: iadd + 87: iadd + 88: istore_3 + 89: iinc 6, 1 + 92: goto 52 + 95: aload_1 + 96: invokevirtual #443 // Method java/lang/Throwable.getCause:()Ljava/lang/Throwable; + 99: dup + 100: astore 4 + 102: ifnull 173 + 105: iload_2 + 106: bipush 8 + 108: if_icmpge 142 + 111: aload_0 + 112: aload 4 + 114: iload_2 + 115: iconst_1 + 116: iadd + 117: invokespecial #374 // Method a:(Ljava/lang/Throwable;I)I + 120: istore 5 + 122: iload_3 + 123: bipush 6 + 125: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 128: iload 5 + 130: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 133: iadd + 134: iload 5 + 136: iadd + 137: iadd + 138: istore_3 + 139: goto 173 + 142: iconst_0 + 143: istore 5 + 145: aload 4 + 147: ifnull 163 + 150: aload 4 + 152: invokevirtual #443 // Method java/lang/Throwable.getCause:()Ljava/lang/Throwable; + 155: astore 4 + 157: iinc 5, 1 + 160: goto 145 + 163: iload_3 + 164: bipush 7 + 166: iload 5 + 168: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 171: iadd + 172: istore_3 + 173: iload_3 + 174: ireturn + LineNumberTable: + line 1793: 0 + line 1798: 17 + line 1799: 22 + line 1800: 27 + line 1803: 39 + line 1804: 65 + line 1805: 73 + line 1803: 89 + line 1811: 95 + line 1812: 100 + line 1813: 105 + line 1814: 111 + line 1815: 122 + line 1817: 139 + line 1820: 142 + line 1821: 145 + line 1822: 150 + line 1823: 157 + line 1826: 163 + line 1830: 173 + StackMapTable: number_of_entries = 7 + frame_type = 252 /* append */ + offset_delta = 39 + locals = [ int ] + frame_type = 254 /* append */ + offset_delta = 12 + locals = [ class "[Ljava/lang/StackTraceElement;", int, int ] + frame_type = 248 /* chop */ + offset_delta = 42 + frame_type = 255 /* full_frame */ + offset_delta = 46 + locals = [ top, top, top, int, class java/lang/Throwable ] + stack = [] + frame_type = 252 /* append */ + offset_delta = 2 + locals = [ int ] + frame_type = 255 /* full_frame */ + offset_delta = 17 + locals = [ top, top, top, int, top, int ] + stack = [] + frame_type = 249 /* chop */ + offset_delta = 9 + + + private static int s(); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=4, locals=1, args_size=0 + 0: iconst_0 + 1: iconst_1 + 2: getstatic #224 // Field f:Lcom/crashlytics/android/d; + 5: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 8: iadd + 9: dup + 10: istore_0 + 11: iconst_2 + 12: getstatic #224 // Field f:Lcom/crashlytics/android/d; + 15: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 18: iadd + 19: dup + 20: istore_0 + 21: iconst_3 + 22: lconst_0 + 23: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 26: iadd + 27: dup + 28: istore_0 + 29: ireturn + LineNumberTable: + line 1834: 0 + line 1837: 10 + line 1838: 20 + line 1840: 28 + + final void h(); + flags: ACC_FINAL + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #128 // class com/crashlytics/android/E + 4: dup + 5: aload_0 + 6: invokespecial #276 // Method com/crashlytics/android/E."":(Lcom/crashlytics/android/v;)V + 9: invokespecial #367 // Method a:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + 12: pop + 13: return + LineNumberTable: + line 1861: 0 + line 1867: 13 + + final void a(java.io.File[]); + flags: ACC_FINAL + Code: + stack=5, locals=8, args_size=2 + 0: new #163 // class java/io/File + 3: dup + 4: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 7: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 10: ldc #106 // String invalidClsFiles + 12: invokespecial #396 // Method java/io/File."":(Ljava/io/File;Ljava/lang/String;)V + 15: dup + 16: astore_2 + 17: invokevirtual #399 // Method java/io/File.exists:()Z + 20: ifeq 71 + 23: aload_2 + 24: invokevirtual #402 // Method java/io/File.isDirectory:()Z + 27: ifeq 66 + 30: aload_2 + 31: invokevirtual #404 // Method java/io/File.listFiles:()[Ljava/io/File; + 34: dup + 35: astore_3 + 36: arraylength + 37: istore 4 + 39: iconst_0 + 40: istore 5 + 42: iload 5 + 44: iload 4 + 46: if_icmpge 66 + 49: aload_3 + 50: iload 5 + 52: aaload + 53: dup + 54: astore 6 + 56: invokevirtual #398 // Method java/io/File.delete:()Z + 59: pop + 60: iinc 5, 1 + 63: goto 42 + 66: aload_2 + 67: invokevirtual #398 // Method java/io/File.delete:()Z + 70: pop + 71: aload_1 + 72: dup + 73: astore_1 + 74: arraylength + 75: istore_2 + 76: iconst_0 + 77: istore_3 + 78: iload_3 + 79: iload_2 + 80: if_icmpge 244 + 83: aload_1 + 84: iload_3 + 85: aaload + 86: astore 4 + 88: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 91: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 94: ldc #37 // String Crashlytics + 96: new #182 // class java/lang/StringBuilder + 99: dup + 100: ldc #71 // String Found invalid session part file: + 102: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 105: aload 4 + 107: invokevirtual #436 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + 110: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 113: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 118: aload 4 + 120: invokestatic #365 // Method a:(Ljava/io/File;)Ljava/lang/String; + 123: astore 4 + 125: new #129 // class com/crashlytics/android/F + 128: dup + 129: aload_0 + 130: aload 4 + 132: invokespecial #277 // Method com/crashlytics/android/F."":(Lcom/crashlytics/android/v;Ljava/lang/String;)V + 135: astore 5 + 137: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 140: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 143: ldc #37 // String Crashlytics + 145: new #182 // class java/lang/StringBuilder + 148: dup + 149: ldc #44 // String Deleting all part files for invalid session: + 151: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 154: aload 4 + 156: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 159: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 162: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 167: aload_0 + 168: aload 5 + 170: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 173: dup + 174: astore 4 + 176: arraylength + 177: istore 5 + 179: iconst_0 + 180: istore 6 + 182: iload 6 + 184: iload 5 + 186: if_icmpge 238 + 189: aload 4 + 191: iload 6 + 193: aaload + 194: astore 7 + 196: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 199: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 202: ldc #37 // String Crashlytics + 204: new #182 // class java/lang/StringBuilder + 207: dup + 208: ldc #45 // String Deleting session file: + 210: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 213: aload 7 + 215: invokevirtual #436 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + 218: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 221: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 226: aload 7 + 228: invokevirtual #398 // Method java/io/File.delete:()Z + 231: pop + 232: iinc 6, 1 + 235: goto 182 + 238: iinc 3, 1 + 241: goto 78 + 244: return + LineNumberTable: + line 1875: 0 + line 1880: 71 + line 1881: 88 + line 1882: 118 + line 1883: 125 + line 1890: 137 + line 1891: 167 + line 1892: 196 + line 1893: 226 + line 1891: 232 + line 1880: 238 + line 1896: 244 + StackMapTable: number_of_entries = 7 + frame_type = 255 /* full_frame */ + offset_delta = 42 + locals = [ class com/crashlytics/android/v, class "[Ljava/io/File;", class java/io/File, class "[Ljava/io/File;", int, int ] + stack = [] + frame_type = 248 /* chop */ + offset_delta = 23 + frame_type = 250 /* chop */ + offset_delta = 4 + frame_type = 253 /* append */ + offset_delta = 6 + locals = [ int, int ] + frame_type = 254 /* append */ + offset_delta = 103 + locals = [ class "[Ljava/io/File;", int, int ] + frame_type = 248 /* chop */ + offset_delta = 55 + frame_type = 255 /* full_frame */ + offset_delta = 5 + locals = [] + stack = [] + + + private T a(java.util.concurrent.Callable); + flags: ACC_PRIVATE + Code: + stack=4, locals=2, args_size=2 + 0: aload_0 + 1: getfield #237 // Field s:Ljava/util/concurrent/ExecutorService; + 4: aload_1 + 5: invokeinterface #483, 2 // InterfaceMethod java/util/concurrent/ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + 10: invokeinterface #484, 1 // InterfaceMethod java/util/concurrent/Future.get:()Ljava/lang/Object; + 15: areturn + 16: pop + 17: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 20: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 23: ldc #37 // String Crashlytics + 25: ldc #50 // String Executor is shut down because we're handling a fatal crash. + 27: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 32: aconst_null + 33: areturn + 34: astore_1 + 35: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 38: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 41: ldc #37 // String Crashlytics + 43: ldc #62 // String Failed to execute task. + 45: aload_1 + 46: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 51: aconst_null + 52: areturn + Exception table: + from to target type + 0 15 16 Class java/util/concurrent/RejectedExecutionException + 0 15 34 Class java/lang/Exception + LineNumberTable: + line 1936: 0 + line 1937: 16 + line 1938: 17 + line 1939: 32 + line 1940: 34 + line 1941: 35 + line 1942: 51 + StackMapTable: number_of_entries = 2 + frame_type = 255 /* full_frame */ + offset_delta = 16 + locals = [] + stack = [ class java/util/concurrent/RejectedExecutionException ] + frame_type = 81 /* same_locals_1_stack_item */ + stack = [ class java/lang/Exception ] + + Signature: #885 // (Ljava/util/concurrent/Callable;)TT; + + private java.util.concurrent.Future a(java.lang.Runnable); + flags: ACC_PRIVATE + Code: + stack=5, locals=2, args_size=2 + 0: aload_0 + 1: getfield #237 // Field s:Ljava/util/concurrent/ExecutorService; + 4: new #130 // class com/crashlytics/android/G + 7: dup + 8: aload_0 + 9: aload_1 + 10: invokespecial #278 // Method com/crashlytics/android/G."":(Lcom/crashlytics/android/v;Ljava/lang/Runnable;)V + 13: invokeinterface #482, 2 // InterfaceMethod java/util/concurrent/ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + 18: areturn + 19: pop + 20: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 23: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 26: ldc #37 // String Crashlytics + 28: ldc #50 // String Executor is shut down because we're handling a fatal crash. + 30: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 35: aconst_null + 36: areturn + Exception table: + from to target type + 0 18 19 Class java/util/concurrent/RejectedExecutionException + LineNumberTable: + line 1958: 0 + line 1968: 19 + line 1969: 20 + line 1970: 35 + StackMapTable: number_of_entries = 1 + frame_type = 255 /* full_frame */ + offset_delta = 19 + locals = [] + stack = [ class java/util/concurrent/RejectedExecutionException ] + + Signature: #835 // (Ljava/lang/Runnable;)Ljava/util/concurrent/Future<*>; + + private java.util.concurrent.Future b(java.util.concurrent.Callable); + flags: ACC_PRIVATE + Code: + stack=5, locals=2, args_size=2 + 0: aload_0 + 1: getfield #237 // Field s:Ljava/util/concurrent/ExecutorService; + 4: new #132 // class com/crashlytics/android/I + 7: dup + 8: aload_0 + 9: aload_1 + 10: invokespecial #280 // Method com/crashlytics/android/I."":(Lcom/crashlytics/android/v;Ljava/util/concurrent/Callable;)V + 13: invokeinterface #483, 2 // InterfaceMethod java/util/concurrent/ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + 18: areturn + 19: pop + 20: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 23: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 26: ldc #37 // String Crashlytics + 28: ldc #50 // String Executor is shut down because we're handling a fatal crash. + 30: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 35: aconst_null + 36: areturn + Exception table: + from to target type + 0 18 19 Class java/util/concurrent/RejectedExecutionException + LineNumberTable: + line 1986: 0 + line 1997: 19 + line 1998: 20 + line 1999: 35 + StackMapTable: number_of_entries = 1 + frame_type = 255 /* full_frame */ + offset_delta = 19 + locals = [] + stack = [ class java/util/concurrent/RejectedExecutionException ] + + Signature: #884 // (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + + static java.util.regex.Pattern i(); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=0, args_size=0 + 0: getstatic #222 // Field d:Ljava/util/regex/Pattern; + 3: areturn + LineNumberTable: + line 66: 0 + + static boolean a(com.crashlytics.android.v, boolean); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=3, locals=2, args_size=2 + 0: aload_0 + 1: iload_1 + 2: dup_x1 + 3: putfield #240 // Field v:Z + 6: ireturn + LineNumberTable: + line 66: 0 + + static void a(com.crashlytics.android.v, java.util.Date, java.lang.Thread, java.lang.Throwable) throws java.lang.Exception; + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=7, locals=8, args_size=4 + 0: aload_0 + 1: aload_1 + 2: aload_2 + 3: aload_3 + 4: astore_3 + 5: astore_2 + 6: astore_1 + 7: dup + 8: astore_0 + 9: aload_1 + 10: aload_2 + 11: aload_3 + 12: astore 4 + 14: astore_3 + 15: astore_2 + 16: astore_1 + 17: aconst_null + 18: astore 5 + 20: aconst_null + 21: astore 6 + 23: new #163 // class java/io/File + 26: dup + 27: aload_1 + 28: getfield #229 // Field k:Ljava/io/File; + 31: ldc #102 // String crash_marker + 33: invokespecial #396 // Method java/io/File."":(Ljava/io/File;Ljava/lang/String;)V + 36: invokevirtual #397 // Method java/io/File.createNewFile:()Z + 39: pop + 40: aload_1 + 41: invokespecial #386 // Method n:()Ljava/lang/String; + 44: dup + 45: astore 7 + 47: ifnull 110 + 50: aload 7 + 52: invokestatic #261 // Method com/crashlytics/android/Crashlytics.b:(Ljava/lang/String;)V + 55: new #146 // class com/crashlytics/android/f + 58: dup + 59: aload_1 + 60: getfield #229 // Field k:Ljava/io/File; + 63: new #182 // class java/lang/StringBuilder + 66: dup + 67: invokespecial #434 // Method java/lang/StringBuilder."":()V + 70: aload 7 + 72: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 75: ldc #81 // String SessionCrash + 77: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 80: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 83: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 86: dup + 87: astore 5 + 89: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 92: astore 6 + 94: aload_1 + 95: aload_2 + 96: aload 6 + 98: aload_3 + 99: aload 4 + 101: ldc #101 // String crash + 103: iconst_1 + 104: invokespecial #377 // Method a:(Ljava/util/Date;Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/lang/String;Z)V + 107: goto 126 + 110: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 113: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 116: ldc #37 // String Crashlytics + 118: ldc #89 // String Tried to write a fatal exception while no session was open. + 120: aconst_null + 121: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 126: aload 6 + 128: ldc #68 // String Failed to flush to session begin file. + 130: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 133: aload 5 + 135: ldc #53 // String Failed to close fatal exception file output stream. + 137: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 140: goto 204 + 143: astore 7 + 145: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 148: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 151: ldc #37 // String Crashlytics + 153: ldc #20 // String An error occurred in the fatal exception logger + 155: aload 7 + 157: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 162: aload_1 + 163: aload 7 + 165: aload 5 + 167: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 170: aload 6 + 172: ldc #68 // String Failed to flush to session begin file. + 174: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 177: aload 5 + 179: ldc #53 // String Failed to close fatal exception file output stream. + 181: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 184: goto 204 + 187: astore_0 + 188: aload 6 + 190: ldc #68 // String Failed to flush to session begin file. + 192: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 195: aload 5 + 197: ldc #53 // String Failed to close fatal exception file output stream. + 199: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 202: aload_0 + 203: athrow + 204: aload_0 + 205: invokespecial #385 // Method m:()V + 208: aload_0 + 209: invokespecial #384 // Method l:()V + 212: aload_0 + 213: dup + 214: astore_1 + 215: getfield #229 // Field k:Ljava/io/File; + 218: getstatic #219 // Field a:Ljava/io/FilenameFilter; + 221: iconst_4 + 222: getstatic #221 // Field c:Ljava/util/Comparator; + 225: invokestatic #291 // Method com/crashlytics/android/b.a:(Ljava/io/File;Ljava/io/FilenameFilter;ILjava/util/Comparator;)V + 228: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 231: invokevirtual #270 // Method com/crashlytics/android/Crashlytics.j:()Z + 234: ifne 241 + 237: aload_0 + 238: invokespecial #388 // Method p:()V + 241: return + Exception table: + from to target type + 23 126 143 Class java/lang/Exception + 23 126 187 any + 143 170 187 any + LineNumberTable: + line 66: 0 + StackMapTable: number_of_entries = 6 + frame_type = 255 /* full_frame */ + offset_delta = 110 + locals = [ class com/crashlytics/android/v, class com/crashlytics/android/v, top, top, top, null, null ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 15 + locals = [ class com/crashlytics/android/v, top, top, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 16 + locals = [ class com/crashlytics/android/v, class com/crashlytics/android/v, top, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Exception ] + frame_type = 255 /* full_frame */ + offset_delta = 43 + locals = [ top, top, top, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Throwable ] + frame_type = 255 /* full_frame */ + offset_delta = 16 + locals = [ class com/crashlytics/android/v ] + stack = [] + frame_type = 250 /* chop */ + offset_delta = 36 + + Exceptions: + throws java.lang.Exception + + static java.util.concurrent.atomic.AtomicBoolean a(com.crashlytics.android.v); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: getfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 4: areturn + LineNumberTable: + line 66: 0 + + static void b(com.crashlytics.android.v) throws java.lang.Exception; + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: invokespecial #385 // Method m:()V + 4: return + LineNumberTable: + line 66: 0 + Exceptions: + throws java.lang.Exception + + static void c(com.crashlytics.android.v) throws java.lang.Exception; + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: invokespecial #384 // Method l:()V + 4: return + LineNumberTable: + line 66: 0 + Exceptions: + throws java.lang.Exception + + static void b(com.crashlytics.android.v, java.util.Date, java.lang.Thread, java.lang.Throwable); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=7, locals=8, args_size=4 + 0: aload_0 + 1: aload_1 + 2: aload_2 + 3: aload_3 + 4: astore_3 + 5: astore_2 + 6: astore_1 + 7: dup + 8: astore_0 + 9: invokespecial #386 // Method n:()Ljava/lang/String; + 12: dup + 13: astore 4 + 15: ifnull 251 + 18: aload 4 + 20: invokestatic #259 // Method com/crashlytics/android/Crashlytics.a:(Ljava/lang/String;)V + 23: aconst_null + 24: astore 5 + 26: aconst_null + 27: astore 6 + 29: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 32: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 35: ldc #37 // String Crashlytics + 37: new #182 // class java/lang/StringBuilder + 40: dup + 41: ldc #43 // String Crashlytics is logging non-fatal exception \" + 43: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 46: aload_3 + 47: invokevirtual #436 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + 50: ldc #8 // String \" from thread + 52: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 55: aload_2 + 56: invokevirtual #441 // Method java/lang/Thread.getName:()Ljava/lang/String; + 59: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 62: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 65: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 70: aload_0 + 71: getfield #225 // Field g:Ljava/util/concurrent/atomic/AtomicInteger; + 74: invokevirtual #461 // Method java/util/concurrent/atomic/AtomicInteger.getAndIncrement:()I + 77: invokestatic #319 // Method com/crashlytics/android/internal/ab.a:(I)Ljava/lang/String; + 80: astore 7 + 82: new #182 // class java/lang/StringBuilder + 85: dup + 86: invokespecial #434 // Method java/lang/StringBuilder."":()V + 89: aload 4 + 91: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 94: ldc #83 // String SessionEvent + 96: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 99: aload 7 + 101: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 104: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 107: astore 7 + 109: new #146 // class com/crashlytics/android/f + 112: dup + 113: aload_0 + 114: getfield #229 // Field k:Ljava/io/File; + 117: aload 7 + 119: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 122: dup + 123: astore 5 + 125: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 128: astore 6 + 130: aload_0 + 131: aload_1 + 132: aload 6 + 134: aload_2 + 135: aload_3 + 136: ldc #104 // String error + 138: iconst_0 + 139: invokespecial #377 // Method a:(Ljava/util/Date;Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/lang/String;Z)V + 142: aload 6 + 144: ldc #65 // String Failed to flush to non-fatal file. + 146: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 149: aload 5 + 151: ldc #55 // String Failed to close non-fatal file output stream. + 153: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 156: goto 220 + 159: astore 7 + 161: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 164: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 167: ldc #37 // String Crashlytics + 169: ldc #21 // String An error occurred in the non-fatal exception logger + 171: aload 7 + 173: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 178: aload_0 + 179: aload 7 + 181: aload 5 + 183: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 186: aload 6 + 188: ldc #65 // String Failed to flush to non-fatal file. + 190: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 193: aload 5 + 195: ldc #55 // String Failed to close non-fatal file output stream. + 197: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 200: goto 220 + 203: astore_0 + 204: aload 6 + 206: ldc #65 // String Failed to flush to non-fatal file. + 208: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 211: aload 5 + 213: ldc #55 // String Failed to close non-fatal file output stream. + 215: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 218: aload_0 + 219: athrow + 220: aload_0 + 221: aload 4 + 223: bipush 64 + 225: invokespecial #370 // Method a:(Ljava/lang/String;I)V + 228: goto 267 + 231: astore 7 + 233: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 236: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 239: ldc #37 // String Crashlytics + 241: ldc #23 // String An error occurred when trimming non-fatal files. + 243: aload 7 + 245: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 250: return + 251: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 254: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 257: ldc #37 // String Crashlytics + 259: ldc #90 // String Tried to write a non-fatal exception while no session was open. + 261: aconst_null + 262: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 267: return + Exception table: + from to target type + 29 142 159 Class java/lang/Exception + 29 142 203 any + 159 186 203 any + 220 228 231 Class java/lang/Exception + LineNumberTable: + line 66: 0 + StackMapTable: number_of_entries = 6 + frame_type = 255 /* full_frame */ + offset_delta = 159 + locals = [ class com/crashlytics/android/v, top, top, top, class java/lang/String, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Exception ] + frame_type = 255 /* full_frame */ + offset_delta = 43 + locals = [ top, top, top, top, top, class com/crashlytics/android/f, class com/crashlytics/android/h ] + stack = [ class java/lang/Throwable ] + frame_type = 255 /* full_frame */ + offset_delta = 16 + locals = [ class com/crashlytics/android/v, top, top, top, class java/lang/String ] + stack = [] + frame_type = 255 /* full_frame */ + offset_delta = 10 + locals = [] + stack = [ class java/lang/Exception ] + frame_type = 19 /* same */ + frame_type = 15 /* same */ + + + static com.crashlytics.android.internal.aq d(com.crashlytics.android.v); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: getfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 4: areturn + LineNumberTable: + line 66: 0 + + static boolean e(com.crashlytics.android.v); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: invokespecial #383 // Method k:()Z + 4: ireturn + LineNumberTable: + line 66: 0 + + static java.io.File f(com.crashlytics.android.v); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: getfield #230 // Field l:Ljava/io/File; + 4: areturn + LineNumberTable: + line 66: 0 + + static java.util.Map j(); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=0, args_size=0 + 0: getstatic #223 // Field e:Ljava/util/Map; + 3: areturn + LineNumberTable: + line 66: 0 + + static java.io.File[] a(com.crashlytics.android.v, java.io.FilenameFilter); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=2, locals=2, args_size=2 + 0: aload_0 + 1: aload_1 + 2: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 5: areturn + LineNumberTable: + line 66: 0 + + static {}; + flags: ACC_STATIC + Code: + stack=2, locals=0, args_size=0 + 0: new #159 // class com/crashlytics/android/w + 3: dup + 4: invokespecial #392 // Method com/crashlytics/android/w."":()V + 7: putstatic #219 // Field a:Ljava/io/FilenameFilter; + 10: new #131 // class com/crashlytics/android/H + 13: dup + 14: invokespecial #279 // Method com/crashlytics/android/H."":()V + 17: putstatic #220 // Field b:Ljava/util/Comparator; + 20: new #133 // class com/crashlytics/android/J + 23: dup + 24: invokespecial #281 // Method com/crashlytics/android/J."":()V + 27: putstatic #221 // Field c:Ljava/util/Comparator; + 30: new #134 // class com/crashlytics/android/K + 33: invokespecial #282 // Method com/crashlytics/android/K."":()V + 36: ldc #11 // String ([\d|A-Z|a-z]{12}\-[\d|A-Z|a-z]{4}\-[\d|A-Z|a-z]{4}\-[\d|A-Z|a-z]{12}).+ + 38: invokestatic #464 // Method java/util/regex/Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern; + 41: putstatic #222 // Field d:Ljava/util/regex/Pattern; + 44: ldc #96 // String X-CRASHLYTICS-SEND-FLAGS + 46: ldc #17 // String 1 + 48: invokestatic #447 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map; + 51: putstatic #223 // Field e:Ljava/util/Map; + 54: ldc #16 // String 0 + 56: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 59: putstatic #224 // Field f:Lcom/crashlytics/android/d; + 62: return + LineNumberTable: + line 124: 0 + line 132: 10 + line 139: 20 + line 149: 30 + line 156: 36 + line 159: 44 + line 181: 54 +} diff --git a/tests/bugs187/470663/out.jar b/tests/bugs187/470663/out.jar new file mode 100644 index 000000000..014415445 Binary files /dev/null and b/tests/bugs187/470663/out.jar differ diff --git a/tests/bugs187/470663/run.cmd b/tests/bugs187/470663/run.cmd new file mode 100644 index 000000000..221baabc8 --- /dev/null +++ b/tests/bugs187/470663/run.cmd @@ -0,0 +1 @@ +call %ASPECTJ_HOME%\bin\ajc.bat -nowarn -Xlint:ignore -encoding UTF-8 -1.7 -inpath .\inpath -outjar out.jar -classpath %ASPECTJ_HOME%\lib\aspectjrt.jar -sourceroots .\src diff --git a/tests/bugs187/470663/run.sh b/tests/bugs187/470663/run.sh new file mode 100755 index 000000000..30c7dfcaf --- /dev/null +++ b/tests/bugs187/470663/run.sh @@ -0,0 +1 @@ +ajc -nowarn -Xlint:ignore -encoding UTF-8 -1.7 -inpath inpath -outjar out.jar FilesAspect.aj diff --git a/tests/bugs187/470663/x b/tests/bugs187/470663/x new file mode 100644 index 000000000..e6673cd88 --- /dev/null +++ b/tests/bugs187/470663/x @@ -0,0 +1,7674 @@ +Classfile jar:file:/Users/aclement/gits/org.aspectj/tests/bugs187/470663/out.jar!/com/crashlytics/android/v.class + Last modified Jun 22, 2015; size 49947 bytes + MD5 checksum 0021bb7425ef04c5b400fb23ab40c32f + Compiled from "SourceFile" +final class com.crashlytics.android.v implements java.lang.Thread$UncaughtExceptionHandler + SourceFile: "SourceFile" + org.aspectj.weaver.WeaverVersion: length = 0xC + 00 07 00 00 00 00 01 4D D3 D6 91 20 + org.aspectj.weaver.WeaverState: length = 0x3EF2 + 53 00 00 00 00 01 00 28 4C 63 6F 6D 2F 73 61 66 + 65 64 6B 2F 61 6E 64 72 6F 69 64 2F 61 73 70 65 + 63 74 73 2F 46 69 6C 65 73 41 73 70 65 63 74 3B + 00 00 3E BE 04 BE 00 00 44 26 00 30 00 9E 00 B1 + 00 01 00 B8 00 19 00 18 03 F1 03 B8 00 00 00 0A + 04 00 03 BD 00 01 03 DB 00 00 00 02 03 BE 00 0A + 04 02 03 BD 00 01 03 DB 00 00 00 02 03 BE 00 1A + 04 35 03 C7 00 00 00 1A 04 37 03 C2 00 01 03 DB + 00 00 00 02 03 C3 00 1A 04 3C 03 B3 00 00 00 12 + 04 3E 03 C6 00 00 00 12 04 5C 03 C5 00 00 00 12 + 04 5E 03 B0 00 00 00 12 04 66 03 BA 00 00 00 12 + 04 93 03 B7 00 00 00 12 04 94 03 B7 00 00 00 12 + 04 97 03 C5 00 00 00 12 04 9C 03 B9 00 00 00 12 + 04 9F 03 B2 00 00 00 12 04 A1 03 B2 00 00 00 12 + 04 A2 03 B3 00 00 00 12 04 A3 03 B3 00 00 00 12 + 04 A9 03 C4 00 00 00 02 04 B1 03 B1 00 00 00 02 + 04 B5 03 B4 00 00 00 02 04 B8 03 EA 00 00 00 02 + 04 BA 03 F0 00 00 00 02 04 BC 03 BF 00 01 03 DB + 00 00 00 02 03 C0 00 02 04 BD 03 EE 00 00 00 44 + 00 01 03 77 03 54 00 01 03 85 00 00 00 29 00 05 + 00 04 00 00 00 0D 2A 2B 2C 12 27 B8 01 4E 2D B7 + 01 5F B1 00 00 00 01 03 B6 00 00 00 0A 00 02 00 + 00 00 EC 00 0C 00 EE 00 02 03 77 03 55 00 01 03 + 85 00 00 01 CD 00 07 00 05 00 00 01 2D 2A B7 01 + A1 2A BB 00 CC 59 03 B7 01 CC B5 00 E1 2A BB 00 + CB 59 03 B7 01 C8 B5 00 E2 2A 2B B5 00 E4 2A 2D + B5 00 ED 2A BB 00 CB 59 03 B7 01 C8 B5 00 E7 2A + B8 01 5B B6 01 5E B5 00 E5 2A BB 00 A3 59 2A B4 + 00 E5 12 69 B7 01 8C B5 00 E6 2A B2 00 F4 12 26 + 04 BD 00 B1 59 03 B8 01 0B B6 01 0C 53 B8 01 AB + B5 00 E8 2A 10 08 B5 00 E3 2C 4C B8 01 5B B6 01 + 5C 12 25 12 1C B9 01 D3 03 00 BB 00 A3 59 B8 01 + 5B B6 01 5E 12 66 B7 01 8C 59 4D B6 01 8F 99 00 + 26 2C B6 01 8E 57 2B C6 00 1D 2B B9 01 D2 01 00 + A7 00 14 4C B8 01 5B B6 01 5C 12 25 12 31 2B B9 + 01 D4 04 00 2A B8 01 06 B8 01 24 B5 00 EB 2A 19 + 04 C7 00 07 01 A7 00 0F 19 04 12 0C 12 02 B6 01 + AE B8 01 24 B5 00 EC 2A BB 00 87 59 2A B7 01 1B + B5 00 EA BB 00 73 59 12 61 B7 00 F9 4C 2A BB 00 + 88 59 2A B7 01 1C B5 00 E9 BB 00 73 59 12 62 B7 + 00 F9 4D B8 01 0B B6 01 0A 2A B4 00 EA 2B B6 00 + F7 57 B8 01 0B B6 01 0A 2A B4 00 E9 2C B6 00 F7 + 57 2A B4 00 E2 04 B6 01 CB B1 00 01 00 9D 00 A3 + 00 A6 00 AD 00 02 03 B6 00 00 00 56 00 15 00 00 + 00 F4 00 04 00 C0 00 10 00 C1 00 1C 00 F5 00 21 + 00 F6 00 26 00 F7 00 32 00 F8 00 3C 00 F9 00 4D + 00 FA 00 66 01 01 00 6C 01 03 00 B7 01 05 00 C1 + 01 06 00 DA 01 08 00 E6 01 0F 00 F0 01 11 00 FC + 01 18 01 06 01 1A 01 15 01 1B 01 24 01 1C 01 2C + 01 1D 03 DD 00 00 00 2A 00 04 FF 00 A6 00 05 07 + 00 9E 00 00 00 07 00 B5 00 01 07 00 AD 10 53 07 + 00 9E FF 00 0B 00 01 07 00 9E 00 02 07 00 9E 07 + 00 90 00 10 03 F1 02 F6 00 01 03 85 00 00 00 20 + 00 01 00 01 00 00 00 08 2A B4 00 E7 B6 01 C9 AC + 00 00 00 01 03 B6 00 00 00 06 00 01 00 00 01 20 + 00 31 04 B6 03 57 00 01 03 85 00 00 01 B2 00 07 + 00 04 00 00 00 F9 2A B4 00 E7 04 B6 01 CB B8 01 + 5B B6 01 5C 12 25 BB 00 B6 59 12 2A B7 01 B3 2C + B6 01 B4 12 08 B6 01 B5 2B B6 01 B9 B6 01 B5 B6 + 01 B6 B9 01 D3 03 00 2A B4 00 E2 04 B6 01 CA 9A + 00 2C B8 01 5B B6 01 5C 12 25 12 5F B9 01 D3 03 + 00 B8 01 0B B6 01 0A 2A B4 00 EA B6 00 F8 B8 01 + 0B B6 01 0A 2A B4 00 E9 B6 00 F8 BB 00 BC 59 B7 + 01 C0 4E 2A BB 00 89 59 2A 2D 2B 2C B7 01 1D B7 + 01 7A 57 B8 01 5B B6 01 5C 12 25 12 29 B9 01 D3 + 03 00 2A B4 00 E4 2B 2C B9 01 D5 03 00 2A B4 00 + E7 03 B6 01 CB B1 4E B8 01 5B B6 01 5C 12 25 12 + 16 2D B9 01 D4 04 00 B8 01 5B B6 01 5C 12 25 12 + 29 B9 01 D3 03 00 2A B4 00 E4 2B 2C B9 01 D5 03 + 00 2A B4 00 E7 03 B6 01 CB B1 4E B8 01 5B B6 01 + 5C 12 25 12 29 B9 01 D3 03 00 2A B4 00 E4 2B 2C + B9 01 D5 03 00 2A B4 00 E7 03 B6 01 CB 2D BF 00 + 03 00 08 00 7D 00 A0 00 AD 00 08 00 7D 00 D4 00 + 00 00 A0 00 B1 00 D4 00 00 00 03 03 B6 00 00 00 + 56 00 15 00 00 01 25 00 08 01 27 00 31 01 29 00 + 3C 01 2A 00 4B 01 2B 00 58 01 2C 00 65 01 31 00 + 6D 01 33 00 7D 01 3D 00 8C 01 3E 00 97 01 3F 00 + 9F 01 40 00 A0 01 3A 00 A1 01 3B 00 B1 01 3D 00 + C0 01 3E 00 CB 01 3F 00 D3 01 40 00 D4 01 3D 00 + E4 01 3E 00 EF 01 3F 03 C8 00 00 00 20 00 03 00 + 00 00 E9 04 B3 03 BB 00 01 00 00 00 EA 04 3A 03 + BC 00 02 00 00 00 F0 04 B2 03 B5 00 00 03 DD 00 + 00 00 0D 00 03 FB 00 65 7A 07 00 AD 73 07 00 B9 + 00 10 04 00 02 F6 00 01 03 85 00 00 00 2B 00 04 + 00 01 00 00 00 13 2A BB 00 8A 59 2A B7 01 1E B7 + 01 7A C0 00 AB B6 01 9A AC 00 00 00 01 03 B6 00 + 00 00 06 00 01 00 00 01 52 00 10 03 F1 03 57 00 + 01 03 85 00 00 00 39 00 07 00 04 00 00 00 19 BB + 00 BC 59 B7 01 C0 4E 2A BB 00 8B 59 2A 2D 2B 2C + B7 01 1F B7 01 6F 57 B1 00 00 00 01 03 B6 00 00 + 00 0E 00 03 00 00 01 65 00 08 01 67 00 18 01 6F + 00 10 03 F1 03 0F 00 01 03 85 00 00 00 2C 00 07 + 00 04 00 00 00 10 2A BB 00 A0 59 2A 1F 2D B7 01 + 89 B7 01 7D 57 B1 00 00 00 01 03 B6 00 00 00 0A + 00 02 00 00 01 75 00 0F 01 81 00 02 03 F1 03 23 + 00 01 03 85 00 00 00 9C 00 06 00 04 00 00 00 40 + 2B C7 00 05 01 B0 04 BC 0A 59 03 03 4F 4D 2B B6 + 01 55 BC 08 4E 2B BB 00 A1 59 2A 2D 2C B7 01 8A + B6 01 56 A7 00 14 4C B8 01 5B B6 01 5C 12 25 12 + 13 2B B9 01 D4 04 00 2D 03 2C 03 2E B8 01 25 B0 + 00 01 00 15 00 23 00 26 00 A7 00 02 03 B6 00 00 + 00 26 00 09 00 00 01 92 00 04 01 93 00 06 01 99 + 00 0E 01 9B 00 15 01 9E 00 23 01 AB 00 26 01 A9 + 00 27 01 AA 00 37 01 AD 03 DD 00 00 00 16 00 03 + 06 FF 00 1F 00 04 00 00 07 00 6D 07 00 6C 00 01 + 07 00 A7 10 00 10 04 02 02 F5 00 01 03 85 00 00 + 00 2A 00 04 00 01 00 00 00 0E 2A BB 00 A2 59 2A + B7 01 8B B7 01 7D 57 B1 00 00 00 01 03 B6 00 00 + 00 0A 00 02 00 00 01 B4 00 0D 01 BD 00 10 04 35 + 02 F5 00 01 03 85 00 00 00 2A 00 04 00 01 00 00 + 00 0E 2A BB 00 7A 59 2A B7 00 FF B7 01 7D 57 B1 + 00 00 00 01 03 B6 00 00 00 0A 00 02 00 00 01 C0 + 00 0D 01 CA 00 10 04 37 02 F5 00 01 03 85 00 00 + 00 2A 00 04 00 01 00 00 00 0E 2A BB 00 7B 59 2A + B7 01 00 B7 01 7D 57 B1 00 00 00 01 03 B6 00 00 + 00 0A 00 02 00 00 01 D0 00 0D 01 DD 00 10 04 3C + 02 F6 00 01 03 85 00 00 00 2B 00 04 00 01 00 00 + 00 13 2A BB 00 7C 59 2A B7 01 01 B7 01 7A C0 00 + AB B6 01 9A AC 00 00 00 01 03 B6 00 00 00 06 00 + 01 00 00 01 E0 00 08 03 F1 03 24 00 01 03 85 00 + 00 01 19 00 07 00 05 00 00 00 9A 2A C7 00 04 B1 + 19 04 C7 00 07 12 6B 3A 04 19 04 B6 01 AD 11 40 + 00 A4 00 22 BB 00 B6 59 12 0E B7 01 B3 19 04 19 + 04 B6 01 AD 11 40 00 64 B6 01 B0 B6 01 B5 B6 01 + B6 3A 04 19 04 12 05 12 06 B6 01 AF 59 3A 04 12 + 04 12 06 B6 01 AF 3A 04 B2 00 F4 12 09 05 BD 00 + B1 59 03 20 B8 01 9E 53 59 04 19 04 53 B8 01 AB + 12 5D B6 01 AC 4C 2A 2B B6 01 57 2A B6 01 58 9A + 00 13 2A B6 01 55 12 01 A4 00 0A 2A B6 01 59 A7 + FF EC B1 4B B8 01 5B B6 01 5C 12 25 12 57 2A B9 + 01 D4 04 00 B1 00 01 00 0E 00 87 00 88 00 A7 00 + 02 03 B6 00 00 00 42 00 10 00 00 02 14 00 04 02 + 15 00 05 02 17 00 0A 02 18 00 0E 02 2C 00 19 02 + 2F 00 38 02 32 00 42 02 33 00 4D 02 35 00 6B 02 + 37 00 70 02 3A 00 80 02 3B 00 87 02 3F 00 88 02 + 3D 00 89 02 3E 00 99 02 40 03 DD 00 00 00 1D 00 + 06 FF 00 05 00 04 07 00 9A 00 04 07 00 B5 00 00 + 08 29 F8 00 37 FA 00 16 40 07 00 A7 00 10 04 3E + 02 F6 00 01 03 85 00 00 00 2F 00 01 00 01 00 00 + 00 0C 2A B7 01 83 BE 9E 00 05 04 AC 03 AC 00 00 + 00 02 03 B6 00 00 00 06 00 01 00 00 02 44 03 DD + 00 00 00 05 00 01 FA 00 0A 00 02 04 93 02 F6 00 + 01 03 85 00 00 01 11 00 05 00 03 00 00 00 9F B8 + 01 0B B6 01 0A 12 64 04 B8 01 41 59 3C 9A 00 14 + B8 01 5B B6 01 5C 12 25 12 4C B9 01 D3 03 00 03 + AC 2A B4 00 EF BB 00 B6 59 12 22 B7 01 B3 2A B4 + 00 EF B6 01 B4 B6 01 B6 B8 01 42 01 4C BB 00 B6 + 59 12 67 B7 01 B3 B8 01 C6 B6 01 C7 B6 01 B5 12 + 0F B6 01 B5 B6 01 B6 4D BB 00 A3 59 B8 01 5B B6 + 01 5E 2C B7 01 8C 4C 2A BB 00 9A 59 2B B7 01 54 + B5 00 EF 2B B6 01 8E 57 A7 00 24 4D B8 01 5B B6 + 01 5C 12 25 BB 00 B6 59 12 23 B7 01 B3 2B B6 01 + B4 B6 01 B6 2C B9 01 D4 04 00 03 AC 04 AC 00 01 + 00 3E 00 79 00 7C 00 AD 00 02 03 B6 00 00 00 3E + 00 0F 00 00 02 5B 00 0D 02 5E 00 11 02 5F 00 20 + 02 60 00 22 02 64 00 3C 02 66 00 3E 02 71 00 59 + 02 72 00 68 02 73 00 74 02 74 00 79 02 78 00 7C + 02 75 00 7D 02 76 00 9B 02 77 00 9D 02 7A 03 DD + 00 00 00 14 00 03 22 FF 00 59 00 02 00 07 00 A3 + 00 01 07 00 AD F9 00 20 00 02 04 94 02 F5 00 02 + 03 85 00 00 04 24 00 07 00 10 00 00 02 F6 BB 00 + BC 59 B7 01 C0 4C BB 00 91 59 B8 01 0B B6 01 04 + B7 01 26 B6 01 27 4D B8 01 5B B6 01 5C 12 25 BB + 00 B6 59 12 4B B7 01 B3 2C B6 01 B5 B6 01 B6 B9 + 01 D3 03 00 2A 2B 2C 3A 04 4E 4C 01 3A 05 01 3A + 06 BB 00 92 59 B8 01 5B B6 01 5E BB 00 B6 59 B7 + 01 B2 19 04 B6 01 B5 12 19 B6 01 B5 B6 01 B6 B7 + 01 28 59 3A 05 B8 01 31 59 3A 06 04 2B B4 00 E8 + B8 01 24 B6 01 2E 19 06 05 19 04 B8 01 24 B6 01 + 2E 19 06 06 2D B6 01 C1 14 00 CF 6D B6 01 2D 19 + 06 12 44 B8 01 43 19 05 12 34 B8 01 42 A7 00 20 + 4E 2B 2D 19 05 B7 01 77 2D BF 3A 07 19 06 12 44 + B8 01 43 19 05 12 34 B8 01 42 19 07 BF 2A 2C 4E + 4C 01 3A 04 01 3A 05 BB 00 92 59 B8 01 5B B6 01 + 5E BB 00 B6 59 B7 01 B2 2D B6 01 B5 12 50 B6 01 + B5 B6 01 B6 B7 01 28 59 3A 04 B8 01 31 3A 05 B8 + 01 06 B8 01 24 3A 06 B8 01 09 B8 01 24 4E B8 01 + 08 B8 01 24 3A 07 B8 01 0D B8 01 24 57 B8 01 0B + B6 01 0A B6 00 F5 B8 01 24 57 B8 01 0B B6 01 04 + B6 01 51 B8 01 24 3A 09 B8 01 07 B8 01 50 B6 01 + 4F 36 0A 19 05 10 07 05 B6 01 3E 19 05 2B 19 06 + 2D 19 07 19 09 15 0A 36 0F 3A 0E 3A 0D 3A 0C 3A + 08 3A 0B 03 04 19 08 B8 01 37 60 59 36 08 05 19 + 0C B8 01 37 60 59 36 08 06 19 0D B8 01 37 60 36 + 08 B8 01 85 36 0B 15 08 08 B8 01 2A 15 0B B8 01 + 39 60 15 0B 60 60 59 36 08 10 06 19 0E B8 01 37 + 60 59 36 08 10 0A 15 0F B8 01 3C 60 59 36 08 B6 + 01 33 19 05 04 19 06 B6 01 2E 19 05 05 2D B6 01 + 2E 19 05 06 19 07 B6 01 2E 19 05 08 05 B6 01 3E + 19 05 B8 01 85 B6 01 33 19 05 04 B8 01 0B B6 01 + 0A 59 4E 03 B8 01 5A B6 01 2F 19 05 10 06 19 09 + B6 01 2E 19 05 10 0A 15 0A B6 01 35 19 05 12 43 + B8 01 43 19 04 12 39 B8 01 42 A7 00 21 3A 06 2B + 19 06 19 04 B7 01 77 19 06 BF 4C 19 05 12 43 B8 + 01 43 19 04 12 39 B8 01 42 2B BF 2A 2C 4E 4C 01 + 3A 04 01 3A 05 BB 00 92 59 B8 01 5B B6 01 5E BB + 00 B6 59 B7 01 B2 2D B6 01 B5 12 54 B6 01 B5 B6 + 01 B6 B7 01 28 59 3A 04 B8 01 31 3A 05 B2 00 D7 + B8 01 24 3A 06 B2 00 D6 B8 01 24 4E B8 01 4C 36 + 07 19 05 10 08 05 B6 01 3E 19 05 19 06 2D 15 07 + 36 0A 3A 09 3A 08 03 04 06 B8 01 3C 60 59 36 0B + 05 19 08 B8 01 37 60 59 36 0B 06 19 09 B8 01 37 + 60 59 36 0B 07 15 0A B8 01 38 60 59 36 0B B6 01 + 33 19 05 04 06 B6 01 35 19 05 05 19 06 B6 01 2E + 19 05 06 2D B6 01 2E 19 05 07 15 07 B6 01 30 19 + 05 12 42 B8 01 43 19 04 12 38 B8 01 42 A7 00 21 + 3A 06 2B 19 06 19 04 B7 01 77 19 06 BF 4C 19 05 + 12 42 B8 01 43 19 04 12 38 B8 01 42 2B BF 2A 2C + B7 01 7E B1 00 09 00 43 00 91 00 A2 00 AD 00 43 + 00 91 00 AC 00 00 00 A2 00 AE 00 AC 00 00 00 C9 + 01 EE 01 FF 00 AD 00 C9 01 EE 02 0C 00 00 01 FF + 02 0D 02 0C 00 00 02 27 02 C1 02 D2 00 AD 02 27 + 02 C1 02 DF 00 00 02 D2 02 E0 02 DF 00 00 00 02 + 03 B6 00 00 00 22 00 08 00 00 02 CA 00 08 02 CB + 00 19 02 CD 00 36 02 CF 00 BF 02 D0 02 1D 02 D1 + 02 F0 02 D2 02 F5 02 D3 03 DD 00 00 00 AC 00 09 + FF 00 A2 00 07 00 07 00 9E 00 00 00 07 00 92 07 + 00 93 00 01 07 00 AD FF 00 09 00 07 00 00 00 00 + 00 07 00 92 07 00 93 00 01 07 00 B9 FF 00 12 00 + 03 07 00 9E 00 07 00 B5 00 00 FF 01 3F 00 06 00 + 07 00 9E 00 00 07 00 92 07 00 93 00 01 07 00 AD + FF 00 0C 00 06 00 00 00 00 07 00 92 07 00 93 00 + 01 07 00 B9 FF 00 10 00 03 07 00 9E 00 07 00 B5 + 00 00 FF 00 B4 00 06 00 07 00 9E 00 00 07 00 92 + 07 00 93 00 01 07 00 AD FF 00 0C 00 06 00 00 00 + 00 07 00 92 07 00 93 00 01 07 00 B9 FF 00 10 00 + 03 07 00 9E 00 07 00 B5 00 00 03 99 00 00 00 04 + 00 01 00 AD 00 02 04 97 02 F5 00 02 03 85 00 00 + 07 F3 00 08 00 0F 00 00 04 EB 2A 10 08 36 06 3A + 05 BB 00 BD 59 B7 01 C2 3A 07 19 05 B7 01 83 59 + 3A 08 B2 00 DC B8 01 BE 10 08 19 08 BE B8 01 A0 + 36 09 03 36 0A 15 0A 15 09 A2 00 1D 19 08 15 0A + 32 B8 01 6D 3A 0B 19 07 19 0B B9 01 DF 02 00 57 + 84 0A 01 A7 FF E2 19 05 BB 00 8C 59 03 B7 01 20 + B7 01 6E 59 3A 0A 59 3A 0B BE 36 0C 03 36 0D 15 + 0D 15 0C A2 00 58 19 0B 15 0D 32 59 3A 0E B6 01 + 90 4C B2 00 DE 2B B6 01 D1 59 3A 06 B6 01 CF 57 + 19 06 04 B6 01 CE 4D 19 07 2C B9 01 E0 02 00 9A + 00 26 B8 01 5B B6 01 5C 12 25 BB 00 B6 59 12 5C + B7 01 B3 2B B6 01 B5 B6 01 B6 B9 01 D3 03 00 19 + 0E B6 01 8E 57 84 0D 01 A7 FF A7 2A B7 01 82 59 + 4C C6 04 14 2A 2B 3A 06 3A 05 01 3A 07 01 3A 08 + BB 00 92 59 19 05 B4 00 E5 BB 00 B6 59 B7 01 B2 + 19 06 B6 01 B5 12 55 B6 01 B5 B6 01 B6 B7 01 28 + 59 3A 07 B8 01 31 3A 08 B8 01 0B B6 01 0F 3A 09 + B8 01 0B B6 01 11 3A 0A B8 01 0B B6 01 10 3A 0B + 19 09 C7 00 1E 19 0A C7 00 19 19 0B C7 00 14 19 + 08 12 40 B8 01 43 19 07 12 3B B8 01 42 A7 00 BB + 19 09 C7 00 08 12 02 A7 00 05 19 09 B8 01 24 3A + 0C 19 0A C7 00 07 01 A7 00 08 19 0A B8 01 24 3A + 0D 19 0B C7 00 07 01 A7 00 08 19 0B B8 01 24 3A + 0E 03 04 19 0C B8 01 37 60 3C 19 0D C6 00 0C 1B + 05 19 0D B8 01 37 60 3C 19 0E C6 00 0C 1B 06 19 + 0E B8 01 37 60 3C 19 08 10 06 05 B6 01 3E 19 08 + 1B B6 01 33 19 08 04 19 0C B6 01 2E 19 0D C6 00 + 0B 19 08 05 19 0D B6 01 2E 19 0E C6 00 0B 19 08 + 06 19 0E B6 01 2E 19 08 12 40 B8 01 43 19 07 12 + 3B B8 01 42 A7 00 24 3A 09 19 05 19 09 19 07 B7 + 01 77 19 09 BF 3A 06 19 08 12 40 B8 01 43 19 07 + 12 3B B8 01 42 19 06 BF B8 01 0B B6 01 12 59 4C + C6 02 D5 2B B4 00 D8 3C B8 01 5B B6 01 5C 12 25 + 12 1D B9 01 D3 03 00 2A B7 01 83 59 4D C6 02 B5 + 2C BE 9E 02 B0 2C 59 4D BE 3E 03 36 04 15 04 1D + A2 02 A2 2C 15 04 32 59 3A 05 B8 01 6D 3A 06 B8 + 01 5B B6 01 5C 12 25 BB 00 B6 59 12 1E B7 01 B3 + 19 06 B6 01 B5 B6 01 B6 B9 01 D3 03 00 2A 19 05 + 19 06 1B 36 08 3A 07 3A 06 3A 05 B8 01 5B B6 01 + 5C 12 25 BB 00 B6 59 12 21 B7 01 B3 19 07 B6 01 + B5 B6 01 B6 B9 01 D3 03 00 19 05 BB 00 8D 59 BB + 00 B6 59 B7 01 B2 19 07 B6 01 B5 12 51 B6 01 B5 + B6 01 B6 B7 01 21 B7 01 6E 59 3A 09 C6 00 0D 19 + 09 BE 9E 00 07 04 A7 00 04 03 36 0A B8 01 5B B6 + 01 5C 12 25 B2 00 F4 12 4E 05 BD 00 B1 59 03 19 + 07 53 59 04 15 0A B8 01 9B 53 B8 01 AB B9 01 D3 + 03 00 19 05 BB 00 8D 59 BB 00 B6 59 B7 01 B2 19 + 07 B6 01 B5 12 53 B6 01 B5 B6 01 B6 B7 01 21 B7 + 01 6E 59 3A 0B C6 00 0D 19 0B BE 9E 00 07 04 A7 + 00 04 03 36 0C B8 01 5B B6 01 5C 12 25 B2 00 F4 + 12 4F 05 BD 00 B1 59 03 19 07 53 59 04 15 0C B8 + 01 9B 53 B8 01 AB B9 01 D3 03 00 15 0A 9A 00 08 + 15 0C 99 01 47 01 3A 0D 01 3A 0E BB 00 92 59 19 + 05 B4 00 E5 19 07 B7 01 28 59 3A 0D B8 01 31 3A + 0E B8 01 5B B6 01 5C 12 25 BB 00 B6 59 12 20 B7 + 01 B3 19 07 B6 01 B5 B6 01 B6 B9 01 D3 03 00 19 + 0E 19 06 B8 01 64 19 0E 07 BB 00 BC 59 B7 01 C0 + B6 01 C1 14 00 CF 6D B6 01 2D 19 0E 08 15 0A B6 + 01 30 19 05 19 0E 19 07 B7 01 65 15 0C 99 00 62 + 19 0B BE 15 08 A4 00 4F B8 01 5B B6 01 5C 12 25 + B2 00 F4 12 5B 04 BD 00 B1 59 03 15 08 B8 01 9D + 53 B8 01 AB B9 01 D3 03 00 19 05 19 07 15 08 B7 + 01 72 19 05 BB 00 8D 59 BB 00 B6 59 B7 01 B2 19 + 07 B6 01 B5 12 53 B6 01 B5 B6 01 B6 B7 01 21 B7 + 01 6E 3A 0B 19 05 19 0E 19 0B 19 07 B7 01 6A 15 + 0A 99 00 0C 19 0E 19 09 03 32 B8 01 64 19 0E 10 + 0B 04 B6 01 2C 19 0E 10 0C 06 B6 01 35 19 0E 12 + 2F B8 01 43 19 0D 12 33 B8 01 42 A7 00 6C 3A 06 + B8 01 5B B6 01 5C 12 25 BB 00 B6 59 12 45 B7 01 + B3 19 07 B6 01 B5 B6 01 B6 19 06 B9 01 D4 04 00 + 19 05 19 06 19 0D B7 01 77 19 0E 12 2F B8 01 43 + 19 0D B8 01 62 A7 00 32 4D 19 0E 12 2F B8 01 43 + 19 0D 12 33 B8 01 42 2C BF B8 01 5B B6 01 5C 12 + 25 BB 00 B6 59 12 48 B7 01 B3 19 07 B6 01 B5 B6 + 01 B6 B9 01 D3 03 00 B8 01 5B B6 01 5C 12 25 BB + 00 B6 59 12 4D B7 01 B3 19 07 B6 01 B5 B6 01 B6 + B9 01 D3 03 00 19 05 19 07 B7 01 71 84 04 01 A7 + FD 5E A7 00 22 B8 01 5B B6 01 5C 12 25 12 4A B9 + 01 D3 03 00 B1 B8 01 5B B6 01 5C 12 25 12 5E B9 + 01 D3 03 00 B1 00 08 00 D6 01 25 01 CD 00 AD 01 + 36 01 BC 01 CD 00 AD 00 D6 01 25 01 DB 00 00 01 + 36 01 BC 01 DB 00 00 01 CD 01 DD 01 DB 00 00 03 + 41 04 23 04 34 00 AD 03 41 04 23 04 6E 00 00 04 + 34 04 5F 04 6E 00 00 00 02 03 B6 00 00 00 52 00 + 14 00 00 02 D9 00 C1 02 DB 00 C6 02 DD 00 CA 02 + E0 01 EE 02 E2 01 F5 02 E4 01 F9 02 E5 01 FE 02 + E7 02 0D 02 E8 02 12 02 EA 02 1B 02 EB 02 2E 02 + EC 02 35 02 ED 02 53 02 EE 04 C2 02 EB 04 C8 02 + F1 04 CB 02 F2 04 DA 02 F4 04 DB 02 F5 04 EA 02 + F7 03 DD 00 00 02 5E 00 24 FF 00 2B 00 0B 07 00 + 9E 00 00 00 00 07 00 9E 00 07 00 BD 07 00 6E 01 + 01 00 00 F8 00 20 FF 00 18 00 0E 07 00 9E 00 00 + 00 00 00 00 07 00 BD 00 00 00 07 00 6E 01 01 00 + 00 FB 00 55 FF 00 05 00 01 07 00 9E 00 00 FF 00 + 74 00 0C 07 00 9E 00 00 00 00 07 00 9E 00 07 00 + 92 07 00 93 07 00 B5 07 00 B5 07 00 B5 00 00 09 + FF 00 01 00 0C 07 00 9E 00 00 00 00 07 00 9E 00 + 07 00 92 07 00 93 00 07 00 B5 07 00 B5 00 01 07 + 00 B5 FC 00 0D 07 00 90 FF 00 04 00 0D 07 00 9E + 00 00 00 00 07 00 9E 00 07 00 92 07 00 93 00 00 + 07 00 B5 07 00 90 00 01 07 00 90 FC 00 0A 07 00 + 90 FF 00 04 00 0E 07 00 9E 00 00 00 00 07 00 9E + 00 07 00 92 07 00 93 00 00 00 07 00 90 07 00 90 + 00 01 07 00 90 FF 00 18 00 0F 07 00 9E 01 00 00 + 00 07 00 9E 00 07 00 92 07 00 93 00 00 00 07 00 + 90 07 00 90 07 00 90 00 00 0D FF 00 22 00 0F 07 + 00 9E 00 00 00 00 07 00 9E 00 07 00 92 07 00 93 + 00 00 00 00 00 07 00 90 00 00 FF 00 0C 00 09 07 + 00 9E 00 00 00 00 00 00 07 00 92 07 00 93 00 00 + FF 00 10 00 09 00 00 00 00 00 07 00 9E 00 07 00 + 92 07 00 93 00 01 07 00 AD FF 00 0D 00 09 00 00 + 00 00 00 00 00 07 00 92 07 00 93 00 01 07 00 B9 + FF 00 12 00 01 07 00 9E 00 00 FF 00 34 00 05 07 + 00 9E 01 07 00 6E 01 01 00 00 FF 00 8B 00 0A 07 + 00 9E 01 07 00 6E 01 01 07 00 9E 07 00 A3 07 00 + B5 01 07 00 6E 00 00 40 01 FD 00 57 01 07 00 6E + 40 01 FC 00 31 01 FF 00 BE 00 0F 07 00 9E 01 07 + 00 6E 01 01 07 00 9E 00 07 00 B5 00 07 00 6E 01 + 07 00 6E 00 07 00 92 07 00 93 00 00 FF 00 0A 00 + 0F 07 00 9E 01 07 00 6E 01 01 07 00 9E 00 07 00 + B5 00 07 00 6E 01 00 00 07 00 92 07 00 93 00 00 + FF 00 0D 00 0F 07 00 9E 01 07 00 6E 01 01 07 00 + 9E 00 07 00 B5 00 00 00 00 00 07 00 92 07 00 93 + 00 00 60 07 00 AD FF 00 39 00 0F 00 00 00 00 00 + 00 00 00 00 00 00 00 00 07 00 92 07 00 93 00 01 + 07 00 B9 FF 00 10 00 08 07 00 9E 01 07 00 6E 01 + 01 07 00 9E 00 07 00 B5 00 00 1D FF 00 2A 00 00 + 00 00 02 0F 0E 03 99 00 00 00 04 00 01 00 AD 00 + 02 04 9C 02 EE 00 01 03 85 00 00 00 4E 00 04 00 + 02 00 00 00 23 2A BB 00 8D 59 12 19 B7 01 21 B7 + 01 6E 59 4C B2 00 DC B8 01 BE 2B BE 9E 00 0A 2B + 03 32 B8 01 6D B0 01 B0 00 00 00 02 03 B6 00 00 + 00 0E 00 03 00 00 03 03 00 0E 03 04 00 15 03 05 + 03 DD 00 00 00 05 00 01 FA 00 21 00 0A 03 F1 03 + 35 00 01 03 85 00 00 00 23 00 03 00 01 00 00 00 + 0B 2A B6 01 90 03 10 23 B6 01 B1 B0 00 00 00 01 + 03 B6 00 00 00 06 00 01 00 00 03 12 00 0A 03 F1 + 03 17 00 01 03 85 00 00 00 62 00 04 00 01 00 00 + 00 1B 2A C6 00 19 2A B6 01 29 B1 4B B8 01 5B B6 + 01 5C 12 25 12 2E 2A B9 01 D4 04 00 B1 00 01 00 + 04 00 08 00 09 00 A7 00 02 03 B6 00 00 00 1A 00 + 06 00 00 03 68 00 04 03 6A 00 08 03 6D 00 09 03 + 6B 00 0A 03 6C 00 1A 03 6F 03 DD 00 00 00 0D 00 + 02 FF 00 09 00 00 00 01 07 00 A7 10 00 02 03 F1 + 03 20 00 01 03 85 00 00 00 CC 00 08 00 07 00 00 + 00 65 2C B2 00 D9 B8 01 BE 2C 59 4D BE 36 04 03 + 36 05 15 05 15 04 A2 00 50 2C 15 05 32 3A 06 B8 + 01 5B B6 01 5C 12 25 B2 00 F4 12 46 05 BD 00 B1 + 59 03 2D 53 59 04 19 06 B6 01 90 53 B8 01 AB B9 + 01 D3 03 00 2B 19 06 B8 01 64 A7 00 16 3A 06 B8 + 01 5B B6 01 5C 12 25 12 30 19 06 B9 01 D4 04 00 + 84 05 01 A7 FF AF B1 00 01 00 1D 00 48 00 4B 00 + AD 00 02 03 B6 00 00 00 26 00 09 00 00 03 72 00 + 07 03 74 00 1D 03 76 00 42 03 77 00 48 03 7A 00 + 4B 03 78 00 4D 03 79 00 5E 03 74 00 64 03 7C 03 + DD 00 00 00 21 00 04 FF 00 10 00 06 00 07 00 93 + 07 00 6E 07 00 B5 01 01 00 00 7A 07 00 AD 12 FF + 00 05 00 00 00 00 00 02 03 F1 03 1A 00 02 03 85 + 00 00 01 10 00 05 00 08 00 00 00 B5 07 BD 00 B5 + 59 03 12 55 53 59 04 12 50 53 59 05 12 54 53 59 + 06 12 52 53 59 4E 59 4E BE 36 04 03 36 05 15 05 + 15 04 A2 00 8E 2D 15 05 32 3A 06 2A BB 00 8D 59 + BB 00 B6 59 B7 01 B2 2C B6 01 B5 19 06 B6 01 B5 + B6 01 B6 B7 01 21 B7 01 6E 59 3A 07 BE 9A 00 2E + B8 01 5B B6 01 5C 12 25 BB 00 B6 59 12 1A B7 01 + B3 19 06 B6 01 B5 12 07 B6 01 B5 2C B6 01 B5 B6 + 01 B6 01 B9 01 D4 04 00 A7 00 32 B8 01 5B B6 01 + 5C 12 25 BB 00 B6 59 12 1F B7 01 B3 19 06 B6 01 + B5 12 07 B6 01 B5 2C B6 01 B5 B6 01 B6 B9 01 D3 + 03 00 2B 19 07 03 32 B8 01 64 84 05 01 A7 FF 71 + B1 00 00 00 02 03 B6 00 00 00 26 00 09 00 00 03 + 7F 00 19 03 81 00 2F 03 82 00 4E 03 84 00 54 03 + 85 00 7F 03 87 00 A6 03 88 00 AE 03 81 00 B4 03 + 8B 03 DD 00 00 00 1D 00 04 FE 00 22 07 00 70 01 + 01 FD 00 5C 07 00 B5 07 00 6E F9 00 2E FF 00 05 + 00 00 00 00 03 99 00 00 00 04 00 01 00 A7 00 02 + 03 F1 03 4C 00 01 03 85 00 00 00 6C 00 04 00 05 + 00 00 00 2C 2A 2B 4D 59 4C BB 00 8E 59 2C B7 01 + 22 B7 01 6E 59 4C BE 3D 03 3E 1D 1C A2 00 13 2B + 1D 32 59 3A 04 B6 01 8E 57 84 03 01 A7 FF EE B1 + 00 00 00 02 03 B6 00 00 00 12 00 04 00 00 03 91 + 00 1F 03 92 00 25 03 91 00 2B 03 94 03 DD 00 00 + 00 16 00 02 FF 00 16 00 04 00 07 00 6E 01 01 00 + 00 FF 00 14 00 00 00 00 00 02 04 9F 02 F7 00 01 + 03 85 00 00 00 26 00 04 00 01 00 00 00 0E 2A BB + 00 8D 59 12 19 B7 01 21 B7 01 6E B0 00 00 00 01 + 03 B6 00 00 00 06 00 01 00 00 03 A2 00 02 03 F1 + 03 39 00 01 03 85 00 00 00 3F 00 02 00 02 00 00 + 00 14 2A B4 00 E5 2B B6 01 95 59 4C C7 00 08 03 + BD 00 A3 B0 2B B0 00 00 00 02 03 B6 00 00 00 06 + 00 01 00 00 03 AD 03 DD 00 00 00 0D 00 01 FF 00 + 12 00 02 00 07 00 6E 00 00 00 02 04 A1 02 F5 00 + 01 03 85 00 00 00 8B 00 06 00 05 00 00 00 48 2A + 59 4C B2 00 DB B7 01 6E 59 4C BE 3D 03 3E 1D 1C + A2 00 36 2B 1D 32 59 3A 04 3A 04 B8 01 5B B6 01 + 5C 12 25 12 18 B9 01 D3 03 00 BB 00 B7 59 BB 00 + 7F 59 2A 19 04 B7 01 13 12 28 B7 01 B7 B6 01 BA + 84 03 01 A7 FF CB B1 00 00 00 02 03 B6 00 00 00 + 1A 00 06 00 00 03 EB 00 18 03 EC 00 1C 03 ED 00 + 2B 03 EF 00 41 03 EB 00 47 03 FB 03 DD 00 00 00 + 11 00 02 FE 00 0F 07 00 6E 01 01 FF 00 37 00 00 + 00 00 00 02 03 F1 03 5C 00 01 03 85 00 00 00 98 + 00 04 00 04 00 00 00 43 2C C6 00 41 2A 2B 2C 4E + 4D 4C 01 4C BB 00 A9 59 2D B7 01 98 4C 2C 2B B8 + 01 78 2B 12 3C B8 01 42 B1 4D B8 01 5B B6 01 5C + 12 25 12 3D 2C B9 01 D4 04 00 2B 12 3C B8 01 42 + B1 4D 2B 12 3C B8 01 42 2C BF B1 00 03 00 0C 00 + 1A 00 21 00 AD 00 0C 00 1A 00 39 00 00 00 21 00 + 32 00 39 00 00 00 02 03 B6 00 00 00 0E 00 03 00 + 00 04 41 00 04 04 42 00 42 04 44 03 DD 00 00 00 + 17 00 03 FF 00 21 00 02 00 07 00 A9 00 01 07 00 + AD 57 07 00 B9 F9 00 08 00 0A 03 F1 03 5D 00 01 + 03 85 00 00 01 6E 00 04 00 07 00 00 00 B8 04 3D + 2A C6 00 A2 2A 59 4E B6 01 BC 59 4E C7 00 07 01 + A7 00 0B 2D 12 0A 12 06 B6 01 AF 59 4E C6 00 07 + 2D A7 00 05 12 02 4E 1C 99 00 08 12 02 A7 00 05 + 12 1B 4D 2B BB 00 B6 59 B7 01 B2 2C B6 01 B5 2A + B6 01 A2 B6 01 9C B6 01 B5 12 12 B6 01 B5 2D B6 + 01 B5 12 04 B6 01 B5 B6 01 B6 B6 01 99 03 3D 2A + B6 01 BD 59 4E BE 36 04 03 36 05 15 05 15 04 A2 + 00 2C 2D 15 05 32 3A 06 2B BB 00 B6 59 12 03 B7 + 01 B3 19 06 B6 01 AA B6 01 B5 12 04 B6 01 B5 B6 + 01 B6 B6 01 99 84 05 01 A7 FF D3 2A B6 01 BB 4B + A7 FF 60 B1 4D B8 01 5B B6 01 5C 12 25 12 24 2C + B9 01 D4 04 00 B1 00 01 00 00 00 A5 00 A6 00 AD + 00 02 03 B6 00 00 00 42 00 10 00 00 04 62 00 02 + 04 64 00 06 04 65 00 1E 04 66 00 29 04 68 00 35 + 04 69 00 5F 04 6B 00 61 04 6D 00 7A 04 6E 00 97 + 04 6D 00 9D 04 71 00 A2 04 72 00 A5 04 75 00 A6 + 04 73 00 A7 04 74 00 B7 04 76 03 DD 00 00 00 54 + 00 0B FC 00 02 01 FC 00 12 07 00 B5 FF 00 07 00 + 03 07 00 B9 07 00 AA 01 00 01 07 00 B5 08 41 07 + 00 B5 FF 00 09 00 04 07 00 B9 07 00 AA 00 07 00 + B5 00 00 41 07 00 B5 FF 00 38 00 06 07 00 B9 07 + 00 AA 01 07 00 6F 01 01 00 00 F8 00 2F F8 00 07 + 40 07 00 AD 00 0A 04 A2 02 E0 00 01 03 85 00 00 + 00 43 00 04 00 02 00 00 00 1F B8 01 0B B6 01 0A + 4B B8 01 5B B6 01 5D 3C 03 04 2A 1B B8 01 5A B8 + 01 24 B8 01 37 60 59 3B AC 00 00 00 01 03 B6 00 + 00 00 12 00 04 00 00 04 88 00 07 04 8A 00 0E 04 + 8B 00 1D 04 8D 00 0A 04 00 03 47 00 01 03 85 00 + 00 00 2C 00 01 00 01 00 00 00 0B 2A C7 00 05 01 + B0 2A B8 01 24 B0 00 00 00 02 03 B6 00 00 00 06 + 00 01 00 00 04 BA 03 DD 00 00 00 03 00 01 06 00 + 02 04 02 03 4C 00 02 03 85 00 00 03 10 00 0F 00 + 10 00 00 01 98 01 4D 01 4E BB 00 92 59 B8 01 5B + B6 01 5E BB 00 B6 59 B7 01 B2 2B B6 01 B5 12 52 + B6 01 B5 B6 01 B6 B7 01 28 59 4D B8 01 31 4E BB + 00 79 59 B8 00 FB B6 01 91 B7 00 FC 4C B8 01 46 + 36 04 B2 00 D4 B8 01 7B 3A 05 B2 00 D3 B8 01 7B + 3A 06 B2 00 D5 B8 01 7B 3A 07 B8 01 A4 B6 01 A3 + 36 08 B8 01 49 37 0A 2B B6 00 FD 85 2B B6 00 FE + 85 69 37 0C B8 01 4B 3C B8 01 0B B6 01 04 59 3A + 09 B6 01 52 B8 01 24 3A 0E 19 09 B6 01 53 3A 09 + B8 01 4D 36 0F 2D 10 09 05 B6 01 3E 2D 2A 15 04 + 19 0E 19 05 15 08 16 0A 16 0C 1B 19 09 15 0F 19 + 06 19 07 B7 01 61 B6 01 33 2D 04 19 0E B6 01 2E + 2D 06 15 04 B6 01 35 2D 07 19 05 B6 01 2E 2D 08 + 15 08 B6 01 2C 2D 10 06 16 0A B6 01 2D 2D 10 07 + 16 0C B6 01 2D 2D 10 0A 1B B6 01 30 19 09 B9 01 + DA 01 00 B9 01 E1 01 00 4C 2B B9 01 D6 01 00 99 + 00 57 2B B9 01 D7 01 00 C0 00 C3 3A 04 2D 10 0B + 05 B6 01 3E 2D 19 04 B9 01 DD 01 00 C0 00 99 19 + 04 B9 01 DE 01 00 C0 00 B5 B8 01 6B B6 01 33 2D + 04 19 04 B9 01 DD 01 00 C0 00 99 B4 00 DA B6 01 + 35 2D 05 19 04 B9 01 DE 01 00 C0 00 B5 B8 01 24 + B6 01 2E A7 FF A6 2D 10 0C 15 0F B6 01 2C 19 06 + C6 00 0B 2D 10 0D 19 06 B6 01 2E 19 07 C6 00 0B + 2D 10 0E 19 07 B6 01 2E 2D 12 3F B8 01 43 2C 12 + 3A B8 01 42 B1 4C 2A 2B 2C B7 01 77 2B BF 4C 2D + 12 3F B8 01 43 2C 12 3A B8 01 42 2B BF 00 03 00 + 04 01 73 01 80 00 AD 00 04 01 73 01 89 00 00 01 + 80 01 8A 01 89 00 00 00 02 03 B6 00 00 00 B6 00 + 2D 00 00 04 C2 00 02 04 C3 00 04 04 C5 00 25 04 + C6 00 2A 04 C8 00 38 04 CA 00 3D 04 CC 00 45 04 + CD 00 4D 04 CE 00 55 04 D0 00 5D 04 D1 00 62 04 + D2 00 6F 04 D3 00 73 04 D5 00 7A 04 D6 00 84 04 + D8 00 8B 04 DA 00 90 04 DC 00 97 04 DE 00 B4 04 + E1 00 BB 04 E3 00 C2 04 E4 00 C9 04 E5 00 D0 04 + E6 00 D8 04 E7 00 E0 04 E8 00 E7 04 EA 01 08 04 + EB 01 0F 04 EC 01 2A 04 EE 01 3C 04 EF 01 4E 04 + F0 01 51 04 F1 01 59 04 F3 01 5E 04 F4 01 66 04 + F6 01 6B 04 F7 01 73 04 FD 01 79 04 FE 01 7F 04 + FF 01 80 04 F9 01 81 04 FA 01 87 04 FB 01 89 04 + FD 01 90 04 FE 03 DD 00 00 00 92 00 06 FF 00 F4 + 00 10 07 00 9E 07 00 BE 07 00 92 07 00 93 00 00 + 07 00 90 07 00 90 00 00 00 00 00 00 00 01 00 00 + FF 00 5C 00 10 07 00 9E 00 07 00 92 07 00 93 00 + 00 07 00 90 07 00 90 00 00 00 00 00 00 00 01 00 + 00 FF 00 14 00 08 07 00 9E 00 07 00 92 07 00 93 + 00 00 00 07 00 90 00 00 FF 00 0C 00 04 00 00 07 + 00 92 07 00 93 00 00 FF 00 0C 00 04 07 00 9E 00 + 07 00 92 07 00 93 00 01 07 00 AD FF 00 08 00 04 + 00 00 07 00 92 07 00 93 00 01 07 00 B9 03 99 00 + 00 00 04 00 01 00 AD 00 0A 03 F1 03 22 00 01 03 + 85 00 00 00 36 00 03 00 02 00 00 00 16 04 2A B4 + 00 DA B8 01 3C 59 3B 05 2B B8 01 24 B8 01 37 60 + 59 3B AC 00 00 00 01 03 B6 00 00 00 0E 00 03 00 + 00 05 03 00 09 05 04 00 14 05 06 00 02 03 F1 03 + 09 00 02 03 85 00 00 01 CB 00 04 00 0E 00 00 00 + C6 03 04 2C B8 01 37 60 59 3D 06 1B B8 01 3C 60 + 59 3D 2D C7 00 07 03 A7 00 08 07 2D B8 01 37 60 + 59 3D 08 15 04 B8 01 3B 60 59 3D 10 06 16 05 B8 + 01 36 60 59 3D 10 07 16 07 B8 01 36 60 59 3D 10 + 0A 15 09 B8 01 38 60 3D 19 0A C6 00 4B 19 0A B9 + 01 DA 01 00 B9 01 E1 01 00 4C 2B B9 01 D6 01 00 + 99 00 35 2B B9 01 D7 01 00 C0 00 C3 59 4E B9 01 + DD 01 00 C0 00 99 2D B9 01 DE 01 00 C0 00 B5 B8 + 01 6B 3E 1C 10 0B B8 01 2A 1D B8 01 39 60 1D 60 + 60 3D A7 FF C8 1C 10 0C 15 0B B8 01 3B 60 59 3D + 19 0C C7 00 07 03 A7 00 0A 10 0D 19 0C B8 01 37 + 60 59 3D 19 0D C7 00 07 03 A7 00 0A 10 0E 19 0D + B8 01 37 60 59 3D AC 00 00 00 02 03 B6 00 00 00 + 42 00 10 00 00 05 0C 00 08 05 0F 00 10 05 10 00 + 20 05 11 00 29 05 12 00 33 05 13 00 3D 05 14 00 + 47 05 15 00 4C 05 16 00 6C 05 17 00 82 05 18 00 + 91 05 1A 00 94 05 1C 00 9E 05 1D 00 B1 05 1E 00 + C4 05 20 03 DD 00 00 00 AB 00 08 FF 00 19 00 0C + 00 00 00 07 00 90 01 04 04 01 07 00 C2 01 07 00 + 90 07 00 90 00 01 01 FF 00 04 00 0C 00 00 00 00 + 01 04 04 01 07 00 C2 01 07 00 90 07 00 90 00 02 + 01 01 FF 00 3A 00 0E 00 07 00 BE 01 00 00 00 00 + 00 00 00 00 01 07 00 90 07 00 90 00 00 FF 00 3A + 00 0E 00 00 01 00 00 00 00 00 00 00 00 01 07 00 + 90 07 00 90 00 00 FF 00 13 00 0E 00 00 00 00 00 + 00 00 00 00 00 00 00 07 00 90 07 00 90 00 01 01 + FF 00 06 00 0E 00 00 00 00 00 00 00 00 00 00 00 + 00 00 07 00 90 00 02 01 01 4B 01 FF 00 06 00 00 + 00 02 01 01 03 DB 00 00 00 02 03 0A 00 0A 03 F1 + 03 19 00 02 03 85 00 00 01 28 00 05 00 05 00 00 + 00 79 2B B6 01 8F 99 00 53 2B B6 01 93 5C 41 88 + BC 08 4D 01 4E BB 00 A4 59 2B B7 01 96 4E 03 3C + 03 36 04 1B 2C BE A2 00 1B 2D 2C 1B 2C BE 1B 64 + B6 01 97 59 36 04 9B 00 0B 1B 15 04 60 3C A7 FF + E5 2D 12 36 B8 01 42 A7 00 0C 4B 2D 12 36 B8 01 + 42 2A BF 2A 2C B6 01 32 B1 B8 01 5B B6 01 5C 12 + 25 BB 00 B6 59 12 58 B7 01 B3 2B B6 01 90 B6 01 + B5 B6 01 B6 01 B9 01 D4 04 00 B1 00 01 00 13 00 + 3F 00 48 00 00 00 02 03 B6 00 00 00 42 00 10 00 + 00 05 27 00 07 05 29 00 0C 05 2A 00 11 05 2C 00 + 13 05 2F 00 1C 05 31 00 1E 05 32 00 21 05 34 00 + 37 05 35 00 3F 05 38 00 45 05 39 00 48 05 38 00 + 51 05 3B 00 56 05 3C 00 57 05 3D 00 78 05 3F 03 + DD 00 00 00 4D 00 05 FF 00 21 00 04 07 00 93 01 + 07 00 6C 07 00 A4 00 00 FF 00 1D 00 04 07 00 93 + 00 07 00 6C 07 00 A4 00 00 FF 00 08 00 04 00 00 + 00 07 00 A4 00 01 07 00 B9 FF 00 08 00 03 07 00 + 93 00 07 00 6C 00 00 FF 00 05 00 02 00 07 00 A3 + 00 00 03 99 00 00 00 04 00 01 00 A7 00 02 03 F1 + 03 4E 00 01 03 85 00 00 00 42 00 05 00 03 00 00 + 00 26 2A B4 00 E5 BB 00 8D 59 BB 00 B6 59 B7 01 + B2 2B B6 01 B5 12 53 B6 01 B5 B6 01 B6 B7 01 21 + 1C B2 00 DD B8 01 23 B1 00 00 00 01 03 B6 00 00 + 00 0A 00 02 00 00 05 4B 00 25 05 4D 00 02 03 F1 + 03 5E 00 02 03 85 00 00 05 14 00 11 00 24 00 00 + 03 35 2B B6 01 C1 14 00 CF 6D 37 07 B8 01 0B B6 + 01 0A B8 01 47 44 2A B4 00 F0 B8 01 45 36 09 B8 + 01 0B B6 01 0A B8 01 4A 36 0A B8 01 0B B6 01 0A + B6 00 F6 B6 00 FA B4 00 D2 36 0B B8 01 49 B8 01 + 0B B6 01 0A B8 01 40 65 37 0D B8 00 FB B6 01 91 + B8 01 48 37 0F 2A B8 01 06 B8 01 0B B6 01 0A B8 + 01 44 B5 00 EE 2A BB 00 BF 59 B7 01 C3 B5 00 F2 + 2A 19 04 B6 01 BD B5 00 F3 15 06 99 00 68 B8 01 + B8 3A 06 2A 19 06 B9 01 DC 01 00 BD 00 B7 B5 00 + F1 03 36 0C 19 06 B9 01 DA 01 00 B9 01 E1 01 00 + 3A 06 19 06 B9 01 D6 01 00 99 00 37 19 06 B9 01 + D7 01 00 C0 00 C3 3A 11 2A B4 00 F1 15 0C 19 11 + B9 01 DD 01 00 C0 00 B7 53 2A B4 00 F2 19 11 B9 + 01 DE 01 00 B9 01 D8 02 00 57 84 0C 01 A7 FF C5 + A7 00 0B 2A 03 BD 00 B7 B5 00 F1 2A 2A B4 00 EF + B7 01 6C 59 3A 06 C7 00 12 B8 01 5B B6 01 5C 12 + 25 12 49 B9 01 D3 03 00 2A B4 00 EF 12 56 B8 01 + 42 2A 01 B5 00 EF B8 01 0B B6 01 0A 12 63 04 B8 + 01 41 9A 00 0F BB 00 C5 59 B7 01 C4 3A 0C A7 00 + 25 B8 01 0B B6 01 02 59 3A 0C C6 00 19 19 0C B9 + 01 DC 01 00 04 A4 00 0E BB 00 C5 59 19 0C B7 01 + C5 3A 0C 2C 10 0A 05 B6 01 3E 2C 2A 2D 19 04 19 + 05 16 07 19 0C 23 15 09 15 0A 15 0B 16 0D 16 0F + 19 06 3A 16 37 22 37 20 36 15 36 1E 36 1D 38 1C + 3A 1B 37 19 3A 14 3A 13 3A 12 3A 11 03 04 16 19 + B8 01 36 60 59 36 17 05 19 14 B8 01 24 B8 01 37 + 60 36 17 19 11 19 12 19 13 19 1B B7 01 74 36 11 + 15 17 06 B8 01 2A 15 11 B8 01 39 60 15 11 60 60 + 36 17 17 1C 15 1D 15 1E 15 15 16 20 16 22 B8 01 + 60 36 11 15 17 08 B8 01 2A 15 11 B8 01 39 60 15 + 11 60 60 36 17 19 16 C6 00 22 19 16 3A 11 04 19 + 11 B8 01 37 36 11 15 17 10 06 B8 01 2A 15 11 B8 + 01 39 60 15 11 60 60 36 17 15 17 B6 01 33 2C 04 + 16 07 B6 01 2D 2C 05 19 05 B8 01 24 B6 01 2E 2A + 2C 2D 19 04 19 0C 3A 19 3A 14 3A 13 3A 12 3A 11 + 19 12 06 05 B6 01 3E 19 12 19 11 19 13 19 14 19 + 19 B7 01 74 B6 01 33 19 11 19 12 19 13 19 14 B7 + 01 66 19 19 C6 00 16 19 19 B9 01 DB 01 00 9A 00 + 0C 19 11 19 12 19 19 B7 01 69 19 11 B4 00 EE C6 + 00 1B 19 12 06 19 11 B4 00 EE B4 00 D1 10 64 9F + 00 07 04 A7 00 04 03 B6 01 30 19 12 07 B8 01 0B + B6 01 0A B6 00 F6 B6 00 FA B4 00 D2 B6 01 2C 2A + 2C 23 15 09 15 0A 15 0B 16 0D 16 0F 37 1D 37 1B + 36 1A 36 19 36 14 38 13 3A 12 3A 11 19 12 08 05 + B6 01 3E 19 12 17 13 15 14 15 19 15 1A 16 1B 16 + 1D B8 01 60 B6 01 33 19 12 04 17 13 B6 01 2B 19 + 12 05 15 14 B6 01 3A 19 12 06 15 19 B6 01 30 19 + 12 07 15 1A B6 01 2C 19 12 08 16 1B B6 01 2D 19 + 12 10 06 16 1D B6 01 2D 2A 2C 19 06 3A 13 3A 12 + 3A 11 19 13 C6 00 22 19 12 10 06 05 B6 01 3E 19 + 12 19 13 3A 11 04 19 11 B8 01 37 B6 01 33 19 12 + 04 19 13 B6 01 2E B1 00 00 00 02 03 B6 00 00 00 + 9E 00 27 00 00 05 7E 00 0A 05 7F 00 14 05 80 00 + 1D 05 81 00 28 05 82 00 39 05 83 00 48 05 84 00 + 53 05 86 00 63 05 87 00 6E 05 88 00 77 05 8A 00 + 7C 05 8B 00 81 05 8C 00 8F 05 8D 00 92 05 8E 00 + B6 05 8F 00 C7 05 90 00 D8 05 91 00 DB 05 92 00 + DE 05 93 00 E1 05 96 00 E9 05 99 00 F2 05 9B 00 + F7 05 9C 01 06 05 A0 01 0F 05 A1 01 14 05 A4 01 + 23 05 A5 01 2F 05 A7 01 36 05 A8 01 46 05 AC 01 + 51 05 B0 01 58 05 B1 02 0C 05 B4 02 13 05 B5 02 + 1D 05 B7 02 9D 05 B8 03 06 05 BA 03 34 05 BB 03 + DD 00 00 01 29 00 0D FF 00 A0 00 0E 07 00 9E 02 + 07 00 93 07 00 B7 07 00 B9 07 00 B5 07 00 BE 04 + 01 01 01 01 04 04 00 00 FF 00 3D 00 0E 07 00 9E + 02 07 00 93 07 00 B7 07 00 B9 07 00 B5 00 04 01 + 01 01 00 04 04 00 00 02 07 FF 00 1C 00 0E 07 00 + 9E 02 07 00 93 07 00 B7 07 00 B9 07 00 B5 07 00 + 90 04 01 01 01 00 04 04 00 00 28 FF 00 21 00 0E + 07 00 9E 02 07 00 93 07 00 B7 07 00 B9 07 00 B5 + 07 00 90 04 01 01 01 07 00 C2 04 04 00 00 FF 00 + B5 00 15 07 00 9E 02 07 00 93 07 00 B7 07 00 B9 + 07 00 B5 07 00 90 04 01 01 01 07 00 C2 04 04 00 + 00 00 00 00 00 01 00 01 07 00 93 FF 00 60 00 11 + 07 00 9E 02 07 00 93 00 00 00 07 00 90 00 00 01 + 01 01 00 04 04 07 00 9E 07 00 93 00 00 FF 00 1B + 00 11 07 00 9E 02 07 00 93 00 00 00 07 00 90 00 + 00 01 01 01 00 04 04 00 07 00 93 00 02 07 00 93 + 01 FF 00 00 00 11 07 00 9E 02 07 00 93 00 00 00 + 07 00 90 00 00 01 01 01 00 04 04 00 07 00 93 00 + 03 07 00 93 01 01 02 FF 00 AB 00 00 00 00 03 99 + 00 00 00 04 00 01 00 AD 00 02 03 F1 03 1B 00 02 + 03 85 00 00 01 4E 00 06 00 06 00 00 00 B0 2B 04 + 05 B6 01 3E 2B 2A 2C 2D B7 01 7C B6 01 33 2A 2B + 2C 2A B4 00 F3 07 04 B7 01 67 2A B4 00 F1 BE 3D + 03 36 04 15 04 1C A2 00 29 2A B4 00 F1 15 04 32 + 3A 05 2A 2B 19 05 2A B4 00 F2 15 04 B9 01 D9 02 + 00 C0 00 6F 03 03 B7 01 67 84 04 01 A7 FF D7 2A + 2B 2D 04 05 B7 01 68 2B 06 05 B6 01 3E 2B B8 01 + 87 B6 01 33 2B 04 B2 00 E0 B6 01 2E 2B 05 B2 00 + E0 B6 01 2E 2B 06 09 B6 01 2D 2B 07 05 B6 01 3E + 2B 2A B7 01 86 B6 01 33 2B 04 09 B6 01 2D 2B 05 + 09 B6 01 2D 2B 06 2A B4 00 EB B6 01 2E 2A B4 00 + EC C6 00 0C 2B 07 2A B4 00 EC B6 01 2E B1 00 00 + 00 02 03 B6 00 00 00 5A 00 16 00 00 05 D3 00 06 + 05 D4 00 10 05 D6 00 1C 05 DA 00 22 05 DB 00 2B + 05 DC 00 34 05 DD 00 4B 05 DB 00 51 05 E0 00 59 + 05 E2 00 5F 05 E3 00 66 05 E4 00 6E 05 E5 00 76 + 05 E6 00 7C 05 E8 00 82 05 E9 00 8A 05 EA 00 90 + 05 EB 00 96 05 EC 00 9F 05 ED 00 A6 05 EE 00 AF + 05 F0 03 DD 00 00 00 2C 00 03 FF 00 25 00 05 07 + 00 9E 07 00 93 01 07 00 B9 01 00 00 FF 00 2B 00 + 04 07 00 9E 07 00 93 00 07 00 B9 00 00 FF 00 5D + 00 00 00 00 03 99 00 00 00 04 00 01 00 AD 00 02 + 03 F1 03 1E 00 03 03 85 00 00 00 E6 00 03 00 04 + 00 00 00 6F 2C B9 01 DA 01 00 B9 01 E1 01 00 4D + 2C B9 01 D6 01 00 99 00 5C 2C B9 01 D7 01 00 C0 + 00 C3 4E 2B 05 05 B6 01 3E 2B 2D B9 01 DD 01 00 + C0 00 B5 2D B9 01 DE 01 00 C0 00 B5 B8 01 73 B6 + 01 33 2B 04 2D B9 01 DD 01 00 C0 00 B5 B8 01 24 + B6 01 2E 2D B9 01 DE 01 00 C0 00 B5 4E 2B 05 2D + C7 00 08 12 02 A7 00 04 2D B8 01 24 B6 01 2E A7 + FF A1 B1 00 00 00 02 03 B6 00 00 00 22 00 08 00 + 00 05 F5 00 1F 05 F6 00 25 05 F7 00 3E 05 F9 00 + 4F 05 FA 00 59 05 FB 00 6B 05 FC 00 6E 05 FD 03 + DD 00 00 00 3D 00 04 FF 00 0C 00 03 00 07 00 93 + 07 00 BE 00 00 FF 00 57 00 04 00 07 00 93 07 00 + BE 07 00 B5 00 02 07 00 93 01 FF 00 00 00 03 00 + 07 00 93 07 00 BE 00 03 07 00 93 01 07 00 B5 F8 + 00 08 03 99 00 00 00 04 00 01 00 AD 03 DB 00 00 + 00 02 03 1F 00 02 04 A3 02 E0 00 01 03 85 00 00 + 00 6C 00 04 00 02 00 00 00 2F 03 04 09 B8 01 36 + 60 59 3C 05 09 B8 01 36 60 59 3C 06 2A B4 00 EB + B8 01 37 60 3C 2A B4 00 EC C6 00 0E 1B 07 2A B4 + 00 EC B8 01 37 60 3C 1B AC 00 00 00 02 03 B6 00 + 00 00 1A 00 06 00 00 06 00 00 08 06 03 00 10 06 + 04 00 1B 06 05 00 22 06 06 00 2D 06 09 03 DD 00 + 00 00 0B 00 01 FF 00 2D 00 02 00 01 00 00 00 02 + 03 F1 03 1D 00 02 03 85 00 00 01 39 00 05 00 08 + 00 00 00 99 2B 15 04 05 B6 01 3E 2B 2A 2C 04 B7 + 01 76 B6 01 33 2B 04 2C B6 01 A2 B6 01 9C B8 01 + 24 B6 01 2E 2C B6 01 BC 59 3A 04 C6 00 0D 2B 06 + 19 04 B8 01 24 B6 01 2E 2C B6 01 BD 59 3A 04 BE + 36 05 03 36 06 15 06 15 05 A2 00 19 19 04 15 06 + 32 3A 07 2A 2B 07 19 07 04 B7 01 63 84 06 01 A7 + FF E6 2C B6 01 BB 59 3A 04 C6 00 33 1D 10 08 A2 + 00 10 2A 2B 19 04 1D 04 60 10 06 B7 01 68 B1 03 + 36 05 19 04 C6 00 10 19 04 B6 01 BB 3A 04 84 05 + 01 A7 FF F1 2B 10 07 15 05 B6 01 2C B1 00 00 00 + 02 03 B6 00 00 00 4E 00 13 00 00 06 0E 00 07 06 + 0F 00 11 06 11 00 20 06 12 00 25 06 13 00 2A 06 + 14 00 34 06 17 00 4F 06 18 00 58 06 17 00 5E 06 + 1B 00 63 06 1C 00 68 06 1D 00 6E 06 1E 00 7B 06 + 22 00 7E 06 23 00 83 06 24 00 8A 06 25 00 90 06 + 27 00 98 06 2A 03 DD 00 00 00 3A 00 07 FA 00 34 + FE 00 0C 07 00 6F 01 01 F8 00 1C FF 00 1C 00 05 + 00 07 00 93 00 00 07 00 B9 00 00 FC 00 02 01 FF + 00 11 00 06 00 07 00 93 00 00 00 01 00 00 FF 00 + 07 00 00 00 00 03 99 00 00 00 04 00 01 00 AD 00 + 02 03 F1 03 5A 00 01 03 85 00 00 00 98 00 03 00 + 07 00 00 00 48 04 2B B6 01 B9 B8 01 24 B8 01 37 + 59 3C 05 1D B8 01 3B 60 3C 2C 59 4D BE 3E 03 36 + 05 15 05 1D A2 00 27 2C 15 05 32 59 3A 06 15 04 + B8 01 70 36 06 1B 06 B8 01 2A 15 06 B8 01 39 60 + 15 06 60 60 3C 84 05 01 A7 FF D9 1B AC 00 00 00 + 02 03 B6 00 00 00 1E 00 07 00 00 06 2E 00 0C 06 + 2F 00 14 06 31 00 27 06 32 00 30 06 33 00 40 06 + 31 00 46 06 37 03 DD 00 00 00 1A 00 02 FF 00 1C + 00 06 00 01 07 00 6F 01 01 01 00 00 FF 00 29 00 + 02 00 01 00 00 00 02 03 F1 03 1C 00 02 03 85 00 + 00 00 AA 00 05 00 07 00 00 00 50 2B 04 05 B6 01 + 3E 2A 2C 2D 15 04 15 05 B7 01 75 36 06 2B 15 06 + B6 01 33 2B 04 2C B6 01 B9 B8 01 24 B6 01 2E 2B + 05 15 04 B6 01 2C 2D 59 4D BE 3E 03 36 04 15 04 + 1D A2 00 19 2C 15 04 32 3A 06 2A 2B 06 19 06 15 + 05 B7 01 63 84 04 01 A7 FF E7 B1 00 00 00 02 03 + B6 00 00 00 26 00 09 00 00 06 3C 00 06 06 3D 00 + 12 06 3E 00 18 06 3F 00 24 06 40 00 2B 06 42 00 + 3F 06 43 00 49 06 42 00 4F 06 45 03 DD 00 00 00 + 1C 00 02 FF 00 33 00 06 07 00 9E 07 00 93 07 00 + 6F 01 01 01 00 00 FF 00 1B 00 00 00 00 03 99 00 + 00 00 04 00 01 00 AD 00 0A 03 F1 03 45 00 01 03 + 85 00 00 00 F5 00 04 00 03 00 00 00 8A 2A B6 01 + A9 99 00 16 03 04 2A B6 01 A7 03 B8 01 9F 85 B8 + 01 36 60 3D A7 00 0B 03 04 09 B8 01 36 60 3D 1C + 05 BB 00 B6 59 B7 01 B2 2A B6 01 A5 B6 01 B5 12 + 0D B6 01 B5 2A B6 01 A8 B6 01 B5 B6 01 B6 B8 01 + 24 B8 01 37 60 3D 2A B6 01 A6 C6 00 11 1C 06 2A + B6 01 A6 B8 01 24 B8 01 37 60 3D 2A B6 01 A9 9A + 00 16 2A B6 01 A7 9E 00 0F 1C 07 2A B6 01 A7 85 + B8 01 36 60 3D 1C 08 1B 99 00 07 05 A7 00 04 03 + B8 01 3B 60 59 3D AC 00 00 00 02 03 B6 00 00 00 + 2E 00 0B 00 00 06 48 00 07 06 4C 00 1A 06 4E 00 + 22 06 51 00 49 06 55 00 50 06 56 00 5E 06 59 00 + 65 06 5A 00 6C 06 5C 00 78 06 5F 00 88 06 61 03 + DD 00 00 00 25 00 06 1A FC 00 07 01 3B FF 00 19 + 00 03 00 01 01 00 00 FF 00 09 00 00 00 02 01 01 + FF 00 00 00 00 00 03 01 01 01 00 02 03 F1 03 18 + 00 02 03 85 00 00 01 15 00 04 00 05 00 00 00 8E + 2B 1C 05 B6 01 3E 2B 2D 15 04 B8 01 70 B6 01 33 + 2D B6 01 A9 99 00 14 2B 04 2D B6 01 A7 03 B8 01 + 9F 85 B6 01 2D A7 00 09 2B 04 09 B6 01 2D 2B 05 + BB 00 B6 59 B7 01 B2 2D B6 01 A5 B6 01 B5 12 0D + B6 01 B5 2D B6 01 A8 B6 01 B5 B6 01 B6 B8 01 24 + B6 01 2E 2D B6 01 A6 C6 00 0F 2B 06 2D B6 01 A6 + B8 01 24 B6 01 2E 2D B6 01 A9 9A 00 14 2D B6 01 + A7 9E 00 0D 2B 07 2D B6 01 A7 85 B6 01 2D 2B 08 + 15 04 99 00 07 07 A7 00 04 03 B6 01 2C B1 00 00 + 00 02 03 B6 00 00 00 36 00 0D 00 00 06 66 00 06 + 06 67 00 10 06 69 00 17 06 6C 00 28 06 6E 00 2E + 06 71 00 53 06 73 00 5A 06 74 00 66 06 77 00 6D + 06 7A 00 74 06 7B 00 7E 06 82 00 8D 06 83 03 DD + 00 00 00 39 00 06 FF 00 28 00 05 00 07 00 93 00 + 07 00 B4 01 00 00 05 37 FF 00 17 00 05 00 07 00 + 93 00 00 01 00 00 FF 00 0A 00 00 00 02 07 00 93 + 01 FF 00 00 00 00 00 03 07 00 93 01 01 03 99 00 + 00 00 04 00 01 00 AD 00 02 03 F1 03 58 00 02 03 + 85 00 00 01 07 00 04 00 04 00 00 00 96 2A 2B 2C + B7 01 7C 3C 03 04 B8 01 2A 1B B8 01 39 60 1B 60 + 60 3C 2D C6 00 49 2D B9 01 DA 01 00 B9 01 E1 01 + 00 4D 2C B9 01 D6 01 00 99 00 34 2C B9 01 D7 01 + 00 C0 00 C3 59 4E B9 01 DD 01 00 C0 00 B5 2D B9 + 01 DE 01 00 C0 00 B5 B8 01 73 3E 1B 05 B8 01 2A + 1D B8 01 39 60 1D 60 60 3C A7 FF C9 2A B4 00 EE + C6 00 1B 1B 06 2A B4 00 EE B4 00 D1 10 64 9F 00 + 07 04 A7 00 04 03 B8 01 38 60 3C 1B 07 B8 01 0B + B6 01 0A B6 00 F6 B6 00 FA B4 00 D2 B8 01 3B 60 + 59 3C AC 00 00 00 02 03 B6 00 00 00 2E 00 0B 00 + 00 06 B2 00 07 06 B5 00 15 06 B8 00 19 06 B9 00 + 38 06 BA 00 4E 06 BB 00 5C 06 BD 00 5F 06 C1 00 + 66 06 C2 00 7E 06 C5 00 94 06 C8 03 DD 00 00 00 + 2B 00 05 FF 00 25 00 03 07 00 9E 01 07 00 BE 00 + 00 FA 00 39 FF 00 18 00 00 00 02 01 01 FF 00 00 + 00 00 00 03 01 01 01 FD 00 04 00 01 03 DB 00 00 + 00 02 03 59 00 02 04 00 03 56 00 01 03 85 00 00 + 01 08 00 05 00 06 00 00 00 9C 2A 2B 2A B4 00 F3 + 07 04 B7 01 75 3E 03 04 B8 01 2A 1D B8 01 39 60 + 1D 60 60 3C 2A B4 00 F1 BE 36 04 03 36 05 15 05 + 15 04 A2 00 35 2A B4 00 F1 15 05 32 4E 2A 2D 2A + B4 00 F2 15 05 B9 01 D9 02 00 C0 00 6F 03 03 B7 + 01 75 3E 1B 04 B8 01 2A 1D B8 01 39 60 1D 60 60 + 3C 84 05 01 A7 FF CA 2A 2C 04 B7 01 76 36 05 1B + 05 B8 01 2A 15 05 B8 01 39 60 15 05 60 60 3C B8 + 01 87 3E 1B 06 B8 01 2A 1D B8 01 39 60 1D 60 60 + 3C 2A B7 01 86 3D 1B 06 B8 01 2A 1C B8 01 39 60 + 1C 60 60 59 3C AC 00 00 00 02 03 B6 00 00 00 3E + 00 0F 00 00 06 CC 00 0C 06 CF 00 1A 06 D1 00 21 + 06 D2 00 2B 06 D3 00 33 06 D4 00 49 06 D5 00 57 + 06 D2 00 5D 06 D9 00 65 06 DA 00 75 06 DD 00 79 + 06 DE 00 87 06 E0 00 8C 06 E1 00 9A 06 E4 03 DD + 00 00 00 16 00 02 FF 00 24 00 06 07 00 9E 01 07 + 00 B9 00 01 01 00 00 F8 00 38 00 0A 03 F1 03 50 + 00 01 03 85 00 00 00 60 00 03 00 02 00 00 00 1F + 04 2A B8 01 24 B8 01 37 59 3B 05 2B C7 00 08 12 + 02 A7 00 04 2B B8 01 24 B8 01 37 60 59 3B AC 00 + 00 00 02 03 B6 00 00 00 0E 00 03 00 00 06 E8 00 + 09 06 E9 00 1D 06 EA 03 DD 00 00 00 1B 00 02 FF + 00 14 00 02 00 07 00 B5 00 02 01 01 FF 00 00 00 + 00 00 03 01 01 07 00 B5 00 0A 03 F1 02 FA 00 01 + 03 85 00 00 00 65 00 04 00 08 00 00 00 35 03 04 + 22 B8 01 34 60 59 3B 05 1B B8 01 3D 60 59 3B 06 + 1C B8 01 38 60 59 3B 07 1D B8 01 3B 60 59 3B 08 + 16 04 B8 01 36 60 59 3B 10 06 16 06 B8 01 36 60 + 59 3B AC 00 00 00 01 03 B6 00 00 00 1E 00 07 00 + 00 06 EF 00 08 06 F2 00 10 06 F3 00 18 06 F4 00 + 20 06 F5 00 29 06 F6 00 33 06 F8 00 02 03 F1 03 + 5B 00 01 03 85 00 00 01 4C 00 04 00 08 00 00 00 + AF 03 04 2B B6 01 A2 B6 01 9C B8 01 24 B8 01 37 + 60 3E 2B B6 01 BC 59 3A 04 C6 00 0F 1D 06 19 04 + B8 01 24 B8 01 37 60 3E 2B B6 01 BD 59 3A 04 BE + 36 05 03 36 06 15 06 15 05 A2 00 27 19 04 15 06 + 32 59 3A 07 04 B8 01 70 36 07 1D 07 B8 01 2A 15 + 07 B8 01 39 60 15 07 60 60 3E 84 06 01 A7 FF D8 + 2B B6 01 BB 59 3A 04 C6 00 47 1C 10 08 A2 00 22 + 2A 19 04 1C 04 60 B7 01 76 36 05 1D 10 06 B8 01 + 2A 15 05 B8 01 39 60 15 05 60 60 3E A7 00 22 03 + 36 05 19 04 C6 00 10 19 04 B6 01 BB 3A 04 84 05 + 01 A7 FF F1 1D 10 07 15 05 B8 01 3B 60 3E 1D AC + 00 00 00 02 03 B6 00 00 00 52 00 14 00 00 07 01 + 00 11 07 06 00 16 07 07 00 1B 07 08 00 27 07 0B + 00 41 07 0C 00 49 07 0D 00 59 07 0B 00 5F 07 13 + 00 64 07 14 00 69 07 15 00 6F 07 16 00 7A 07 17 + 00 8B 07 19 00 8E 07 1C 00 91 07 1D 00 96 07 1E + 00 9D 07 1F 00 A3 07 22 00 AD 07 26 03 DD 00 00 + 00 33 00 07 FC 00 27 01 FE 00 0C 07 00 6F 01 01 + F8 00 2A FF 00 2E 00 05 00 00 00 01 07 00 B9 00 + 00 FC 00 02 01 FF 00 11 00 06 00 00 00 01 00 01 + 00 00 F9 00 09 00 0A 04 A9 02 E0 00 01 03 85 00 + 00 00 42 00 04 00 01 00 00 00 1E 03 04 B2 00 E0 + B8 01 37 60 59 3B 05 B2 00 E0 B8 01 37 60 59 3B + 06 09 B8 01 36 60 59 3B AC 00 00 00 01 03 B6 00 + 00 00 12 00 04 00 00 07 2A 00 0A 07 2D 00 14 07 + 2E 00 1C 07 30 00 10 04 5C 02 F5 00 01 03 85 00 + 00 00 2A 00 04 00 01 00 00 00 0E 2A BB 00 80 59 + 2A B7 01 14 B7 01 6F 57 B1 00 00 00 01 03 B6 00 + 00 00 0A 00 02 00 00 07 45 00 0D 07 4B 00 10 03 + F1 03 6A 00 01 03 85 00 00 01 73 00 05 00 08 00 + 00 00 F5 BB 00 A3 59 B8 01 5B B6 01 5E 12 6A B7 + 01 8C 59 4D B6 01 8F 99 00 33 2C B6 01 92 99 00 + 27 2C B6 01 94 59 4E BE 36 04 03 36 05 15 05 15 + 04 A2 00 14 2D 15 05 32 59 3A 06 B6 01 8E 57 84 + 05 01 A7 FF EB 2C B6 01 8E 57 2B 59 4C BE 3D 03 + 3E 1D 1C A2 00 A4 2B 1D 32 3A 04 B8 01 5B B6 01 + 5C 12 25 BB 00 B6 59 12 47 B7 01 B3 19 04 B6 01 + B4 B6 01 B6 B9 01 D3 03 00 19 04 B8 01 6D 3A 04 + BB 00 81 59 2A 19 04 B7 01 15 3A 05 B8 01 5B B6 + 01 5C 12 25 BB 00 B6 59 12 2C B7 01 B3 19 04 B6 + 01 B5 B6 01 B6 B9 01 D3 03 00 2A 19 05 B7 01 6E + 59 3A 04 BE 36 05 03 36 06 15 06 15 05 A2 00 34 + 19 04 15 06 32 3A 07 B8 01 5B B6 01 5C 12 25 BB + 00 B6 59 12 2D B7 01 B3 19 07 B6 01 B4 B6 01 B6 + B9 01 D3 03 00 19 07 B6 01 8E 57 84 06 01 A7 FF + CB 84 03 01 A7 FF 5D B1 00 00 00 02 03 B6 00 00 + 00 32 00 0C 00 00 07 53 00 47 07 58 00 58 07 59 + 00 76 07 5A 00 7D 07 5B 00 89 07 62 00 A7 07 63 + 00 C4 07 64 00 E2 07 65 00 E8 07 63 00 EE 07 58 + 00 F4 07 68 03 DD 00 00 00 34 00 07 FF 00 2A 00 + 06 07 00 9E 07 00 6E 07 00 A3 07 00 6E 01 01 00 + 00 F8 00 17 FA 00 04 FD 00 06 01 01 FE 00 67 07 + 00 6E 01 01 F8 00 37 FF 00 05 00 00 00 00 00 02 + 03 F1 03 61 00 02 03 85 00 00 00 8B 00 04 00 02 + 00 00 00 35 2A B4 00 ED 2B B9 01 E3 02 00 B9 01 + E4 01 00 B0 57 B8 01 5B B6 01 5C 12 25 12 32 B9 + 01 D3 03 00 01 B0 4C B8 01 5B B6 01 5C 12 25 12 + 3E 2B B9 01 D4 04 00 01 B0 00 02 00 00 00 0F 00 + 10 00 CA 00 00 00 0F 00 22 00 AD 00 02 03 B6 00 + 00 00 1E 00 07 00 00 07 90 00 10 07 91 00 11 07 + 92 00 20 07 93 00 22 07 94 00 23 07 95 00 33 07 + 96 03 DD 00 00 00 10 00 02 FF 00 10 00 00 00 01 + 07 00 CA 51 07 00 AD 03 DB 00 00 00 02 03 75 00 + 02 03 F1 03 42 00 02 03 85 00 00 00 63 00 05 00 + 02 00 00 00 25 2A B4 00 ED BB 00 82 59 2A 2B B7 + 01 16 B9 01 E2 02 00 B0 57 B8 01 5B B6 01 5C 12 + 25 12 32 B9 01 D3 03 00 01 B0 00 01 00 00 00 12 + 00 13 00 CA 00 02 03 B6 00 00 00 12 00 04 00 00 + 07 A6 00 13 07 B0 00 14 07 B1 00 23 07 B2 03 DD + 00 00 00 0C 00 01 FF 00 13 00 00 00 01 07 00 CA + 03 DB 00 00 00 02 03 43 00 02 04 00 03 62 00 02 + 03 85 00 00 00 63 00 05 00 02 00 00 00 25 2A B4 + 00 ED BB 00 84 59 2A 2B B7 01 18 B9 01 E3 02 00 + B0 57 B8 01 5B B6 01 5C 12 25 12 32 B9 01 D3 03 + 00 01 B0 00 01 00 00 00 12 00 13 00 CA 00 02 03 + B6 00 00 00 12 00 04 00 00 07 C2 00 13 07 CD 00 + 14 07 CE 00 23 07 CF 03 DD 00 00 00 0C 00 01 FF + 00 13 00 00 00 01 07 00 CA 03 DB 00 00 00 02 03 + 74 10 08 04 5E 02 F4 00 01 03 85 00 00 00 1C 00 + 01 00 00 00 00 00 04 B2 00 DE B0 00 00 00 01 03 + B6 00 00 00 06 00 01 00 00 00 42 10 08 03 F1 03 + 32 00 01 03 85 00 00 00 1F 00 03 00 02 00 00 00 + 07 2A 1B 5A B5 00 F0 AC 00 00 00 01 03 B6 00 00 + 00 06 00 01 00 00 00 42 10 08 03 F1 03 30 00 02 + 03 85 00 00 01 8B 00 07 00 08 00 00 00 F2 2A 2B + 2C 2D 4E 4D 4C 59 4B 2B 2C 2D 3A 04 4E 4D 4C 01 + 3A 05 01 3A 06 BB 00 A3 59 2B B4 00 E5 12 66 B7 + 01 8C B6 01 8D 57 2B B7 01 82 59 3A 07 C6 00 3F + 19 07 B8 01 05 BB 00 92 59 2B B4 00 E5 BB 00 B6 + 59 B7 01 B2 19 07 B6 01 B5 12 51 B6 01 B5 B6 01 + B6 B7 01 28 59 3A 05 B8 01 31 3A 06 2B 2C 19 06 + 2D 19 04 12 65 04 B7 01 79 A7 00 13 B8 01 5B B6 + 01 5C 12 25 12 59 01 B9 01 D4 04 00 19 06 12 44 + B8 01 43 19 05 12 35 B8 01 42 A7 00 40 3A 07 B8 + 01 5B B6 01 5C 12 25 12 14 19 07 B9 01 D4 04 00 + 2B 19 07 19 05 B7 01 77 19 06 12 44 B8 01 43 19 + 05 12 35 B8 01 42 A7 00 14 4B 19 06 12 44 B8 01 + 43 19 05 12 35 B8 01 42 2A BF 2A B7 01 81 2A B7 + 01 80 2A 59 4C B4 00 E5 B2 00 DB 07 B2 00 DD B8 + 01 23 B8 01 0B B6 01 0E 9A 00 07 2A B7 01 84 B1 + 00 03 00 17 00 7E 00 8F 00 AD 00 17 00 7E 00 BB + 00 00 00 8F 00 AA 00 BB 00 00 00 02 03 B6 00 00 + 00 06 00 01 00 00 00 42 03 DD 00 00 00 63 00 06 + FF 00 6E 00 07 07 00 9E 07 00 9E 00 00 00 05 05 + 00 00 FF 00 0F 00 07 07 00 9E 00 00 00 00 07 00 + 92 07 00 93 00 00 FF 00 10 00 07 07 00 9E 07 00 + 9E 00 00 00 07 00 92 07 00 93 00 01 07 00 AD FF + 00 2B 00 07 00 00 00 00 00 07 00 92 07 00 93 00 + 01 07 00 B9 FF 00 10 00 01 07 00 9E 00 00 FA 00 + 24 03 99 00 00 00 04 00 01 00 AD 10 08 03 F1 03 + 28 00 01 03 85 00 00 00 1D 00 01 00 01 00 00 00 + 05 2A B4 00 E7 B0 00 00 00 01 03 B6 00 00 00 06 + 00 01 00 00 00 42 10 08 04 00 03 29 00 02 03 85 + 00 00 00 1D 00 01 00 01 00 00 00 05 2A B7 01 81 + B1 00 00 00 01 03 B6 00 00 00 06 00 01 00 00 00 + 42 03 99 00 00 00 04 00 01 00 AD 10 08 04 02 03 + 29 00 02 03 85 00 00 00 1D 00 01 00 01 00 00 00 + 05 2A B7 01 80 B1 00 00 00 01 03 B6 00 00 00 06 + 00 01 00 00 00 42 03 99 00 00 00 04 00 01 00 AD + 10 08 04 00 03 30 00 01 03 85 00 00 01 96 00 07 + 00 08 00 00 01 0C 2A 2B 2C 2D 4E 4D 4C 59 4B B7 + 01 82 59 3A 04 C6 00 EC 19 04 B8 01 03 01 3A 05 + 01 3A 06 B8 01 5B B6 01 5C 12 25 BB 00 B6 59 12 + 2B B7 01 B3 2D B6 01 B4 12 08 B6 01 B5 2C B6 01 + B9 B6 01 B5 B6 01 B6 B9 01 D3 03 00 2A B4 00 E1 + B6 01 CD B8 01 3F 3A 07 BB 00 B6 59 B7 01 B2 19 + 04 B6 01 B5 12 53 B6 01 B5 19 07 B6 01 B5 B6 01 + B6 3A 07 BB 00 92 59 2A B4 00 E5 19 07 B7 01 28 + 59 3A 05 B8 01 31 3A 06 2A 2B 19 06 2C 2D 12 68 + 03 B7 01 79 19 06 12 41 B8 01 43 19 05 12 37 B8 + 01 42 A7 00 40 3A 07 B8 01 5B B6 01 5C 12 25 12 + 15 19 07 B9 01 D4 04 00 2A 19 07 19 05 B7 01 77 + 19 06 12 41 B8 01 43 19 05 12 37 B8 01 42 A7 00 + 14 4B 19 06 12 41 B8 01 43 19 05 12 37 B8 01 42 + 2A BF 2A 19 04 10 40 B7 01 72 A7 00 27 3A 07 B8 + 01 5B B6 01 5C 12 25 12 17 19 07 B9 01 D4 04 00 + B1 B8 01 5B B6 01 5C 12 25 12 5A 01 B9 01 D4 04 + 00 B1 00 04 00 1D 00 8E 00 9F 00 AD 00 1D 00 8E + 00 CB 00 00 00 9F 00 BA 00 CB 00 00 00 DC 00 E4 + 00 E7 00 AD 00 02 03 B6 00 00 00 06 00 01 00 00 + 00 42 03 DD 00 00 00 4C 00 06 FF 00 9F 00 07 07 + 00 9E 00 00 00 07 00 B5 07 00 92 07 00 93 00 01 + 07 00 AD FF 00 2B 00 07 00 00 00 00 00 07 00 92 + 07 00 93 00 01 07 00 B9 FF 00 10 00 05 07 00 9E + 00 00 00 07 00 B5 00 00 FF 00 0A 00 00 00 01 07 + 00 AD 13 0F 10 08 04 35 03 26 00 01 03 85 00 00 + 00 1D 00 01 00 01 00 00 00 05 2A B4 00 EF B0 00 + 00 00 01 03 B6 00 00 00 06 00 01 00 00 00 42 10 + 08 04 37 03 2A 00 01 03 85 00 00 00 1D 00 01 00 + 01 00 00 00 05 2A B7 01 7F AC 00 00 00 01 03 B6 + 00 00 00 06 00 01 00 00 00 42 10 08 04 3C 03 27 + 00 01 03 85 00 00 00 1D 00 01 00 01 00 00 00 05 + 2A B4 00 E6 B0 00 00 00 01 03 B6 00 00 00 06 00 + 01 00 00 00 42 10 08 04 66 02 F1 00 01 03 85 00 + 00 00 1C 00 01 00 00 00 00 00 04 B2 00 DF B0 00 + 00 00 01 03 B6 00 00 00 06 00 01 00 00 00 42 10 + 08 03 F1 03 2D 00 01 03 85 00 00 00 1E 00 02 00 + 02 00 00 00 06 2A 2B B7 01 6E B0 00 00 00 01 03 + B6 00 00 00 06 00 01 00 00 00 42 00 08 03 76 02 + F5 00 01 03 85 00 00 00 6F 00 02 00 00 00 00 00 + 3F BB 00 9F 59 B7 01 88 B3 00 DB BB 00 83 59 B7 + 01 17 B3 00 DC BB 00 85 59 B7 01 19 B3 00 DD BB + 00 86 B7 01 1A 12 0B B8 01 D0 B3 00 DE 12 60 12 + 11 B8 01 BF B3 00 DF 12 10 B8 01 24 B3 00 E0 B1 + 00 00 00 01 03 B6 00 00 00 1E 00 07 00 00 00 7C + 00 0A 00 84 00 14 00 8B 00 1E 00 95 00 24 00 9C + 00 2C 00 9F 00 36 00 B5 00 01 03 DC 00 00 00 02 + 03 DC + minor version: 0 + major version: 50 + flags: ACC_FINAL, ACC_SUPER +Constant pool: + #1 = Integer 65536 + #2 = String #727 // + #3 = String #728 // \tat + #4 = String #729 // \n + #5 = String #730 // \r + #6 = String #731 // + #7 = String #732 // data for session ID + #8 = String #733 // \" from thread + #9 = String #734 // %d %s%n + #10 = String #735 // (\r\n|\n| ) + #11 = String #876 // ([\d|A-Z|a-z]{12}\-[\d|A-Z|a-z]{4}\-[\d|A-Z|a-z]{4}\-[\d|A-Z|a-z]{12}).+ + #12 = String #877 // - + #13 = String #878 // . + #14 = String #879 // ... + #15 = String #880 // .temp + #16 = String #881 // 0 + #17 = String #882 // 1 + #18 = String #883 // : + #19 = String #888 // A problem occurred while reading the Crashlytics log file. + #20 = String #889 // An error occurred in the fatal exception logger + #21 = String #890 // An error occurred in the non-fatal exception logger + #22 = String #891 // An error occurred in the uncaught exception handler + #23 = String #892 // An error occurred when trimming non-fatal files. + #24 = String #893 // Attempting to send crash report at time of crash... + #25 = String #894 // BeginSession + #26 = String #896 // Can't find + #27 = String #897 // Caused by: + #28 = String #898 // Checking for previous crash marker. + #29 = String #899 // Closing all open sessions. + #30 = String #900 // Closing session: + #31 = String #902 // Collecting + #32 = String #903 // Collecting SessionStart data for session ID + #33 = String #904 // Collecting session parts for ID + #34 = String #905 // Could not close log file: + #35 = String #906 // Could not create log file: + #36 = String #907 // Could not write stack trace + #37 = String #908 // Crashlytics + #38 = String #909 // Crashlytics Android SDK/%s + #39 = String #910 // Crashlytics Exception Handler + #40 = String #911 // Crashlytics Report Uploader + #41 = String #912 // Crashlytics completed exception processing. Invoking default exception handler. + #42 = String #913 // Crashlytics is handling uncaught exception \" + #43 = String #914 // Crashlytics is logging non-fatal exception \" + #44 = String #915 // Deleting all part files for invalid session: + #45 = String #916 // Deleting session file: + #46 = String #917 // Error closing session file stream in the presence of an exception + #47 = String #918 // Error flushing session file stream + #48 = String #919 // Error writting non-fatal to session. + #49 = String #920 // Exception thrown by CrashlyticsListener while notifying of previous crash. + #50 = String #922 // Executor is shut down because we're handling a fatal crash. + #51 = String #923 // Failed to close CLS file + #52 = String #924 // Failed to close begin session file. + #53 = String #925 // Failed to close fatal exception file output stream. + #54 = String #926 // Failed to close file input stream. + #55 = String #927 // Failed to close non-fatal file output stream. + #56 = String #928 // Failed to close session OS file. + #57 = String #929 // Failed to close session app file. + #58 = String #930 // Failed to close session device file. + #59 = String #931 // Failed to close session user file. + #60 = String #932 // Failed to close stack trace writer. + #61 = String #933 // Failed to create PrintWriter + #62 = String #934 // Failed to execute task. + #63 = String #935 // Failed to flush session device info. + #64 = String #936 // Failed to flush session user file. + #65 = String #937 // Failed to flush to non-fatal file. + #66 = String #938 // Failed to flush to session OS file. + #67 = String #939 // Failed to flush to session app file. + #68 = String #940 // Failed to flush to session begin file. + #69 = String #941 // Failed to write session file for session ID: + #70 = String #942 // Found Non Fatal for session ID %s in %s + #71 = String #943 // Found invalid session part file: + #72 = String #971 // No events present for session ID + #73 = String #972 // No log data to include with this event. + #74 = String #973 // No session begin files found. + #75 = String #974 // Opening an new session with ID + #76 = String #976 // Preferences requested not to collect custom logs. Aborting log file creation. + #77 = String #978 // Removing session part files for ID + #78 = String #979 // Session %s has fatal exception: %s + #79 = String #980 // Session %s has non-fatal exceptions: %s + #80 = String #981 // SessionApp + #81 = String #982 // SessionCrash + #82 = String #983 // SessionDevice + #83 = String #984 // SessionEvent + #84 = String #985 // SessionOS + #85 = String #986 // SessionUser + #86 = String #990 // There was a problem closing the Crashlytics log file. + #87 = String #991 // There was a problem writing to the Crashlytics log. + #88 = String #992 // Tried to include a file that doesn't exist: + #89 = String #993 // Tried to write a fatal exception while no session was open. + #90 = String #994 // Tried to write a non-fatal exception while no session was open. + #91 = String #995 // Trimming down to %d logged exceptions. + #92 = String #996 // Trimming open session file: + #93 = String #998 // UTF-8 + #94 = String #999 // Unable to close session. Settings are not loaded. + #95 = String #1000 // Unregistering power receivers. + #96 = String #1001 // X-CRASHLYTICS-SEND-FLAGS + #97 = String #1011 // android.intent.action.ACTION_POWER_CONNECTED + #98 = String #1012 // android.intent.action.ACTION_POWER_DISCONNECTED + #99 = String #1027 // com.crashlytics.CollectCustomKeys + #100 = String #1028 // com.crashlytics.CollectCustomLogs + #101 = String #1072 // crash + #102 = String #1073 // crash_marker + #103 = String #1074 // crashlytics-userlog- + #104 = String #1081 // error + #105 = String #1120 // initialization_marker + #106 = String #1121 // invalidClsFiles + #107 = String #1182 // null + #108 = Class #1003 // "[B" + #109 = Class #1004 // "[I" + #110 = Class #1005 // "[Ljava/io/File;" + #111 = Class #1006 // "[Ljava/lang/StackTraceElement;" + #112 = Class #1007 // "[Ljava/lang/String;" + #113 = Class #1013 // android/app/ActivityManager$RunningAppProcessInfo + #114 = Class #1014 // android/content/Context + #115 = Class #1015 // android/content/IntentFilter + #116 = Class #1016 // android/content/res/Configuration + #117 = Class #1017 // android/content/res/Resources + #118 = Class #1018 // android/os/Build + #119 = Class #1019 // android/os/Build$VERSION + #120 = Class #1020 // android/os/Environment + #121 = Class #1021 // android/os/StatFs + #122 = Class #1029 // com/crashlytics/android/A + #123 = Class #1030 // com/crashlytics/android/B + #124 = Class #1031 // com/crashlytics/android/C + #125 = Class #1032 // com/crashlytics/android/Crashlytics + #126 = Class #1033 // com/crashlytics/android/CrashlyticsListener + #127 = Class #1034 // com/crashlytics/android/D + #128 = Class #1035 // com/crashlytics/android/E + #129 = Class #1036 // com/crashlytics/android/F + #130 = Class #1037 // com/crashlytics/android/G + #131 = Class #1038 // com/crashlytics/android/H + #132 = Class #1039 // com/crashlytics/android/I + #133 = Class #1040 // com/crashlytics/android/J + #134 = Class #1041 // com/crashlytics/android/K + #135 = Class #1042 // com/crashlytics/android/L + #136 = Class #1043 // com/crashlytics/android/M + #137 = Class #1044 // com/crashlytics/android/N + #138 = Class #1045 // com/crashlytics/android/O + #139 = Class #1046 // com/crashlytics/android/P + #140 = Class #1047 // com/crashlytics/android/Q + #141 = Class #1048 // com/crashlytics/android/R + #142 = Class #1049 // com/crashlytics/android/S + #143 = Class #1050 // com/crashlytics/android/b + #144 = Class #1051 // com/crashlytics/android/d + #145 = Class #1052 // com/crashlytics/android/e + #146 = Class #1053 // com/crashlytics/android/f + #147 = Class #1054 // com/crashlytics/android/h + #148 = Class #1055 // com/crashlytics/android/internal/aR + #149 = Class #1056 // com/crashlytics/android/internal/ab + #150 = Class #1057 // com/crashlytics/android/internal/ah + #151 = Class #1058 // com/crashlytics/android/internal/ai + #152 = Class #1059 // com/crashlytics/android/internal/ao + #153 = Class #1060 // com/crashlytics/android/internal/ap + #154 = Class #1061 // com/crashlytics/android/internal/aq + #155 = Class #1062 // com/crashlytics/android/internal/q + #156 = Class #1063 // com/crashlytics/android/internal/r + #157 = Class #1064 // com/crashlytics/android/internal/v + #158 = Class #1065 // com/crashlytics/android/v + #159 = Class #1066 // com/crashlytics/android/w + #160 = Class #1067 // com/crashlytics/android/x + #161 = Class #1068 // com/crashlytics/android/y + #162 = Class #1069 // com/crashlytics/android/z + #163 = Class #1127 // java/io/File + #164 = Class #1128 // java/io/FileInputStream + #165 = Class #1129 // java/io/FileOutputStream + #166 = Class #1130 // java/io/FilenameFilter + #167 = Class #1131 // java/io/IOException + #168 = Class #1132 // java/io/OutputStream + #169 = Class #1133 // java/io/PrintWriter + #170 = Class #1134 // java/io/Writer + #171 = Class #1135 // java/lang/Boolean + #172 = Class #1136 // java/lang/Class + #173 = Class #1137 // java/lang/Exception + #174 = Class #1138 // java/lang/Integer + #175 = Class #1139 // java/lang/Long + #176 = Class #1140 // java/lang/Math + #177 = Class #1141 // java/lang/Object + #178 = Class #1142 // java/lang/Runnable + #179 = Class #1143 // java/lang/Runtime + #180 = Class #1144 // java/lang/StackTraceElement + #181 = Class #1145 // java/lang/String + #182 = Class #1146 // java/lang/StringBuilder + #183 = Class #1147 // java/lang/Thread + #184 = Class #1148 // java/lang/Thread$UncaughtExceptionHandler + #185 = Class #1149 // java/lang/Throwable + #186 = Class #1150 // java/util/Arrays + #187 = Class #1151 // java/util/Collections + #188 = Class #1152 // java/util/Date + #189 = Class #1153 // java/util/HashSet + #190 = Class #1154 // java/util/Iterator + #191 = Class #1155 // java/util/LinkedList + #192 = Class #1156 // java/util/List + #193 = Class #1157 // java/util/Locale + #194 = Class #1158 // java/util/Map + #195 = Class #1159 // java/util/Map$Entry + #196 = Class #1160 // java/util/Set + #197 = Class #1161 // java/util/TreeMap + #198 = Class #1162 // java/util/UUID + #199 = Class #1163 // java/util/concurrent/Callable + #200 = Class #1164 // java/util/concurrent/ExecutorService + #201 = Class #1165 // java/util/concurrent/Future + #202 = Class #1166 // java/util/concurrent/RejectedExecutionException + #203 = Class #1167 // java/util/concurrent/atomic/AtomicBoolean + #204 = Class #1168 // java/util/concurrent/atomic/AtomicInteger + #205 = Class #1169 // java/util/regex/Matcher + #206 = Class #1170 // java/util/regex/Pattern + #207 = Long 1000l + #209 = Fieldref #113.#662 // android/app/ActivityManager$RunningAppProcessInfo.importance:I + #210 = Fieldref #116.#690 // android/content/res/Configuration.orientation:I + #211 = Fieldref #118.#506 // android/os/Build.MANUFACTURER:Ljava/lang/String; + #212 = Fieldref #118.#507 // android/os/Build.MODEL:Ljava/lang/String; + #213 = Fieldref #118.#508 // android/os/Build.PRODUCT:Ljava/lang/String; + #214 = Fieldref #119.#505 // android/os/Build$VERSION.CODENAME:Ljava/lang/String; + #215 = Fieldref #119.#509 // android/os/Build$VERSION.RELEASE:Ljava/lang/String; + #216 = Fieldref #148.#567 // com/crashlytics/android/internal/aR.a:I + #217 = Fieldref #149.#569 // com/crashlytics/android/internal/ab.a:Ljava/util/Comparator; + #218 = Fieldref #153.#620 // com/crashlytics/android/internal/ap.f:I + #219 = Fieldref #158.#568 // com/crashlytics/android/v.a:Ljava/io/FilenameFilter; + #220 = Fieldref #158.#591 // com/crashlytics/android/v.b:Ljava/util/Comparator; + #221 = Fieldref #158.#599 // com/crashlytics/android/v.c:Ljava/util/Comparator; + #222 = Fieldref #158.#607 // com/crashlytics/android/v.d:Ljava/util/regex/Pattern; + #223 = Fieldref #158.#612 // com/crashlytics/android/v.e:Ljava/util/Map; + #224 = Fieldref #158.#621 // com/crashlytics/android/v.f:Lcom/crashlytics/android/d; + #225 = Fieldref #158.#625 // com/crashlytics/android/v.g:Ljava/util/concurrent/atomic/AtomicInteger; + #226 = Fieldref #158.#659 // com/crashlytics/android/v.h:Ljava/util/concurrent/atomic/AtomicBoolean; + #227 = Fieldref #158.#661 // com/crashlytics/android/v.i:I + #228 = Fieldref #158.#668 // com/crashlytics/android/v.j:Ljava/lang/Thread$UncaughtExceptionHandler; + #229 = Fieldref #158.#670 // com/crashlytics/android/v.k:Ljava/io/File; + #230 = Fieldref #158.#672 // com/crashlytics/android/v.l:Ljava/io/File; + #231 = Fieldref #158.#679 // com/crashlytics/android/v.m:Ljava/util/concurrent/atomic/AtomicBoolean; + #232 = Fieldref #158.#685 // com/crashlytics/android/v.n:Ljava/lang/String; + #233 = Fieldref #158.#689 // com/crashlytics/android/v.o:Landroid/content/BroadcastReceiver; + #234 = Fieldref #158.#692 // com/crashlytics/android/v.p:Landroid/content/BroadcastReceiver; + #235 = Fieldref #158.#694 // com/crashlytics/android/v.q:Lcom/crashlytics/android/d; + #236 = Fieldref #158.#697 // com/crashlytics/android/v.r:Lcom/crashlytics/android/d; + #237 = Fieldref #158.#704 // com/crashlytics/android/v.s:Ljava/util/concurrent/ExecutorService; + #238 = Fieldref #158.#714 // com/crashlytics/android/v.t:Landroid/app/ActivityManager$RunningAppProcessInfo; + #239 = Fieldref #158.#716 // com/crashlytics/android/v.u:Lcom/crashlytics/android/internal/aq; + #240 = Fieldref #158.#719 // com/crashlytics/android/v.v:Z + #241 = Fieldref #158.#723 // com/crashlytics/android/v.w:[Ljava/lang/Thread; + #242 = Fieldref #158.#725 // com/crashlytics/android/v.x:Ljava/util/List; + #243 = Fieldref #158.#726 // com/crashlytics/android/v.y:[Ljava/lang/StackTraceElement; + #244 = Fieldref #193.#510 // java/util/Locale.US:Ljava/util/Locale; + #245 = Methodref #114.#648 // android/content/Context.getPackageCodePath:()Ljava/lang/String; + #246 = Methodref #114.#650 // android/content/Context.getResources:()Landroid/content/res/Resources; + #247 = Methodref #114.#700 // android/content/Context.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; + #248 = Methodref #114.#718 // android/content/Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V + #249 = Methodref #115.#501 // android/content/IntentFilter."":(Ljava/lang/String;)V + #250 = Methodref #117.#638 // android/content/res/Resources.getConfiguration:()Landroid/content/res/Configuration; + #251 = Methodref #120.#640 // android/os/Environment.getDataDirectory:()Ljava/io/File; + #252 = Methodref #121.#501 // android/os/StatFs."":(Ljava/lang/String;)V + #253 = Methodref #121.#632 // android/os/StatFs.getBlockCount:()I + #254 = Methodref #121.#633 // android/os/StatFs.getBlockSize:()I + #255 = Methodref #122.#489 // com/crashlytics/android/A."":(Lcom/crashlytics/android/v;)V + #256 = Methodref #123.#489 // com/crashlytics/android/B."":(Lcom/crashlytics/android/v;)V + #257 = Methodref #124.#489 // com/crashlytics/android/C."":(Lcom/crashlytics/android/v;)V + #258 = Methodref #125.#513 // com/crashlytics/android/Crashlytics.a:()Ljava/util/Map; + #259 = Methodref #125.#551 // com/crashlytics/android/Crashlytics.a:(Ljava/lang/String;)V + #260 = Methodref #125.#575 // com/crashlytics/android/Crashlytics.b:()Lcom/crashlytics/android/internal/ao; + #261 = Methodref #125.#588 // com/crashlytics/android/Crashlytics.b:(Ljava/lang/String;)V + #262 = Methodref #125.#604 // com/crashlytics/android/Crashlytics.d:()Ljava/lang/String; + #263 = Methodref #125.#609 // com/crashlytics/android/Crashlytics.e:()Ljava/lang/String; + #264 = Methodref #125.#616 // com/crashlytics/android/Crashlytics.f:()Ljava/lang/String; + #265 = Methodref #125.#623 // com/crashlytics/android/Crashlytics.g:()Ljava/lang/String; + #266 = Methodref #125.#639 // com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + #267 = Methodref #125.#642 // com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + #268 = Methodref #125.#655 // com/crashlytics/android/Crashlytics.getVersion:()Ljava/lang/String; + #269 = Methodref #125.#658 // com/crashlytics/android/Crashlytics.h:()Ljava/lang/String; + #270 = Methodref #125.#667 // com/crashlytics/android/Crashlytics.j:()Z + #271 = Methodref #125.#677 // com/crashlytics/android/Crashlytics.m:()Ljava/lang/String; + #272 = Methodref #125.#684 // com/crashlytics/android/Crashlytics.n:()Ljava/lang/String; + #273 = Methodref #125.#687 // com/crashlytics/android/Crashlytics.o:()Ljava/lang/String; + #274 = Methodref #125.#696 // com/crashlytics/android/Crashlytics.r:()Lcom/crashlytics/android/internal/aR; + #275 = Methodref #127.#491 // com/crashlytics/android/D."":(Lcom/crashlytics/android/v;Ljava/io/File;)V + #276 = Methodref #128.#489 // com/crashlytics/android/E."":(Lcom/crashlytics/android/v;)V + #277 = Methodref #129.#493 // com/crashlytics/android/F."":(Lcom/crashlytics/android/v;Ljava/lang/String;)V + #278 = Methodref #130.#492 // com/crashlytics/android/G."":(Lcom/crashlytics/android/v;Ljava/lang/Runnable;)V + #279 = Methodref #131.#485 // com/crashlytics/android/H."":()V + #280 = Methodref #132.#495 // com/crashlytics/android/I."":(Lcom/crashlytics/android/v;Ljava/util/concurrent/Callable;)V + #281 = Methodref #133.#485 // com/crashlytics/android/J."":()V + #282 = Methodref #134.#485 // com/crashlytics/android/K."":()V + #283 = Methodref #135.#489 // com/crashlytics/android/L."":(Lcom/crashlytics/android/v;)V + #284 = Methodref #136.#489 // com/crashlytics/android/M."":(Lcom/crashlytics/android/v;)V + #285 = Methodref #137.#494 // com/crashlytics/android/N."":(Lcom/crashlytics/android/v;Ljava/util/Date;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #286 = Methodref #138.#489 // com/crashlytics/android/O."":(Lcom/crashlytics/android/v;)V + #287 = Methodref #139.#494 // com/crashlytics/android/P."":(Lcom/crashlytics/android/v;Ljava/util/Date;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #288 = Methodref #140.#486 // com/crashlytics/android/Q."":(B)V + #289 = Methodref #141.#501 // com/crashlytics/android/R."":(Ljava/lang/String;)V + #290 = Methodref #142.#501 // com/crashlytics/android/S."":(Ljava/lang/String;)V + #291 = Methodref #143.#542 // com/crashlytics/android/b.a:(Ljava/io/File;Ljava/io/FilenameFilter;ILjava/util/Comparator;)V + #292 = Methodref #144.#548 // com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + #293 = Methodref #144.#566 // com/crashlytics/android/d.a:([BII)Lcom/crashlytics/android/d; + #294 = Methodref #145.#488 // com/crashlytics/android/e."":(Lcom/crashlytics/android/internal/ao;)V + #295 = Methodref #145.#715 // com/crashlytics/android/e.toString:()Ljava/lang/String; + #296 = Methodref #146.#498 // com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + #297 = Methodref #146.#514 // com/crashlytics/android/f.a:()V + #298 = Methodref #147.#516 // com/crashlytics/android/h.a:(I)I + #299 = Methodref #147.#518 // com/crashlytics/android/h.a:(IF)V + #300 = Methodref #147.#519 // com/crashlytics/android/h.a:(II)V + #301 = Methodref #147.#520 // com/crashlytics/android/h.a:(IJ)V + #302 = Methodref #147.#521 // com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + #303 = Methodref #147.#523 // com/crashlytics/android/h.a:(ILjava/lang/String;)V + #304 = Methodref #147.#524 // com/crashlytics/android/h.a:(IZ)V + #305 = Methodref #147.#545 // com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + #306 = Methodref #147.#565 // com/crashlytics/android/h.a:([B)V + #307 = Methodref #147.#579 // com/crashlytics/android/h.b:(I)V + #308 = Methodref #147.#580 // com/crashlytics/android/h.b:(IF)I + #309 = Methodref #147.#581 // com/crashlytics/android/h.b:(II)V + #310 = Methodref #147.#582 // com/crashlytics/android/h.b:(IJ)I + #311 = Methodref #147.#583 // com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + #312 = Methodref #147.#584 // com/crashlytics/android/h.b:(IZ)I + #313 = Methodref #147.#595 // com/crashlytics/android/h.c:(I)I + #314 = Methodref #147.#596 // com/crashlytics/android/h.c:(II)V + #315 = Methodref #147.#606 // com/crashlytics/android/h.d:(II)I + #316 = Methodref #147.#611 // com/crashlytics/android/h.e:(II)I + #317 = Methodref #147.#619 // com/crashlytics/android/h.f:(II)I + #318 = Methodref #147.#624 // com/crashlytics/android/h.g:(II)V + #319 = Methodref #149.#517 // com/crashlytics/android/internal/ab.a:(I)Ljava/lang/String; + #320 = Methodref #149.#525 // com/crashlytics/android/internal/ab.a:(Landroid/content/Context;)J + #321 = Methodref #149.#526 // com/crashlytics/android/internal/ab.a:(Landroid/content/Context;Ljava/lang/String;Z)Z + #322 = Methodref #149.#540 // com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + #323 = Methodref #149.#544 // com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + #324 = Methodref #149.#553 // com/crashlytics/android/internal/ab.a:(Ljava/lang/String;Landroid/content/Context;)Landroid/app/ActivityManager$RunningAppProcessInfo; + #325 = Methodref #149.#564 // com/crashlytics/android/internal/ab.a:(Z)I + #326 = Methodref #149.#574 // com/crashlytics/android/internal/ab.b:()I + #327 = Methodref #149.#585 // com/crashlytics/android/internal/ab.b:(Landroid/content/Context;)F + #328 = Methodref #149.#586 // com/crashlytics/android/internal/ab.b:(Ljava/lang/String;)J + #329 = Methodref #149.#593 // com/crashlytics/android/internal/ab.c:()J + #330 = Methodref #149.#597 // com/crashlytics/android/internal/ab.c:(Landroid/content/Context;)Z + #331 = Methodref #149.#605 // com/crashlytics/android/internal/ab.d:()Z + #332 = Methodref #149.#610 // com/crashlytics/android/internal/ab.e:()Z + #333 = Methodref #149.#615 // com/crashlytics/android/internal/ab.f:()I + #334 = Methodref #150.#550 // com/crashlytics/android/internal/ah.a:(Ljava/lang/String;)Ljava/util/concurrent/ExecutorService; + #335 = Methodref #151.#511 // com/crashlytics/android/internal/ai.a:()I + #336 = Methodref #151.#549 // com/crashlytics/android/internal/ai.a:(Ljava/lang/String;)Lcom/crashlytics/android/internal/ai; + #337 = Methodref #152.#577 // com/crashlytics/android/internal/ao.b:()Ljava/lang/String; + #338 = Methodref #152.#609 // com/crashlytics/android/internal/ao.e:()Ljava/lang/String; + #339 = Methodref #152.#617 // com/crashlytics/android/internal/ao.f:()Ljava/util/Map; + #340 = Methodref #154.#497 // com/crashlytics/android/internal/aq."":(Ljava/io/File;)V + #341 = Methodref #154.#511 // com/crashlytics/android/internal/aq.a:()I + #342 = Methodref #154.#539 // com/crashlytics/android/internal/aq.a:(Lcom/crashlytics/android/internal/au;)V + #343 = Methodref #154.#565 // com/crashlytics/android/internal/aq.a:([B)V + #344 = Methodref #154.#578 // com/crashlytics/android/internal/aq.b:()Z + #345 = Methodref #154.#594 // com/crashlytics/android/internal/aq.c:()V + #346 = Methodref #156.#527 // com/crashlytics/android/internal/r.a:(Landroid/content/Context;Z)Ljava/lang/String; + #347 = Methodref #157.#512 // com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + #348 = Methodref #157.#576 // com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + #349 = Methodref #157.#618 // com/crashlytics/android/internal/v.f:()Z + #350 = Methodref #157.#657 // com/crashlytics/android/internal/v.h:()Ljava/io/File; + #351 = Methodref #158.#502 // com/crashlytics/android/v."":(Ljava/lang/Thread$UncaughtExceptionHandler;Lcom/crashlytics/android/CrashlyticsListener;Ljava/util/concurrent/ExecutorService;Ljava/lang/String;)V + #352 = Methodref #158.#515 // com/crashlytics/android/v.a:(FIZIJJ)I + #353 = Methodref #158.#522 // com/crashlytics/android/v.a:(ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;IJJZLjava/util/Map;ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;)I + #354 = Methodref #158.#528 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/f;)V + #355 = Methodref #158.#529 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;ILjava/lang/StackTraceElement;Z)V + #356 = Methodref #158.#530 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;Ljava/io/File;)V + #357 = Methodref #158.#531 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;Ljava/lang/String;)V + #358 = Methodref #158.#532 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #359 = Methodref #158.#533 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)V + #360 = Methodref #158.#534 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;Ljava/lang/Throwable;II)V + #361 = Methodref #158.#535 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;Ljava/util/Map;)V + #362 = Methodref #158.#536 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/h;[Ljava/io/File;Ljava/lang/String;)V + #363 = Methodref #158.#537 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/internal/ap;Ljava/lang/String;)I + #364 = Methodref #158.#538 // com/crashlytics/android/v.a:(Lcom/crashlytics/android/internal/aq;)Lcom/crashlytics/android/d; + #365 = Methodref #158.#541 // com/crashlytics/android/v.a:(Ljava/io/File;)Ljava/lang/String; + #366 = Methodref #158.#543 // com/crashlytics/android/v.a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + #367 = Methodref #158.#546 // com/crashlytics/android/v.a:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + #368 = Methodref #158.#547 // com/crashlytics/android/v.a:(Ljava/lang/StackTraceElement;Z)I + #369 = Methodref #158.#551 // com/crashlytics/android/v.a:(Ljava/lang/String;)V + #370 = Methodref #158.#552 // com/crashlytics/android/v.a:(Ljava/lang/String;I)V + #371 = Methodref #158.#554 // com/crashlytics/android/v.a:(Ljava/lang/String;Ljava/lang/String;)I + #372 = Methodref #158.#557 // com/crashlytics/android/v.a:(Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + #373 = Methodref #158.#558 // com/crashlytics/android/v.a:(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)I + #374 = Methodref #158.#559 // com/crashlytics/android/v.a:(Ljava/lang/Throwable;I)I + #375 = Methodref #158.#560 // com/crashlytics/android/v.a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + #376 = Methodref #158.#561 // com/crashlytics/android/v.a:(Ljava/lang/Throwable;Ljava/io/Writer;)V + #377 = Methodref #158.#562 // com/crashlytics/android/v.a:(Ljava/util/Date;Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/lang/String;Z)V + #378 = Methodref #158.#563 // com/crashlytics/android/v.a:(Ljava/util/concurrent/Callable;)Ljava/lang/Object; + #379 = Methodref #158.#587 // com/crashlytics/android/v.b:(Ljava/lang/String;)Lcom/crashlytics/android/d; + #380 = Methodref #158.#589 // com/crashlytics/android/v.b:(Ljava/lang/Thread;Ljava/lang/Throwable;)I + #381 = Methodref #158.#590 // com/crashlytics/android/v.b:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + #382 = Methodref #158.#598 // com/crashlytics/android/v.c:(Ljava/lang/String;)V + #383 = Methodref #158.#669 // com/crashlytics/android/v.k:()Z + #384 = Methodref #158.#671 // com/crashlytics/android/v.l:()V + #385 = Methodref #158.#678 // com/crashlytics/android/v.m:()V + #386 = Methodref #158.#684 // com/crashlytics/android/v.n:()Ljava/lang/String; + #387 = Methodref #158.#688 // com/crashlytics/android/v.o:()[Ljava/io/File; + #388 = Methodref #158.#691 // com/crashlytics/android/v.p:()V + #389 = Methodref #158.#693 // com/crashlytics/android/v.q:()I + #390 = Methodref #158.#695 // com/crashlytics/android/v.r:()I + #391 = Methodref #158.#703 // com/crashlytics/android/v.s:()I + #392 = Methodref #159.#485 // com/crashlytics/android/w."":()V + #393 = Methodref #160.#490 // com/crashlytics/android/x."":(Lcom/crashlytics/android/v;JLjava/lang/String;)V + #394 = Methodref #161.#496 // com/crashlytics/android/y."":(Lcom/crashlytics/android/v;[B[I)V + #395 = Methodref #162.#489 // com/crashlytics/android/z."":(Lcom/crashlytics/android/v;)V + #396 = Methodref #163.#498 // java/io/File."":(Ljava/io/File;Ljava/lang/String;)V + #397 = Methodref #163.#603 // java/io/File.createNewFile:()Z + #398 = Methodref #163.#608 // java/io/File.delete:()Z + #399 = Methodref #163.#614 // java/io/File.exists:()Z + #400 = Methodref #163.#647 // java/io/File.getName:()Ljava/lang/String; + #401 = Methodref #163.#649 // java/io/File.getPath:()Ljava/lang/String; + #402 = Methodref #163.#663 // java/io/File.isDirectory:()Z + #403 = Methodref #163.#674 // java/io/File.length:()J + #404 = Methodref #163.#675 // java/io/File.listFiles:()[Ljava/io/File; + #405 = Methodref #163.#676 // java/io/File.listFiles:(Ljava/io/FilenameFilter;)[Ljava/io/File; + #406 = Methodref #164.#497 // java/io/FileInputStream."":(Ljava/io/File;)V + #407 = Methodref #164.#699 // java/io/FileInputStream.read:([BII)I + #408 = Methodref #169.#499 // java/io/PrintWriter."":(Ljava/io/OutputStream;)V + #409 = Methodref #170.#724 // java/io/Writer.write:(Ljava/lang/String;)V + #410 = Methodref #171.#592 // java/lang/Boolean.booleanValue:()Z + #411 = Methodref #171.#722 // java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean; + #412 = Methodref #172.#647 // java/lang/Class.getName:()Ljava/lang/String; + #413 = Methodref #174.#720 // java/lang/Integer.valueOf:(I)Ljava/lang/Integer; + #414 = Methodref #175.#721 // java/lang/Long.valueOf:(J)Ljava/lang/Long; + #415 = Methodref #176.#682 // java/lang/Math.max:(II)I + #416 = Methodref #176.#683 // java/lang/Math.min:(II)I + #417 = Methodref #177.#485 // java/lang/Object."":()V + #418 = Methodref #177.#636 // java/lang/Object.getClass:()Ljava/lang/Class; + #419 = Methodref #179.#573 // java/lang/Runtime.availableProcessors:()I + #420 = Methodref #179.#651 // java/lang/Runtime.getRuntime:()Ljava/lang/Runtime; + #421 = Methodref #180.#637 // java/lang/StackTraceElement.getClassName:()Ljava/lang/String; + #422 = Methodref #180.#641 // java/lang/StackTraceElement.getFileName:()Ljava/lang/String; + #423 = Methodref #180.#644 // java/lang/StackTraceElement.getLineNumber:()I + #424 = Methodref #180.#646 // java/lang/StackTraceElement.getMethodName:()Ljava/lang/String; + #425 = Methodref #180.#665 // java/lang/StackTraceElement.isNativeMethod:()Z + #426 = Methodref #180.#715 // java/lang/StackTraceElement.toString:()Ljava/lang/String; + #427 = Methodref #181.#622 // java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + #428 = Methodref #181.#634 // java/lang/String.getBytes:(Ljava/lang/String;)[B + #429 = Methodref #181.#673 // java/lang/String.length:()I + #430 = Methodref #181.#701 // java/lang/String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + #431 = Methodref #181.#702 // java/lang/String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + #432 = Methodref #181.#712 // java/lang/String.substring:(I)Ljava/lang/String; + #433 = Methodref #181.#713 // java/lang/String.substring:(II)Ljava/lang/String; + #434 = Methodref #182.#485 // java/lang/StringBuilder."":()V + #435 = Methodref #182.#501 // java/lang/StringBuilder."":(Ljava/lang/String;)V + #436 = Methodref #182.#571 // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + #437 = Methodref #182.#572 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + #438 = Methodref #182.#715 // java/lang/StringBuilder.toString:()Ljava/lang/String; + #439 = Methodref #183.#500 // java/lang/Thread."":(Ljava/lang/Runnable;Ljava/lang/String;)V + #440 = Methodref #183.#629 // java/lang/Thread.getAllStackTraces:()Ljava/util/Map; + #441 = Methodref #183.#647 // java/lang/Thread.getName:()Ljava/lang/String; + #442 = Methodref #183.#709 // java/lang/Thread.start:()V + #443 = Methodref #185.#635 // java/lang/Throwable.getCause:()Ljava/lang/Throwable; + #444 = Methodref #185.#645 // java/lang/Throwable.getLocalizedMessage:()Ljava/lang/String; + #445 = Methodref #185.#652 // java/lang/Throwable.getStackTrace:()[Ljava/lang/StackTraceElement; + #446 = Methodref #186.#708 // java/util/Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V + #447 = Methodref #187.#706 // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map; + #448 = Methodref #188.#485 // java/util/Date."":()V + #449 = Methodref #188.#653 // java/util/Date.getTime:()J + #450 = Methodref #189.#485 // java/util/HashSet."":()V + #451 = Methodref #191.#485 // java/util/LinkedList."":()V + #452 = Methodref #197.#485 // java/util/TreeMap."":()V + #453 = Methodref #197.#503 // java/util/TreeMap."":(Ljava/util/Map;)V + #454 = Methodref #198.#698 // java/util/UUID.randomUUID:()Ljava/util/UUID; + #455 = Methodref #198.#715 // java/util/UUID.toString:()Ljava/lang/String; + #456 = Methodref #203.#504 // java/util/concurrent/atomic/AtomicBoolean."":(Z)V + #457 = Methodref #203.#627 // java/util/concurrent/atomic/AtomicBoolean.get:()Z + #458 = Methodref #203.#631 // java/util/concurrent/atomic/AtomicBoolean.getAndSet:(Z)Z + #459 = Methodref #203.#705 // java/util/concurrent/atomic/AtomicBoolean.set:(Z)V + #460 = Methodref #204.#487 // java/util/concurrent/atomic/AtomicInteger."":(I)V + #461 = Methodref #204.#630 // java/util/concurrent/atomic/AtomicInteger.getAndIncrement:()I + #462 = Methodref #205.#656 // java/util/regex/Matcher.group:(I)Ljava/lang/String; + #463 = Methodref #205.#681 // java/util/regex/Matcher.matches:()Z + #464 = Methodref #206.#600 // java/util/regex/Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern; + #465 = Methodref #206.#680 // java/util/regex/Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; + #466 = InterfaceMethodref #126.#602 // com/crashlytics/android/CrashlyticsListener.crashlyticsDidDetectCrashDuringPreviousExecution:()V + #467 = InterfaceMethodref #155.#555 // com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + #468 = InterfaceMethodref #155.#556 // com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + #469 = InterfaceMethodref #184.#717 // java/lang/Thread$UncaughtExceptionHandler.uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V + #470 = InterfaceMethodref #190.#660 // java/util/Iterator.hasNext:()Z + #471 = InterfaceMethodref #190.#686 // java/util/Iterator.next:()Ljava/lang/Object; + #472 = InterfaceMethodref #192.#570 // java/util/List.add:(Ljava/lang/Object;)Z + #473 = InterfaceMethodref #192.#628 // java/util/List.get:(I)Ljava/lang/Object; + #474 = InterfaceMethodref #194.#613 // java/util/Map.entrySet:()Ljava/util/Set; + #475 = InterfaceMethodref #194.#664 // java/util/Map.isEmpty:()Z + #476 = InterfaceMethodref #194.#707 // java/util/Map.size:()I + #477 = InterfaceMethodref #195.#643 // java/util/Map$Entry.getKey:()Ljava/lang/Object; + #478 = InterfaceMethodref #195.#654 // java/util/Map$Entry.getValue:()Ljava/lang/Object; + #479 = InterfaceMethodref #196.#570 // java/util/Set.add:(Ljava/lang/Object;)Z + #480 = InterfaceMethodref #196.#601 // java/util/Set.contains:(Ljava/lang/Object;)Z + #481 = InterfaceMethodref #196.#666 // java/util/Set.iterator:()Ljava/util/Iterator; + #482 = InterfaceMethodref #200.#710 // java/util/concurrent/ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + #483 = InterfaceMethodref #200.#711 // java/util/concurrent/ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + #484 = InterfaceMethodref #201.#626 // java/util/concurrent/Future.get:()Ljava/lang/Object; + #485 = NameAndType #887:#757 // "":()V + #486 = NameAndType #887:#761 // "":(B)V + #487 = NameAndType #887:#767 // "":(I)V + #488 = NameAndType #887:#801 // "":(Lcom/crashlytics/android/internal/ao;)V + #489 = NameAndType #887:#809 // "":(Lcom/crashlytics/android/v;)V + #490 = NameAndType #887:#811 // "":(Lcom/crashlytics/android/v;JLjava/lang/String;)V + #491 = NameAndType #887:#812 // "":(Lcom/crashlytics/android/v;Ljava/io/File;)V + #492 = NameAndType #887:#814 // "":(Lcom/crashlytics/android/v;Ljava/lang/Runnable;)V + #493 = NameAndType #887:#815 // "":(Lcom/crashlytics/android/v;Ljava/lang/String;)V + #494 = NameAndType #887:#816 // "":(Lcom/crashlytics/android/v;Ljava/util/Date;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #495 = NameAndType #887:#817 // "":(Lcom/crashlytics/android/v;Ljava/util/concurrent/Callable;)V + #496 = NameAndType #887:#819 // "":(Lcom/crashlytics/android/v;[B[I)V + #497 = NameAndType #887:#822 // "":(Ljava/io/File;)V + #498 = NameAndType #887:#824 // "":(Ljava/io/File;Ljava/lang/String;)V + #499 = NameAndType #887:#828 // "":(Ljava/io/OutputStream;)V + #500 = NameAndType #887:#836 // "":(Ljava/lang/Runnable;Ljava/lang/String;)V + #501 = NameAndType #887:#844 // "":(Ljava/lang/String;)V + #502 = NameAndType #887:#853 // "":(Ljava/lang/Thread$UncaughtExceptionHandler;Lcom/crashlytics/android/CrashlyticsListener;Ljava/util/concurrent/ExecutorService;Ljava/lang/String;)V + #503 = NameAndType #887:#864 // "":(Ljava/util/Map;)V + #504 = NameAndType #887:#869 // "":(Z)V + #505 = NameAndType #895:#953 // CODENAME:Ljava/lang/String; + #506 = NameAndType #969:#953 // MANUFACTURER:Ljava/lang/String; + #507 = NameAndType #970:#953 // MODEL:Ljava/lang/String; + #508 = NameAndType #975:#953 // PRODUCT:Ljava/lang/String; + #509 = NameAndType #977:#953 // RELEASE:Ljava/lang/String; + #510 = NameAndType #997:#961 // US:Ljava/util/Locale; + #511 = NameAndType #1009:#736 // a:()I + #512 = NameAndType #1009:#745 // a:()Lcom/crashlytics/android/internal/v; + #513 = NameAndType #1009:#753 // a:()Ljava/util/Map; + #514 = NameAndType #1009:#757 // a:()V + #515 = NameAndType #1009:#762 // a:(FIZIJJ)I + #516 = NameAndType #1009:#763 // a:(I)I + #517 = NameAndType #1009:#766 // a:(I)Ljava/lang/String; + #518 = NameAndType #1009:#769 // a:(IF)V + #519 = NameAndType #1009:#772 // a:(II)V + #520 = NameAndType #1009:#774 // a:(IJ)V + #521 = NameAndType #1009:#776 // a:(ILcom/crashlytics/android/d;)V + #522 = NameAndType #1009:#777 // a:(ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;IJJZLjava/util/Map;ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;)I + #523 = NameAndType #1009:#779 // a:(ILjava/lang/String;)V + #524 = NameAndType #1009:#781 // a:(IZ)V + #525 = NameAndType #1009:#787 // a:(Landroid/content/Context;)J + #526 = NameAndType #1009:#789 // a:(Landroid/content/Context;Ljava/lang/String;Z)Z + #527 = NameAndType #1009:#790 // a:(Landroid/content/Context;Z)Ljava/lang/String; + #528 = NameAndType #1009:#791 // a:(Lcom/crashlytics/android/f;)V + #529 = NameAndType #1009:#792 // a:(Lcom/crashlytics/android/h;ILjava/lang/StackTraceElement;Z)V + #530 = NameAndType #1009:#793 // a:(Lcom/crashlytics/android/h;Ljava/io/File;)V + #531 = NameAndType #1009:#794 // a:(Lcom/crashlytics/android/h;Ljava/lang/String;)V + #532 = NameAndType #1009:#795 // a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #533 = NameAndType #1009:#796 // a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)V + #534 = NameAndType #1009:#797 // a:(Lcom/crashlytics/android/h;Ljava/lang/Throwable;II)V + #535 = NameAndType #1009:#798 // a:(Lcom/crashlytics/android/h;Ljava/util/Map;)V + #536 = NameAndType #1009:#800 // a:(Lcom/crashlytics/android/h;[Ljava/io/File;Ljava/lang/String;)V + #537 = NameAndType #1009:#802 // a:(Lcom/crashlytics/android/internal/ap;Ljava/lang/String;)I + #538 = NameAndType #1009:#803 // a:(Lcom/crashlytics/android/internal/aq;)Lcom/crashlytics/android/d; + #539 = NameAndType #1009:#805 // a:(Lcom/crashlytics/android/internal/au;)V + #540 = NameAndType #1009:#820 // a:(Ljava/io/Closeable;Ljava/lang/String;)V + #541 = NameAndType #1009:#821 // a:(Ljava/io/File;)Ljava/lang/String; + #542 = NameAndType #1009:#823 // a:(Ljava/io/File;Ljava/io/FilenameFilter;ILjava/util/Comparator;)V + #543 = NameAndType #1009:#825 // a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + #544 = NameAndType #1009:#826 // a:(Ljava/io/Flushable;Ljava/lang/String;)V + #545 = NameAndType #1009:#827 // a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + #546 = NameAndType #1009:#834 // a:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + #547 = NameAndType #1009:#837 // a:(Ljava/lang/StackTraceElement;Z)I + #548 = NameAndType #1009:#839 // a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + #549 = NameAndType #1009:#840 // a:(Ljava/lang/String;)Lcom/crashlytics/android/internal/ai; + #550 = NameAndType #1009:#842 // a:(Ljava/lang/String;)Ljava/util/concurrent/ExecutorService; + #551 = NameAndType #1009:#844 // a:(Ljava/lang/String;)V + #552 = NameAndType #1009:#846 // a:(Ljava/lang/String;I)V + #553 = NameAndType #1009:#847 // a:(Ljava/lang/String;Landroid/content/Context;)Landroid/app/ActivityManager$RunningAppProcessInfo; + #554 = NameAndType #1009:#848 // a:(Ljava/lang/String;Ljava/lang/String;)I + #555 = NameAndType #1009:#850 // a:(Ljava/lang/String;Ljava/lang/String;)V + #556 = NameAndType #1009:#851 // a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + #557 = NameAndType #1009:#856 // a:(Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + #558 = NameAndType #1009:#858 // a:(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)I + #559 = NameAndType #1009:#859 // a:(Ljava/lang/Throwable;I)I + #560 = NameAndType #1009:#860 // a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + #561 = NameAndType #1009:#861 // a:(Ljava/lang/Throwable;Ljava/io/Writer;)V + #562 = NameAndType #1009:#862 // a:(Ljava/util/Date;Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/lang/String;Z)V + #563 = NameAndType #1009:#865 // a:(Ljava/util/concurrent/Callable;)Ljava/lang/Object; + #564 = NameAndType #1009:#867 // a:(Z)I + #565 = NameAndType #1009:#871 // a:([B)V + #566 = NameAndType #1009:#873 // a:([BII)Lcom/crashlytics/android/d; + #567 = NameAndType #1009:#944 // a:I + #568 = NameAndType #1009:#952 // a:Ljava/io/FilenameFilter; + #569 = NameAndType #1009:#957 // a:Ljava/util/Comparator; + #570 = NameAndType #1010:#832 // add:(Ljava/lang/Object;)Z + #571 = NameAndType #1022:#831 // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + #572 = NameAndType #1022:#841 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + #573 = NameAndType #1023:#736 // availableProcessors:()I + #574 = NameAndType #1024:#736 // b:()I + #575 = NameAndType #1024:#743 // b:()Lcom/crashlytics/android/internal/ao; + #576 = NameAndType #1024:#744 // b:()Lcom/crashlytics/android/internal/q; + #577 = NameAndType #1024:#750 // b:()Ljava/lang/String; + #578 = NameAndType #1024:#758 // b:()Z + #579 = NameAndType #1024:#767 // b:(I)V + #580 = NameAndType #1024:#768 // b:(IF)I + #581 = NameAndType #1024:#772 // b:(II)V + #582 = NameAndType #1024:#773 // b:(IJ)I + #583 = NameAndType #1024:#775 // b:(ILcom/crashlytics/android/d;)I + #584 = NameAndType #1024:#780 // b:(IZ)I + #585 = NameAndType #1024:#786 // b:(Landroid/content/Context;)F + #586 = NameAndType #1024:#838 // b:(Ljava/lang/String;)J + #587 = NameAndType #1024:#839 // b:(Ljava/lang/String;)Lcom/crashlytics/android/d; + #588 = NameAndType #1024:#844 // b:(Ljava/lang/String;)V + #589 = NameAndType #1024:#854 // b:(Ljava/lang/Thread;Ljava/lang/Throwable;)I + #590 = NameAndType #1024:#866 // b:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + #591 = NameAndType #1024:#957 // b:Ljava/util/Comparator; + #592 = NameAndType #1025:#758 // booleanValue:()Z + #593 = NameAndType #1026:#737 // c:()J + #594 = NameAndType #1026:#757 // c:()V + #595 = NameAndType #1026:#763 // c:(I)I + #596 = NameAndType #1026:#772 // c:(II)V + #597 = NameAndType #1026:#788 // c:(Landroid/content/Context;)Z + #598 = NameAndType #1026:#844 // c:(Ljava/lang/String;)V + #599 = NameAndType #1026:#957 // c:Ljava/util/Comparator; + #600 = NameAndType #1070:#843 // compile:(Ljava/lang/String;)Ljava/util/regex/Pattern; + #601 = NameAndType #1071:#832 // contains:(Ljava/lang/Object;)Z + #602 = NameAndType #1075:#757 // crashlyticsDidDetectCrashDuringPreviousExecution:()V + #603 = NameAndType #1076:#758 // createNewFile:()Z + #604 = NameAndType #1077:#750 // d:()Ljava/lang/String; + #605 = NameAndType #1077:#758 // d:()Z + #606 = NameAndType #1077:#770 // d:(II)I + #607 = NameAndType #1077:#967 // d:Ljava/util/regex/Pattern; + #608 = NameAndType #1078:#758 // delete:()Z + #609 = NameAndType #1079:#750 // e:()Ljava/lang/String; + #610 = NameAndType #1079:#758 // e:()Z + #611 = NameAndType #1079:#770 // e:(II)I + #612 = NameAndType #1079:#962 // e:Ljava/util/Map; + #613 = NameAndType #1080:#754 // entrySet:()Ljava/util/Set; + #614 = NameAndType #1083:#758 // exists:()Z + #615 = NameAndType #1084:#736 // f:()I + #616 = NameAndType #1084:#750 // f:()Ljava/lang/String; + #617 = NameAndType #1084:#753 // f:()Ljava/util/Map; + #618 = NameAndType #1084:#758 // f:()Z + #619 = NameAndType #1084:#770 // f:(II)I + #620 = NameAndType #1084:#944 // f:I + #621 = NameAndType #1084:#947 // f:Lcom/crashlytics/android/d; + #622 = NameAndType #1085:#863 // format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + #623 = NameAndType #1086:#750 // g:()Ljava/lang/String; + #624 = NameAndType #1086:#772 // g:(II)V + #625 = NameAndType #1086:#966 // g:Ljava/util/concurrent/atomic/AtomicInteger; + #626 = NameAndType #1087:#748 // get:()Ljava/lang/Object; + #627 = NameAndType #1087:#758 // get:()Z + #628 = NameAndType #1087:#765 // get:(I)Ljava/lang/Object; + #629 = NameAndType #1088:#753 // getAllStackTraces:()Ljava/util/Map; + #630 = NameAndType #1089:#736 // getAndIncrement:()I + #631 = NameAndType #1090:#870 // getAndSet:(Z)Z + #632 = NameAndType #1091:#736 // getBlockCount:()I + #633 = NameAndType #1092:#736 // getBlockSize:()I + #634 = NameAndType #1093:#845 // getBytes:(Ljava/lang/String;)[B + #635 = NameAndType #1094:#751 // getCause:()Ljava/lang/Throwable; + #636 = NameAndType #1095:#747 // getClass:()Ljava/lang/Class; + #637 = NameAndType #1096:#750 // getClassName:()Ljava/lang/String; + #638 = NameAndType #1097:#739 // getConfiguration:()Landroid/content/res/Configuration; + #639 = NameAndType #1098:#738 // getContext:()Landroid/content/Context; + #640 = NameAndType #1099:#746 // getDataDirectory:()Ljava/io/File; + #641 = NameAndType #1100:#750 // getFileName:()Ljava/lang/String; + #642 = NameAndType #1101:#741 // getInstance:()Lcom/crashlytics/android/Crashlytics; + #643 = NameAndType #1102:#748 // getKey:()Ljava/lang/Object; + #644 = NameAndType #1103:#736 // getLineNumber:()I + #645 = NameAndType #1104:#750 // getLocalizedMessage:()Ljava/lang/String; + #646 = NameAndType #1105:#750 // getMethodName:()Ljava/lang/String; + #647 = NameAndType #1106:#750 // getName:()Ljava/lang/String; + #648 = NameAndType #1107:#750 // getPackageCodePath:()Ljava/lang/String; + #649 = NameAndType #1108:#750 // getPath:()Ljava/lang/String; + #650 = NameAndType #1109:#740 // getResources:()Landroid/content/res/Resources; + #651 = NameAndType #1110:#749 // getRuntime:()Ljava/lang/Runtime; + #652 = NameAndType #1111:#760 // getStackTrace:()[Ljava/lang/StackTraceElement; + #653 = NameAndType #1112:#737 // getTime:()J + #654 = NameAndType #1113:#748 // getValue:()Ljava/lang/Object; + #655 = NameAndType #1114:#750 // getVersion:()Ljava/lang/String; + #656 = NameAndType #1115:#766 // group:(I)Ljava/lang/String; + #657 = NameAndType #1116:#746 // h:()Ljava/io/File; + #658 = NameAndType #1116:#750 // h:()Ljava/lang/String; + #659 = NameAndType #1116:#965 // h:Ljava/util/concurrent/atomic/AtomicBoolean; + #660 = NameAndType #1117:#758 // hasNext:()Z + #661 = NameAndType #1118:#944 // i:I + #662 = NameAndType #1119:#944 // importance:I + #663 = NameAndType #1122:#758 // isDirectory:()Z + #664 = NameAndType #1123:#758 // isEmpty:()Z + #665 = NameAndType #1124:#758 // isNativeMethod:()Z + #666 = NameAndType #1125:#752 // iterator:()Ljava/util/Iterator; + #667 = NameAndType #1126:#758 // j:()Z + #668 = NameAndType #1126:#954 // j:Ljava/lang/Thread$UncaughtExceptionHandler; + #669 = NameAndType #1171:#758 // k:()Z + #670 = NameAndType #1171:#951 // k:Ljava/io/File; + #671 = NameAndType #1172:#757 // l:()V + #672 = NameAndType #1172:#951 // l:Ljava/io/File; + #673 = NameAndType #1173:#736 // length:()I + #674 = NameAndType #1173:#737 // length:()J + #675 = NameAndType #1174:#759 // listFiles:()[Ljava/io/File; + #676 = NameAndType #1174:#825 // listFiles:(Ljava/io/FilenameFilter;)[Ljava/io/File; + #677 = NameAndType #1175:#750 // m:()Ljava/lang/String; + #678 = NameAndType #1175:#757 // m:()V + #679 = NameAndType #1175:#965 // m:Ljava/util/concurrent/atomic/AtomicBoolean; + #680 = NameAndType #1176:#829 // matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; + #681 = NameAndType #1177:#758 // matches:()Z + #682 = NameAndType #1178:#770 // max:(II)I + #683 = NameAndType #1179:#770 // min:(II)I + #684 = NameAndType #1180:#750 // n:()Ljava/lang/String; + #685 = NameAndType #1180:#953 // n:Ljava/lang/String; + #686 = NameAndType #1181:#748 // next:()Ljava/lang/Object; + #687 = NameAndType #1183:#750 // o:()Ljava/lang/String; + #688 = NameAndType #1183:#759 // o:()[Ljava/io/File; + #689 = NameAndType #1183:#946 // o:Landroid/content/BroadcastReceiver; + #690 = NameAndType #1184:#944 // orientation:I + #691 = NameAndType #1185:#757 // p:()V + #692 = NameAndType #1185:#946 // p:Landroid/content/BroadcastReceiver; + #693 = NameAndType #1186:#736 // q:()I + #694 = NameAndType #1186:#947 // q:Lcom/crashlytics/android/d; + #695 = NameAndType #1187:#736 // r:()I + #696 = NameAndType #1187:#742 // r:()Lcom/crashlytics/android/internal/aR; + #697 = NameAndType #1187:#947 // r:Lcom/crashlytics/android/d; + #698 = NameAndType #1188:#755 // randomUUID:()Ljava/util/UUID; + #699 = NameAndType #1189:#872 // read:([BII)I + #700 = NameAndType #1190:#785 // registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; + #701 = NameAndType #1191:#830 // replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + #702 = NameAndType #1192:#849 // replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + #703 = NameAndType #1193:#736 // s:()I + #704 = NameAndType #1193:#964 // s:Ljava/util/concurrent/ExecutorService; + #705 = NameAndType #1194:#869 // set:(Z)V + #706 = NameAndType #1195:#833 // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map; + #707 = NameAndType #1196:#736 // size:()I + #708 = NameAndType #1197:#875 // sort:([Ljava/lang/Object;Ljava/util/Comparator;)V + #709 = NameAndType #1198:#757 // start:()V + #710 = NameAndType #1199:#834 // submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + #711 = NameAndType #1199:#866 // submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + #712 = NameAndType #1200:#766 // substring:(I)Ljava/lang/String; + #713 = NameAndType #1200:#771 // substring:(II)Ljava/lang/String; + #714 = NameAndType #1201:#945 // t:Landroid/app/ActivityManager$RunningAppProcessInfo; + #715 = NameAndType #1204:#750 // toString:()Ljava/lang/String; + #716 = NameAndType #1205:#948 // u:Lcom/crashlytics/android/internal/aq; + #717 = NameAndType #1206:#855 // uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V + #718 = NameAndType #1207:#784 // unregisterReceiver:(Landroid/content/BroadcastReceiver;)V + #719 = NameAndType #1208:#1002 // v:Z + #720 = NameAndType #1209:#764 // valueOf:(I)Ljava/lang/Integer; + #721 = NameAndType #1209:#782 // valueOf:(J)Ljava/lang/Long; + #722 = NameAndType #1209:#868 // valueOf:(Z)Ljava/lang/Boolean; + #723 = NameAndType #1210:#1008 // w:[Ljava/lang/Thread; + #724 = NameAndType #1211:#844 // write:(Ljava/lang/String;)V + #725 = NameAndType #1212:#959 // x:Ljava/util/List; + #726 = NameAndType #1213:#1006 // y:[Ljava/lang/StackTraceElement; + #727 = Utf8 + #728 = Utf8 \tat + #729 = Utf8 \n + #730 = Utf8 \r + #731 = Utf8 + #732 = Utf8 data for session ID + #733 = Utf8 \" from thread + #734 = Utf8 %d %s%n + #735 = Utf8 (\r\n|\n| ) + #736 = Utf8 ()I + #737 = Utf8 ()J + #738 = Utf8 ()Landroid/content/Context; + #739 = Utf8 ()Landroid/content/res/Configuration; + #740 = Utf8 ()Landroid/content/res/Resources; + #741 = Utf8 ()Lcom/crashlytics/android/Crashlytics; + #742 = Utf8 ()Lcom/crashlytics/android/internal/aR; + #743 = Utf8 ()Lcom/crashlytics/android/internal/ao; + #744 = Utf8 ()Lcom/crashlytics/android/internal/q; + #745 = Utf8 ()Lcom/crashlytics/android/internal/v; + #746 = Utf8 ()Ljava/io/File; + #747 = Utf8 ()Ljava/lang/Class; + #748 = Utf8 ()Ljava/lang/Object; + #749 = Utf8 ()Ljava/lang/Runtime; + #750 = Utf8 ()Ljava/lang/String; + #751 = Utf8 ()Ljava/lang/Throwable; + #752 = Utf8 ()Ljava/util/Iterator; + #753 = Utf8 ()Ljava/util/Map; + #754 = Utf8 ()Ljava/util/Set; + #755 = Utf8 ()Ljava/util/UUID; + #756 = Utf8 ()Ljava/util/regex/Pattern; + #757 = Utf8 ()V + #758 = Utf8 ()Z + #759 = Utf8 ()[Ljava/io/File; + #760 = Utf8 ()[Ljava/lang/StackTraceElement; + #761 = Utf8 (B)V + #762 = Utf8 (FIZIJJ)I + #763 = Utf8 (I)I + #764 = Utf8 (I)Ljava/lang/Integer; + #765 = Utf8 (I)Ljava/lang/Object; + #766 = Utf8 (I)Ljava/lang/String; + #767 = Utf8 (I)V + #768 = Utf8 (IF)I + #769 = Utf8 (IF)V + #770 = Utf8 (II)I + #771 = Utf8 (II)Ljava/lang/String; + #772 = Utf8 (II)V + #773 = Utf8 (IJ)I + #774 = Utf8 (IJ)V + #775 = Utf8 (ILcom/crashlytics/android/d;)I + #776 = Utf8 (ILcom/crashlytics/android/d;)V + #777 = Utf8 (ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;IJJZLjava/util/Map;ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;)I + #778 = Utf8 (ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;IJJZLjava/util/Map;ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;)I + #779 = Utf8 (ILjava/lang/String;)V + #780 = Utf8 (IZ)I + #781 = Utf8 (IZ)V + #782 = Utf8 (J)Ljava/lang/Long; + #783 = Utf8 (JLjava/lang/String;)V + #784 = Utf8 (Landroid/content/BroadcastReceiver;)V + #785 = Utf8 (Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; + #786 = Utf8 (Landroid/content/Context;)F + #787 = Utf8 (Landroid/content/Context;)J + #788 = Utf8 (Landroid/content/Context;)Z + #789 = Utf8 (Landroid/content/Context;Ljava/lang/String;Z)Z + #790 = Utf8 (Landroid/content/Context;Z)Ljava/lang/String; + #791 = Utf8 (Lcom/crashlytics/android/f;)V + #792 = Utf8 (Lcom/crashlytics/android/h;ILjava/lang/StackTraceElement;Z)V + #793 = Utf8 (Lcom/crashlytics/android/h;Ljava/io/File;)V + #794 = Utf8 (Lcom/crashlytics/android/h;Ljava/lang/String;)V + #795 = Utf8 (Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #796 = Utf8 (Lcom/crashlytics/android/h;Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)V + #797 = Utf8 (Lcom/crashlytics/android/h;Ljava/lang/Throwable;II)V + #798 = Utf8 (Lcom/crashlytics/android/h;Ljava/util/Map;)V + #799 = Utf8 (Lcom/crashlytics/android/h;Ljava/util/Map;)V + #800 = Utf8 (Lcom/crashlytics/android/h;[Ljava/io/File;Ljava/lang/String;)V + #801 = Utf8 (Lcom/crashlytics/android/internal/ao;)V + #802 = Utf8 (Lcom/crashlytics/android/internal/ap;Ljava/lang/String;)I + #803 = Utf8 (Lcom/crashlytics/android/internal/aq;)Lcom/crashlytics/android/d; + #804 = Utf8 (Lcom/crashlytics/android/internal/aq;IJLjava/lang/String;)V + #805 = Utf8 (Lcom/crashlytics/android/internal/au;)V + #806 = Utf8 (Lcom/crashlytics/android/v;)Lcom/crashlytics/android/internal/aq; + #807 = Utf8 (Lcom/crashlytics/android/v;)Ljava/io/File; + #808 = Utf8 (Lcom/crashlytics/android/v;)Ljava/util/concurrent/atomic/AtomicBoolean; + #809 = Utf8 (Lcom/crashlytics/android/v;)V + #810 = Utf8 (Lcom/crashlytics/android/v;)Z + #811 = Utf8 (Lcom/crashlytics/android/v;JLjava/lang/String;)V + #812 = Utf8 (Lcom/crashlytics/android/v;Ljava/io/File;)V + #813 = Utf8 (Lcom/crashlytics/android/v;Ljava/io/FilenameFilter;)[Ljava/io/File; + #814 = Utf8 (Lcom/crashlytics/android/v;Ljava/lang/Runnable;)V + #815 = Utf8 (Lcom/crashlytics/android/v;Ljava/lang/String;)V + #816 = Utf8 (Lcom/crashlytics/android/v;Ljava/util/Date;Ljava/lang/Thread;Ljava/lang/Throwable;)V + #817 = Utf8 (Lcom/crashlytics/android/v;Ljava/util/concurrent/Callable;)V + #818 = Utf8 (Lcom/crashlytics/android/v;Z)Z + #819 = Utf8 (Lcom/crashlytics/android/v;[B[I)V + #820 = Utf8 (Ljava/io/Closeable;Ljava/lang/String;)V + #821 = Utf8 (Ljava/io/File;)Ljava/lang/String; + #822 = Utf8 (Ljava/io/File;)V + #823 = Utf8 (Ljava/io/File;Ljava/io/FilenameFilter;ILjava/util/Comparator;)V + #824 = Utf8 (Ljava/io/File;Ljava/lang/String;)V + #825 = Utf8 (Ljava/io/FilenameFilter;)[Ljava/io/File; + #826 = Utf8 (Ljava/io/Flushable;Ljava/lang/String;)V + #827 = Utf8 (Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + #828 = Utf8 (Ljava/io/OutputStream;)V + #829 = Utf8 (Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; + #830 = Utf8 (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + #831 = Utf8 (Ljava/lang/Object;)Ljava/lang/StringBuilder; + #832 = Utf8 (Ljava/lang/Object;)Z + #833 = Utf8 (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map; + #834 = Utf8 (Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + #835 = Utf8 (Ljava/lang/Runnable;)Ljava/util/concurrent/Future<*>; + #836 = Utf8 (Ljava/lang/Runnable;Ljava/lang/String;)V + #837 = Utf8 (Ljava/lang/StackTraceElement;Z)I + #838 = Utf8 (Ljava/lang/String;)J + #839 = Utf8 (Ljava/lang/String;)Lcom/crashlytics/android/d; + #840 = Utf8 (Ljava/lang/String;)Lcom/crashlytics/android/internal/ai; + #841 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; + #842 = Utf8 (Ljava/lang/String;)Ljava/util/concurrent/ExecutorService; + #843 = Utf8 (Ljava/lang/String;)Ljava/util/regex/Pattern; + #844 = Utf8 (Ljava/lang/String;)V + #845 = Utf8 (Ljava/lang/String;)[B + #846 = Utf8 (Ljava/lang/String;I)V + #847 = Utf8 (Ljava/lang/String;Landroid/content/Context;)Landroid/app/ActivityManager$RunningAppProcessInfo; + #848 = Utf8 (Ljava/lang/String;Ljava/lang/String;)I + #849 = Utf8 (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + #850 = Utf8 (Ljava/lang/String;Ljava/lang/String;)V + #851 = Utf8 (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + #852 = Utf8 (Ljava/lang/Thread$UncaughtExceptionHandler;Lcom/crashlytics/android/CrashlyticsListener;Ljava/lang/String;)V + #853 = Utf8 (Ljava/lang/Thread$UncaughtExceptionHandler;Lcom/crashlytics/android/CrashlyticsListener;Ljava/util/concurrent/ExecutorService;Ljava/lang/String;)V + #854 = Utf8 (Ljava/lang/Thread;Ljava/lang/Throwable;)I + #855 = Utf8 (Ljava/lang/Thread;Ljava/lang/Throwable;)V + #856 = Utf8 (Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + #857 = Utf8 (Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + #858 = Utf8 (Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)I + #859 = Utf8 (Ljava/lang/Throwable;I)I + #860 = Utf8 (Ljava/lang/Throwable;Ljava/io/OutputStream;)V + #861 = Utf8 (Ljava/lang/Throwable;Ljava/io/Writer;)V + #862 = Utf8 (Ljava/util/Date;Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/lang/String;Z)V + #863 = Utf8 (Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + #864 = Utf8 (Ljava/util/Map;)V + #865 = Utf8 (Ljava/util/concurrent/Callable;)Ljava/lang/Object; + #866 = Utf8 (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + #867 = Utf8 (Z)I + #868 = Utf8 (Z)Ljava/lang/Boolean; + #869 = Utf8 (Z)V + #870 = Utf8 (Z)Z + #871 = Utf8 ([B)V + #872 = Utf8 ([BII)I + #873 = Utf8 ([BII)Lcom/crashlytics/android/d; + #874 = Utf8 ([Ljava/io/File;)V + #875 = Utf8 ([Ljava/lang/Object;Ljava/util/Comparator;)V + #876 = Utf8 ([\d|A-Z|a-z]{12}\-[\d|A-Z|a-z]{4}\-[\d|A-Z|a-z]{4}\-[\d|A-Z|a-z]{12}).+ + #877 = Utf8 - + #878 = Utf8 . + #879 = Utf8 ... + #880 = Utf8 .temp + #881 = Utf8 0 + #882 = Utf8 1 + #883 = Utf8 : + #884 = Utf8 (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + #885 = Utf8 (Ljava/util/concurrent/Callable;)TT; + #886 = Utf8 + #887 = Utf8 + #888 = Utf8 A problem occurred while reading the Crashlytics log file. + #889 = Utf8 An error occurred in the fatal exception logger + #890 = Utf8 An error occurred in the non-fatal exception logger + #891 = Utf8 An error occurred in the uncaught exception handler + #892 = Utf8 An error occurred when trimming non-fatal files. + #893 = Utf8 Attempting to send crash report at time of crash... + #894 = Utf8 BeginSession + #895 = Utf8 CODENAME + #896 = Utf8 Can't find + #897 = Utf8 Caused by: + #898 = Utf8 Checking for previous crash marker. + #899 = Utf8 Closing all open sessions. + #900 = Utf8 Closing session: + #901 = Utf8 Code + #902 = Utf8 Collecting + #903 = Utf8 Collecting SessionStart data for session ID + #904 = Utf8 Collecting session parts for ID + #905 = Utf8 Could not close log file: + #906 = Utf8 Could not create log file: + #907 = Utf8 Could not write stack trace + #908 = Utf8 Crashlytics + #909 = Utf8 Crashlytics Android SDK/%s + #910 = Utf8 Crashlytics Exception Handler + #911 = Utf8 Crashlytics Report Uploader + #912 = Utf8 Crashlytics completed exception processing. Invoking default exception handler. + #913 = Utf8 Crashlytics is handling uncaught exception \" + #914 = Utf8 Crashlytics is logging non-fatal exception \" + #915 = Utf8 Deleting all part files for invalid session: + #916 = Utf8 Deleting session file: + #917 = Utf8 Error closing session file stream in the presence of an exception + #918 = Utf8 Error flushing session file stream + #919 = Utf8 Error writting non-fatal to session. + #920 = Utf8 Exception thrown by CrashlyticsListener while notifying of previous crash. + #921 = Utf8 Exceptions + #922 = Utf8 Executor is shut down because we're handling a fatal crash. + #923 = Utf8 Failed to close CLS file + #924 = Utf8 Failed to close begin session file. + #925 = Utf8 Failed to close fatal exception file output stream. + #926 = Utf8 Failed to close file input stream. + #927 = Utf8 Failed to close non-fatal file output stream. + #928 = Utf8 Failed to close session OS file. + #929 = Utf8 Failed to close session app file. + #930 = Utf8 Failed to close session device file. + #931 = Utf8 Failed to close session user file. + #932 = Utf8 Failed to close stack trace writer. + #933 = Utf8 Failed to create PrintWriter + #934 = Utf8 Failed to execute task. + #935 = Utf8 Failed to flush session device info. + #936 = Utf8 Failed to flush session user file. + #937 = Utf8 Failed to flush to non-fatal file. + #938 = Utf8 Failed to flush to session OS file. + #939 = Utf8 Failed to flush to session app file. + #940 = Utf8 Failed to flush to session begin file. + #941 = Utf8 Failed to write session file for session ID: + #942 = Utf8 Found Non Fatal for session ID %s in %s + #943 = Utf8 Found invalid session part file: + #944 = Utf8 I + #945 = Utf8 Landroid/app/ActivityManager$RunningAppProcessInfo; + #946 = Utf8 Landroid/content/BroadcastReceiver; + #947 = Utf8 Lcom/crashlytics/android/d; + #948 = Utf8 Lcom/crashlytics/android/internal/aq; + #949 = Utf8 Lcom/crashlytics/android/v; + #950 = Utf8 LineNumberTable + #951 = Utf8 Ljava/io/File; + #952 = Utf8 Ljava/io/FilenameFilter; + #953 = Utf8 Ljava/lang/String; + #954 = Utf8 Ljava/lang/Thread$UncaughtExceptionHandler; + #955 = Utf8 Ljava/lang/Thread; + #956 = Utf8 Ljava/lang/Throwable; + #957 = Utf8 Ljava/util/Comparator; + #958 = Utf8 Ljava/util/Comparator; + #959 = Utf8 Ljava/util/List; + #960 = Utf8 Ljava/util/List<[Ljava/lang/StackTraceElement;>; + #961 = Utf8 Ljava/util/Locale; + #962 = Utf8 Ljava/util/Map; + #963 = Utf8 Ljava/util/Map; + #964 = Utf8 Ljava/util/concurrent/ExecutorService; + #965 = Utf8 Ljava/util/concurrent/atomic/AtomicBoolean; + #966 = Utf8 Ljava/util/concurrent/atomic/AtomicInteger; + #967 = Utf8 Ljava/util/regex/Pattern; + #968 = Utf8 LocalVariableTable + #969 = Utf8 MANUFACTURER + #970 = Utf8 MODEL + #971 = Utf8 No events present for session ID + #972 = Utf8 No log data to include with this event. + #973 = Utf8 No session begin files found. + #974 = Utf8 Opening an new session with ID + #975 = Utf8 PRODUCT + #976 = Utf8 Preferences requested not to collect custom logs. Aborting log file creation. + #977 = Utf8 RELEASE + #978 = Utf8 Removing session part files for ID + #979 = Utf8 Session %s has fatal exception: %s + #980 = Utf8 Session %s has non-fatal exceptions: %s + #981 = Utf8 SessionApp + #982 = Utf8 SessionCrash + #983 = Utf8 SessionDevice + #984 = Utf8 SessionEvent + #985 = Utf8 SessionOS + #986 = Utf8 SessionUser + #987 = Utf8 Signature + #988 = Utf8 SourceFile + #989 = Utf8 StackMapTable + #990 = Utf8 There was a problem closing the Crashlytics log file. + #991 = Utf8 There was a problem writing to the Crashlytics log. + #992 = Utf8 Tried to include a file that doesn't exist: + #993 = Utf8 Tried to write a fatal exception while no session was open. + #994 = Utf8 Tried to write a non-fatal exception while no session was open. + #995 = Utf8 Trimming down to %d logged exceptions. + #996 = Utf8 Trimming open session file: + #997 = Utf8 US + #998 = Utf8 UTF-8 + #999 = Utf8 Unable to close session. Settings are not loaded. + #1000 = Utf8 Unregistering power receivers. + #1001 = Utf8 X-CRASHLYTICS-SEND-FLAGS + #1002 = Utf8 Z + #1003 = Utf8 [B + #1004 = Utf8 [I + #1005 = Utf8 [Ljava/io/File; + #1006 = Utf8 [Ljava/lang/StackTraceElement; + #1007 = Utf8 [Ljava/lang/String; + #1008 = Utf8 [Ljava/lang/Thread; + #1009 = Utf8 a + #1010 = Utf8 add + #1011 = Utf8 android.intent.action.ACTION_POWER_CONNECTED + #1012 = Utf8 android.intent.action.ACTION_POWER_DISCONNECTED + #1013 = Utf8 android/app/ActivityManager$RunningAppProcessInfo + #1014 = Utf8 android/content/Context + #1015 = Utf8 android/content/IntentFilter + #1016 = Utf8 android/content/res/Configuration + #1017 = Utf8 android/content/res/Resources + #1018 = Utf8 android/os/Build + #1019 = Utf8 android/os/Build$VERSION + #1020 = Utf8 android/os/Environment + #1021 = Utf8 android/os/StatFs + #1022 = Utf8 append + #1023 = Utf8 availableProcessors + #1024 = Utf8 b + #1025 = Utf8 booleanValue + #1026 = Utf8 c + #1027 = Utf8 com.crashlytics.CollectCustomKeys + #1028 = Utf8 com.crashlytics.CollectCustomLogs + #1029 = Utf8 com/crashlytics/android/A + #1030 = Utf8 com/crashlytics/android/B + #1031 = Utf8 com/crashlytics/android/C + #1032 = Utf8 com/crashlytics/android/Crashlytics + #1033 = Utf8 com/crashlytics/android/CrashlyticsListener + #1034 = Utf8 com/crashlytics/android/D + #1035 = Utf8 com/crashlytics/android/E + #1036 = Utf8 com/crashlytics/android/F + #1037 = Utf8 com/crashlytics/android/G + #1038 = Utf8 com/crashlytics/android/H + #1039 = Utf8 com/crashlytics/android/I + #1040 = Utf8 com/crashlytics/android/J + #1041 = Utf8 com/crashlytics/android/K + #1042 = Utf8 com/crashlytics/android/L + #1043 = Utf8 com/crashlytics/android/M + #1044 = Utf8 com/crashlytics/android/N + #1045 = Utf8 com/crashlytics/android/O + #1046 = Utf8 com/crashlytics/android/P + #1047 = Utf8 com/crashlytics/android/Q + #1048 = Utf8 com/crashlytics/android/R + #1049 = Utf8 com/crashlytics/android/S + #1050 = Utf8 com/crashlytics/android/b + #1051 = Utf8 com/crashlytics/android/d + #1052 = Utf8 com/crashlytics/android/e + #1053 = Utf8 com/crashlytics/android/f + #1054 = Utf8 com/crashlytics/android/h + #1055 = Utf8 com/crashlytics/android/internal/aR + #1056 = Utf8 com/crashlytics/android/internal/ab + #1057 = Utf8 com/crashlytics/android/internal/ah + #1058 = Utf8 com/crashlytics/android/internal/ai + #1059 = Utf8 com/crashlytics/android/internal/ao + #1060 = Utf8 com/crashlytics/android/internal/ap + #1061 = Utf8 com/crashlytics/android/internal/aq + #1062 = Utf8 com/crashlytics/android/internal/q + #1063 = Utf8 com/crashlytics/android/internal/r + #1064 = Utf8 com/crashlytics/android/internal/v + #1065 = Utf8 com/crashlytics/android/v + #1066 = Utf8 com/crashlytics/android/w + #1067 = Utf8 com/crashlytics/android/x + #1068 = Utf8 com/crashlytics/android/y + #1069 = Utf8 com/crashlytics/android/z + #1070 = Utf8 compile + #1071 = Utf8 contains + #1072 = Utf8 crash + #1073 = Utf8 crash_marker + #1074 = Utf8 crashlytics-userlog- + #1075 = Utf8 crashlyticsDidDetectCrashDuringPreviousExecution + #1076 = Utf8 createNewFile + #1077 = Utf8 d + #1078 = Utf8 delete + #1079 = Utf8 e + #1080 = Utf8 entrySet + #1081 = Utf8 error + #1082 = Utf8 ex + #1083 = Utf8 exists + #1084 = Utf8 f + #1085 = Utf8 format + #1086 = Utf8 g + #1087 = Utf8 get + #1088 = Utf8 getAllStackTraces + #1089 = Utf8 getAndIncrement + #1090 = Utf8 getAndSet + #1091 = Utf8 getBlockCount + #1092 = Utf8 getBlockSize + #1093 = Utf8 getBytes + #1094 = Utf8 getCause + #1095 = Utf8 getClass + #1096 = Utf8 getClassName + #1097 = Utf8 getConfiguration + #1098 = Utf8 getContext + #1099 = Utf8 getDataDirectory + #1100 = Utf8 getFileName + #1101 = Utf8 getInstance + #1102 = Utf8 getKey + #1103 = Utf8 getLineNumber + #1104 = Utf8 getLocalizedMessage + #1105 = Utf8 getMethodName + #1106 = Utf8 getName + #1107 = Utf8 getPackageCodePath + #1108 = Utf8 getPath + #1109 = Utf8 getResources + #1110 = Utf8 getRuntime + #1111 = Utf8 getStackTrace + #1112 = Utf8 getTime + #1113 = Utf8 getValue + #1114 = Utf8 getVersion + #1115 = Utf8 group + #1116 = Utf8 h + #1117 = Utf8 hasNext + #1118 = Utf8 i + #1119 = Utf8 importance + #1120 = Utf8 initialization_marker + #1121 = Utf8 invalidClsFiles + #1122 = Utf8 isDirectory + #1123 = Utf8 isEmpty + #1124 = Utf8 isNativeMethod + #1125 = Utf8 iterator + #1126 = Utf8 j + #1127 = Utf8 java/io/File + #1128 = Utf8 java/io/FileInputStream + #1129 = Utf8 java/io/FileOutputStream + #1130 = Utf8 java/io/FilenameFilter + #1131 = Utf8 java/io/IOException + #1132 = Utf8 java/io/OutputStream + #1133 = Utf8 java/io/PrintWriter + #1134 = Utf8 java/io/Writer + #1135 = Utf8 java/lang/Boolean + #1136 = Utf8 java/lang/Class + #1137 = Utf8 java/lang/Exception + #1138 = Utf8 java/lang/Integer + #1139 = Utf8 java/lang/Long + #1140 = Utf8 java/lang/Math + #1141 = Utf8 java/lang/Object + #1142 = Utf8 java/lang/Runnable + #1143 = Utf8 java/lang/Runtime + #1144 = Utf8 java/lang/StackTraceElement + #1145 = Utf8 java/lang/String + #1146 = Utf8 java/lang/StringBuilder + #1147 = Utf8 java/lang/Thread + #1148 = Utf8 java/lang/Thread$UncaughtExceptionHandler + #1149 = Utf8 java/lang/Throwable + #1150 = Utf8 java/util/Arrays + #1151 = Utf8 java/util/Collections + #1152 = Utf8 java/util/Date + #1153 = Utf8 java/util/HashSet + #1154 = Utf8 java/util/Iterator + #1155 = Utf8 java/util/LinkedList + #1156 = Utf8 java/util/List + #1157 = Utf8 java/util/Locale + #1158 = Utf8 java/util/Map + #1159 = Utf8 java/util/Map$Entry + #1160 = Utf8 java/util/Set + #1161 = Utf8 java/util/TreeMap + #1162 = Utf8 java/util/UUID + #1163 = Utf8 java/util/concurrent/Callable + #1164 = Utf8 java/util/concurrent/ExecutorService + #1165 = Utf8 java/util/concurrent/Future + #1166 = Utf8 java/util/concurrent/RejectedExecutionException + #1167 = Utf8 java/util/concurrent/atomic/AtomicBoolean + #1168 = Utf8 java/util/concurrent/atomic/AtomicInteger + #1169 = Utf8 java/util/regex/Matcher + #1170 = Utf8 java/util/regex/Pattern + #1171 = Utf8 k + #1172 = Utf8 l + #1173 = Utf8 length + #1174 = Utf8 listFiles + #1175 = Utf8 m + #1176 = Utf8 matcher + #1177 = Utf8 matches + #1178 = Utf8 max + #1179 = Utf8 min + #1180 = Utf8 n + #1181 = Utf8 next + #1182 = Utf8 null + #1183 = Utf8 o + #1184 = Utf8 orientation + #1185 = Utf8 p + #1186 = Utf8 q + #1187 = Utf8 r + #1188 = Utf8 randomUUID + #1189 = Utf8 read + #1190 = Utf8 registerReceiver + #1191 = Utf8 replace + #1192 = Utf8 replaceAll + #1193 = Utf8 s + #1194 = Utf8 set + #1195 = Utf8 singletonMap + #1196 = Utf8 size + #1197 = Utf8 sort + #1198 = Utf8 start + #1199 = Utf8 submit + #1200 = Utf8 substring + #1201 = Utf8 t + #1202 = Utf8 this + #1203 = Utf8 thread + #1204 = Utf8 toString + #1205 = Utf8 u + #1206 = Utf8 uncaughtException + #1207 = Utf8 unregisterReceiver + #1208 = Utf8 v + #1209 = Utf8 valueOf + #1210 = Utf8 w + #1211 = Utf8 write + #1212 = Utf8 x + #1213 = Utf8 y + #1214 = Utf8 Synthetic + #1215 = Utf8 createNewFile_aroundBody0 + #1216 = Utf8 (Ljava/io/File;)Z + #1217 = Utf8 ajc$around$com_safedk_android_aspects_FilesAspect$1$cadede85proceed + #1218 = Utf8 (Lorg/aspectj/runtime/internal/AroundClosure;)Z + #1219 = NameAndType #1217:#1218 // ajc$around$com_safedk_android_aspects_FilesAspect$1$cadede85proceed:(Lorg/aspectj/runtime/internal/AroundClosure;)Z + #1220 = Utf8 com/safedk/android/aspects/FilesAspect + #1221 = Class #1220 // com/safedk/android/aspects/FilesAspect + #1222 = Methodref #1221.#1219 // com/safedk/android/aspects/FilesAspect.ajc$around$com_safedk_android_aspects_FilesAspect$1$cadede85proceed:(Lorg/aspectj/runtime/internal/AroundClosure;)Z + #1223 = Utf8 aspectOf + #1224 = Utf8 ()Lcom/safedk/android/aspects/FilesAspect; + #1225 = NameAndType #1223:#1224 // aspectOf:()Lcom/safedk/android/aspects/FilesAspect; + #1226 = Methodref #1221.#1225 // com/safedk/android/aspects/FilesAspect.aspectOf:()Lcom/safedk/android/aspects/FilesAspect; + #1227 = Utf8 createNewFile_aroundBody1$advice + #1228 = Utf8 (Ljava/io/File;Lcom/safedk/android/aspects/FilesAspect;Lorg/aspectj/runtime/internal/AroundClosure;)Z + #1229 = NameAndType #1227:#1228 // createNewFile_aroundBody1$advice:(Ljava/io/File;Lcom/safedk/android/aspects/FilesAspect;Lorg/aspectj/runtime/internal/AroundClosure;)Z + #1230 = Methodref #158.#1229 // com/crashlytics/android/v.createNewFile_aroundBody1$advice:(Ljava/io/File;Lcom/safedk/android/aspects/FilesAspect;Lorg/aspectj/runtime/internal/AroundClosure;)Z + #1231 = NameAndType #1215:#1216 // createNewFile_aroundBody0:(Ljava/io/File;)Z + #1232 = Methodref #158.#1231 // com/crashlytics/android/v.createNewFile_aroundBody0:(Ljava/io/File;)Z + #1233 = Utf8 org.aspectj.weaver.WeaverVersion + #1234 = Utf8 org.aspectj.weaver.WeaverState + #1235 = Utf8 arg0 + #1236 = Utf8 arg1 + #1237 = Utf8 J + #1238 = Utf8 arg2 + #1239 = Utf8 arg3 + #1240 = Utf8 Lcom/crashlytics/android/f; + #1241 = Utf8 Lcom/crashlytics/android/h; + #1242 = Utf8 Ljava/io/OutputStream; + #1243 = Utf8 Ljava/io/Writer; + #1244 = Utf8 Lcom/crashlytics/android/internal/ap; + #1245 = Utf8 arg4 + #1246 = Utf8 arg5 + #1247 = Utf8 arg6 + #1248 = Utf8 arg7 + #1249 = Utf8 arg8 + #1250 = Utf8 arg9 + #1251 = Utf8 arg10 + #1252 = Utf8 Ljava/util/Date; + #1253 = Utf8 Ljava/lang/StackTraceElement; + #1254 = Utf8 F + #1255 = Utf8 Ljava/util/concurrent/Callable; + #1256 = Utf8 Ljava/lang/Runnable; + #1257 = Utf8 target + #1258 = Utf8 ajc$aspectInstance + #1259 = Utf8 Lcom/safedk/android/aspects/FilesAspect; + #1260 = Utf8 ajc$aroundClosure + #1261 = Utf8 Lorg/aspectj/runtime/internal/AroundClosure; +{ + static final java.io.FilenameFilter a; + flags: ACC_STATIC, ACC_FINAL + + private static java.util.Comparator b; + flags: ACC_PRIVATE, ACC_STATIC + Signature: #958 // Ljava/util/Comparator; + + private static java.util.Comparator c; + flags: ACC_PRIVATE, ACC_STATIC + Signature: #958 // Ljava/util/Comparator; + + private static final java.util.regex.Pattern d; + flags: ACC_PRIVATE, ACC_STATIC, ACC_FINAL + + private static final java.util.Map e; + flags: ACC_PRIVATE, ACC_STATIC, ACC_FINAL + Signature: #963 // Ljava/util/Map; + + private static final com.crashlytics.android.d f; + flags: ACC_PRIVATE, ACC_STATIC, ACC_FINAL + + private final java.util.concurrent.atomic.AtomicInteger g; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.util.concurrent.atomic.AtomicBoolean h; + flags: ACC_PRIVATE, ACC_FINAL + + private final int i; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.lang.Thread$UncaughtExceptionHandler j; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.io.File k; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.io.File l; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.util.concurrent.atomic.AtomicBoolean m; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.lang.String n; + flags: ACC_PRIVATE, ACC_FINAL + + private final android.content.BroadcastReceiver o; + flags: ACC_PRIVATE, ACC_FINAL + + private final android.content.BroadcastReceiver p; + flags: ACC_PRIVATE, ACC_FINAL + + private final com.crashlytics.android.d q; + flags: ACC_PRIVATE, ACC_FINAL + + private final com.crashlytics.android.d r; + flags: ACC_PRIVATE, ACC_FINAL + + private final java.util.concurrent.ExecutorService s; + flags: ACC_PRIVATE, ACC_FINAL + + private android.app.ActivityManager$RunningAppProcessInfo t; + flags: ACC_PRIVATE + + private com.crashlytics.android.internal.aq u; + flags: ACC_PRIVATE + + private boolean v; + flags: ACC_PRIVATE + + private java.lang.Thread[] w; + flags: ACC_PRIVATE + + private java.util.List x; + flags: ACC_PRIVATE + Signature: #960 // Ljava/util/List<[Ljava/lang/StackTraceElement;>; + + private java.lang.StackTraceElement[] y; + flags: ACC_PRIVATE + + public com.crashlytics.android.v(java.lang.Thread$UncaughtExceptionHandler, com.crashlytics.android.CrashlyticsListener, java.lang.String); + flags: ACC_PUBLIC + Code: + stack=5, locals=4, args_size=4 + 0: aload_0 + 1: aload_1 + 2: aload_2 + 3: ldc #39 // String Crashlytics Exception Handler + 5: invokestatic #334 // Method com/crashlytics/android/internal/ah.a:(Ljava/lang/String;)Ljava/util/concurrent/ExecutorService; + 8: aload_3 + 9: invokespecial #351 // Method "":(Ljava/lang/Thread$UncaughtExceptionHandler;Lcom/crashlytics/android/CrashlyticsListener;Ljava/util/concurrent/ExecutorService;Ljava/lang/String;)V + 12: return + LineNumberTable: + line 236: 0 + line 238: 12 + + private com.crashlytics.android.v(java.lang.Thread$UncaughtExceptionHandler, com.crashlytics.android.CrashlyticsListener, java.util.concurrent.ExecutorService, java.lang.String); + flags: ACC_PRIVATE + Code: + stack=7, locals=5, args_size=5 + 0: aload_0 + 1: invokespecial #417 // Method java/lang/Object."":()V + 4: aload_0 + 5: new #204 // class java/util/concurrent/atomic/AtomicInteger + 8: dup + 9: iconst_0 + 10: invokespecial #460 // Method java/util/concurrent/atomic/AtomicInteger."":(I)V + 13: putfield #225 // Field g:Ljava/util/concurrent/atomic/AtomicInteger; + 16: aload_0 + 17: new #203 // class java/util/concurrent/atomic/AtomicBoolean + 20: dup + 21: iconst_0 + 22: invokespecial #456 // Method java/util/concurrent/atomic/AtomicBoolean."":(Z)V + 25: putfield #226 // Field h:Ljava/util/concurrent/atomic/AtomicBoolean; + 28: aload_0 + 29: aload_1 + 30: putfield #228 // Field j:Ljava/lang/Thread$UncaughtExceptionHandler; + 33: aload_0 + 34: aload_3 + 35: putfield #237 // Field s:Ljava/util/concurrent/ExecutorService; + 38: aload_0 + 39: new #203 // class java/util/concurrent/atomic/AtomicBoolean + 42: dup + 43: iconst_0 + 44: invokespecial #456 // Method java/util/concurrent/atomic/AtomicBoolean."":(Z)V + 47: putfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 50: aload_0 + 51: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 54: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 57: putfield #229 // Field k:Ljava/io/File; + 60: aload_0 + 61: new #163 // class java/io/File + 64: dup + 65: aload_0 + 66: getfield #229 // Field k:Ljava/io/File; + 69: ldc #105 // String initialization_marker + 71: invokespecial #396 // Method java/io/File."":(Ljava/io/File;Ljava/lang/String;)V + 74: putfield #230 // Field l:Ljava/io/File; + 77: aload_0 + 78: getstatic #244 // Field java/util/Locale.US:Ljava/util/Locale; + 81: ldc #38 // String Crashlytics Android SDK/%s + 83: iconst_1 + 84: anewarray #177 // class java/lang/Object + 87: dup + 88: iconst_0 + 89: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 92: invokevirtual #268 // Method com/crashlytics/android/Crashlytics.getVersion:()Ljava/lang/String; + 95: aastore + 96: invokestatic #427 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + 99: putfield #232 // Field n:Ljava/lang/String; + 102: aload_0 + 103: bipush 8 + 105: putfield #227 // Field i:I + 108: aload_2 + 109: astore_1 + 110: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 113: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 116: ldc #37 // String Crashlytics + 118: ldc #28 // String Checking for previous crash marker. + 120: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 125: new #163 // class java/io/File + 128: dup + 129: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 132: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 135: ldc #102 // String crash_marker + 137: invokespecial #396 // Method java/io/File."":(Ljava/io/File;Ljava/lang/String;)V + 140: dup + 141: astore_2 + 142: invokevirtual #399 // Method java/io/File.exists:()Z + 145: ifeq 183 + 148: aload_2 + 149: invokevirtual #398 // Method java/io/File.delete:()Z + 152: pop + 153: aload_1 + 154: ifnull 183 + 157: aload_1 + 158: invokeinterface #466, 1 // InterfaceMethod com/crashlytics/android/CrashlyticsListener.crashlyticsDidDetectCrashDuringPreviousExecution:()V + 163: goto 183 + 166: astore_1 + 167: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 170: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 173: ldc #37 // String Crashlytics + 175: ldc #49 // String Exception thrown by CrashlyticsListener while notifying of previous crash. + 177: aload_1 + 178: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 183: aload_0 + 184: invokestatic #262 // Method com/crashlytics/android/Crashlytics.d:()Ljava/lang/String; + 187: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 190: putfield #235 // Field q:Lcom/crashlytics/android/d; + 193: aload_0 + 194: aload 4 + 196: ifnonnull 203 + 199: aconst_null + 200: goto 215 + 203: aload 4 + 205: ldc #12 // String - + 207: ldc #2 // String + 209: invokevirtual #430 // Method java/lang/String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + 212: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 215: putfield #236 // Field r:Lcom/crashlytics/android/d; + 218: aload_0 + 219: new #135 // class com/crashlytics/android/L + 222: dup + 223: aload_0 + 224: invokespecial #283 // Method com/crashlytics/android/L."":(Lcom/crashlytics/android/v;)V + 227: putfield #234 // Field p:Landroid/content/BroadcastReceiver; + 230: new #115 // class android/content/IntentFilter + 233: dup + 234: ldc #97 // String android.intent.action.ACTION_POWER_CONNECTED + 236: invokespecial #249 // Method android/content/IntentFilter."":(Ljava/lang/String;)V + 239: astore_1 + 240: aload_0 + 241: new #136 // class com/crashlytics/android/M + 244: dup + 245: aload_0 + 246: invokespecial #284 // Method com/crashlytics/android/M."":(Lcom/crashlytics/android/v;)V + 249: putfield #233 // Field o:Landroid/content/BroadcastReceiver; + 252: new #115 // class android/content/IntentFilter + 255: dup + 256: ldc #98 // String android.intent.action.ACTION_POWER_DISCONNECTED + 258: invokespecial #249 // Method android/content/IntentFilter."":(Ljava/lang/String;)V + 261: astore_2 + 262: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 265: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 268: aload_0 + 269: getfield #234 // Field p:Landroid/content/BroadcastReceiver; + 272: aload_1 + 273: invokevirtual #247 // Method android/content/Context.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; + 276: pop + 277: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 280: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 283: aload_0 + 284: getfield #233 // Field o:Landroid/content/BroadcastReceiver; + 287: aload_2 + 288: invokevirtual #247 // Method android/content/Context.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; + 291: pop + 292: aload_0 + 293: getfield #226 // Field h:Ljava/util/concurrent/atomic/AtomicBoolean; + 296: iconst_1 + 297: invokevirtual #459 // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V + 300: return + Exception table: + from to target type + 157 163 166 Class java/lang/Exception + LineNumberTable: + line 244: 0 + line 192: 4 + line 193: 16 + line 245: 28 + line 246: 33 + line 247: 38 + line 248: 50 + line 249: 60 + line 250: 77 + line 257: 102 + line 259: 108 + line 261: 183 + line 262: 193 + line 264: 218 + line 271: 230 + line 273: 240 + line 280: 252 + line 282: 262 + line 283: 277 + line 284: 292 + line 285: 300 + + final boolean a(); + flags: ACC_FINAL + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: getfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 4: invokevirtual #457 // Method java/util/concurrent/atomic/AtomicBoolean.get:()Z + 7: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 8 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 288: 0 + + public final synchronized void uncaughtException(java.lang.Thread, java.lang.Throwable); + flags: ACC_PUBLIC, ACC_FINAL, ACC_SYNCHRONIZED + Code: + stack=7, locals=4, args_size=3 + 0: aload_0 + 1: getfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 4: iconst_1 + 5: invokevirtual #459 // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V + 8: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 11: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 14: ldc #37 // String Crashlytics + 16: new #182 // class java/lang/StringBuilder + 19: dup + 20: ldc #42 // String Crashlytics is handling uncaught exception \" + 22: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 25: aload_2 + 26: invokevirtual #436 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + 29: ldc #8 // String \" from thread + 31: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 34: aload_1 + 35: invokevirtual #441 // Method java/lang/Thread.getName:()Ljava/lang/String; + 38: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 41: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 44: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 49: aload_0 + 50: getfield #226 // Field h:Ljava/util/concurrent/atomic/AtomicBoolean; + 53: iconst_1 + 54: invokevirtual #458 // Method java/util/concurrent/atomic/AtomicBoolean.getAndSet:(Z)Z + 57: ifne 101 + 60: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 63: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 66: ldc #37 // String Crashlytics + 68: ldc #95 // String Unregistering power receivers. + 70: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 75: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 78: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 81: aload_0 + 82: getfield #234 // Field p:Landroid/content/BroadcastReceiver; + 85: invokevirtual #248 // Method android/content/Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V + 88: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 91: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 94: aload_0 + 95: getfield #233 // Field o:Landroid/content/BroadcastReceiver; + 98: invokevirtual #248 // Method android/content/Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V + 101: new #188 // class java/util/Date + 104: dup + 105: invokespecial #448 // Method java/util/Date."":()V + 108: astore_3 + 109: aload_0 + 110: new #137 // class com/crashlytics/android/N + 113: dup + 114: aload_0 + 115: aload_3 + 116: aload_1 + 117: aload_2 + 118: invokespecial #285 // Method com/crashlytics/android/N."":(Lcom/crashlytics/android/v;Ljava/util/Date;Ljava/lang/Thread;Ljava/lang/Throwable;)V + 121: invokespecial #378 // Method a:(Ljava/util/concurrent/Callable;)Ljava/lang/Object; + 124: pop + 125: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 128: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 131: ldc #37 // String Crashlytics + 133: ldc #41 // String Crashlytics completed exception processing. Invoking default exception handler. + 135: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 140: aload_0 + 141: getfield #228 // Field j:Ljava/lang/Thread$UncaughtExceptionHandler; + 144: aload_1 + 145: aload_2 + 146: invokeinterface #469, 3 // InterfaceMethod java/lang/Thread$UncaughtExceptionHandler.uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V + 151: aload_0 + 152: getfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 155: iconst_0 + 156: invokevirtual #459 // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V + 159: return + 160: astore_3 + 161: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 164: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 167: ldc #37 // String Crashlytics + 169: ldc #22 // String An error occurred in the uncaught exception handler + 171: aload_3 + 172: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 177: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 180: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 183: ldc #37 // String Crashlytics + 185: ldc #41 // String Crashlytics completed exception processing. Invoking default exception handler. + 187: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 192: aload_0 + 193: getfield #228 // Field j:Ljava/lang/Thread$UncaughtExceptionHandler; + 196: aload_1 + 197: aload_2 + 198: invokeinterface #469, 3 // InterfaceMethod java/lang/Thread$UncaughtExceptionHandler.uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V + 203: aload_0 + 204: getfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 207: iconst_0 + 208: invokevirtual #459 // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V + 211: return + 212: astore_3 + 213: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 216: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 219: ldc #37 // String Crashlytics + 221: ldc #41 // String Crashlytics completed exception processing. Invoking default exception handler. + 223: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 228: aload_0 + 229: getfield #228 // Field j:Ljava/lang/Thread$UncaughtExceptionHandler; + 232: aload_1 + 233: aload_2 + 234: invokeinterface #469, 3 // InterfaceMethod java/lang/Thread$UncaughtExceptionHandler.uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V + 239: aload_0 + 240: getfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 243: iconst_0 + 244: invokevirtual #459 // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V + 247: aload_3 + 248: athrow + Exception table: + from to target type + 8 125 160 Class java/lang/Exception + 8 125 212 any + 160 177 212 any + LocalVariableTable: + Start Length Slot Name Signature + 0 249 0 this Lcom/crashlytics/android/v; + 0 249 1 thread Ljava/lang/Thread; + 0 249 2 ex Ljava/lang/Throwable; + LineNumberTable: + line 293: 0 + line 295: 8 + line 297: 49 + line 298: 60 + line 299: 75 + line 300: 88 + line 305: 101 + line 307: 109 + line 317: 125 + line 318: 140 + line 319: 151 + line 320: 159 + line 314: 160 + line 315: 161 + line 317: 177 + line 318: 192 + line 319: 203 + line 320: 211 + line 317: 212 + line 318: 228 + line 319: 239 + + final boolean b(); + flags: ACC_FINAL + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #138 // class com/crashlytics/android/O + 4: dup + 5: aload_0 + 6: invokespecial #286 // Method com/crashlytics/android/O."":(Lcom/crashlytics/android/v;)V + 9: invokespecial #378 // Method a:(Ljava/util/concurrent/Callable;)Ljava/lang/Object; + 12: checkcast #171 // class java/lang/Boolean + 15: invokevirtual #410 // Method java/lang/Boolean.booleanValue:()Z + 18: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 19 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 338: 0 + + final void a(java.lang.Thread, java.lang.Throwable); + flags: ACC_FINAL + Code: + stack=7, locals=4, args_size=3 + 0: new #188 // class java/util/Date + 3: dup + 4: invokespecial #448 // Method java/util/Date."":()V + 7: astore_3 + 8: aload_0 + 9: new #139 // class com/crashlytics/android/P + 12: dup + 13: aload_0 + 14: aload_3 + 15: aload_1 + 16: aload_2 + 17: invokespecial #287 // Method com/crashlytics/android/P."":(Lcom/crashlytics/android/v;Ljava/util/Date;Ljava/lang/Thread;Ljava/lang/Throwable;)V + 20: invokespecial #367 // Method a:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + 23: pop + 24: return + LocalVariableTable: + Start Length Slot Name Signature + 0 25 0 this Lcom/crashlytics/android/v; + 0 25 1 arg0 Ljava/lang/Thread; + 0 25 2 arg1 Ljava/lang/Throwable; + LineNumberTable: + line 357: 0 + line 359: 8 + line 367: 24 + + final void a(long, java.lang.String); + flags: ACC_FINAL + Code: + stack=7, locals=4, args_size=3 + 0: aload_0 + 1: new #160 // class com/crashlytics/android/x + 4: dup + 5: aload_0 + 6: lload_1 + 7: aload_3 + 8: invokespecial #393 // Method com/crashlytics/android/x."":(Lcom/crashlytics/android/v;JLjava/lang/String;)V + 11: invokespecial #381 // Method b:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + 14: pop + 15: return + LocalVariableTable: + Start Length Slot Name Signature + 0 16 0 this Lcom/crashlytics/android/v; + 0 16 1 arg0 J + 0 16 3 arg1 Ljava/lang/String; + LineNumberTable: + line 373: 0 + line 385: 15 + + private com.crashlytics.android.d a(com.crashlytics.android.internal.aq); + flags: ACC_PRIVATE + Code: + stack=6, locals=4, args_size=2 + 0: aload_1 + 1: ifnonnull 6 + 4: aconst_null + 5: areturn + 6: iconst_1 + 7: newarray int + 9: dup + 10: iconst_0 + 11: iconst_0 + 12: iastore + 13: astore_2 + 14: aload_1 + 15: invokevirtual #341 // Method com/crashlytics/android/internal/aq.a:()I + 18: newarray byte + 20: astore_3 + 21: aload_1 + 22: new #161 // class com/crashlytics/android/y + 25: dup + 26: aload_0 + 27: aload_3 + 28: aload_2 + 29: invokespecial #394 // Method com/crashlytics/android/y."":(Lcom/crashlytics/android/v;[B[I)V + 32: invokevirtual #342 // Method com/crashlytics/android/internal/aq.a:(Lcom/crashlytics/android/internal/au;)V + 35: goto 55 + 38: astore_1 + 39: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 42: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 45: ldc #37 // String Crashlytics + 47: ldc #19 // String A problem occurred while reading the Crashlytics log file. + 49: aload_1 + 50: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 55: aload_3 + 56: iconst_0 + 57: aload_2 + 58: iconst_0 + 59: iaload + 60: invokestatic #293 // Method com/crashlytics/android/d.a:([BII)Lcom/crashlytics/android/d; + 63: areturn + Exception table: + from to target type + 21 35 38 Class java/io/IOException + LocalVariableTable: + Start Length Slot Name Signature + 0 64 0 this Lcom/crashlytics/android/v; + 0 64 1 arg0 Lcom/crashlytics/android/internal/aq; + LineNumberTable: + line 402: 0 + line 403: 4 + line 409: 6 + line 411: 14 + line 414: 21 + line 427: 35 + line 425: 38 + line 426: 39 + line 429: 55 + + final void c(); + flags: ACC_FINAL + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #162 // class com/crashlytics/android/z + 4: dup + 5: aload_0 + 6: invokespecial #395 // Method com/crashlytics/android/z."":(Lcom/crashlytics/android/v;)V + 9: invokespecial #381 // Method b:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + 12: pop + 13: return + LocalVariableTable: + Start Length Slot Name Signature + 0 14 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 436: 0 + line 445: 13 + + final void d(); + flags: ACC_FINAL + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #122 // class com/crashlytics/android/A + 4: dup + 5: aload_0 + 6: invokespecial #255 // Method com/crashlytics/android/A."":(Lcom/crashlytics/android/v;)V + 9: invokespecial #381 // Method b:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + 12: pop + 13: return + LocalVariableTable: + Start Length Slot Name Signature + 0 14 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 448: 0 + line 458: 13 + + final void e(); + flags: ACC_FINAL + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #123 // class com/crashlytics/android/B + 4: dup + 5: aload_0 + 6: invokespecial #256 // Method com/crashlytics/android/B."":(Lcom/crashlytics/android/v;)V + 9: invokespecial #381 // Method b:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + 12: pop + 13: return + LocalVariableTable: + Start Length Slot Name Signature + 0 14 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 464: 0 + line 477: 13 + + final boolean f(); + flags: ACC_FINAL + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #124 // class com/crashlytics/android/C + 4: dup + 5: aload_0 + 6: invokespecial #257 // Method com/crashlytics/android/C."":(Lcom/crashlytics/android/v;)V + 9: invokespecial #378 // Method a:(Ljava/util/concurrent/Callable;)Ljava/lang/Object; + 12: checkcast #171 // class java/lang/Boolean + 15: invokevirtual #410 // Method java/lang/Boolean.booleanValue:()Z + 18: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 19 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 480: 0 + + static void a(com.crashlytics.android.internal.aq, int, long, java.lang.String); + flags: ACC_STATIC + Code: + stack=7, locals=5, args_size=4 + 0: aload_0 + 1: ifnonnull 5 + 4: return + 5: aload 4 + 7: ifnonnull 14 + 10: ldc #107 // String null + 12: astore 4 + 14: aload 4 + 16: invokevirtual #429 // Method java/lang/String.length:()I + 19: sipush 16384 + 22: if_icmple 56 + 25: new #182 // class java/lang/StringBuilder + 28: dup + 29: ldc #14 // String ... + 31: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 34: aload 4 + 36: aload 4 + 38: invokevirtual #429 // Method java/lang/String.length:()I + 41: sipush 16384 + 44: isub + 45: invokevirtual #432 // Method java/lang/String.substring:(I)Ljava/lang/String; + 48: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 51: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 54: astore 4 + 56: aload 4 + 58: ldc #5 // String \r + 60: ldc #6 // String + 62: invokevirtual #431 // Method java/lang/String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + 65: dup + 66: astore 4 + 68: ldc #4 // String \n + 70: ldc #6 // String + 72: invokevirtual #431 // Method java/lang/String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + 75: astore 4 + 77: getstatic #244 // Field java/util/Locale.US:Ljava/util/Locale; + 80: ldc #9 // String %d %s%n + 82: iconst_2 + 83: anewarray #177 // class java/lang/Object + 86: dup + 87: iconst_0 + 88: lload_2 + 89: invokestatic #414 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long; + 92: aastore + 93: dup + 94: iconst_1 + 95: aload 4 + 97: aastore + 98: invokestatic #427 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + 101: ldc #93 // String UTF-8 + 103: invokevirtual #428 // Method java/lang/String.getBytes:(Ljava/lang/String;)[B + 106: astore_1 + 107: aload_0 + 108: aload_1 + 109: invokevirtual #343 // Method com/crashlytics/android/internal/aq.a:([B)V + 112: aload_0 + 113: invokevirtual #344 // Method com/crashlytics/android/internal/aq.b:()Z + 116: ifne 135 + 119: aload_0 + 120: invokevirtual #341 // Method com/crashlytics/android/internal/aq.a:()I + 123: ldc #1 // int 65536 + 125: if_icmple 135 + 128: aload_0 + 129: invokevirtual #345 // Method com/crashlytics/android/internal/aq.c:()V + 132: goto 112 + 135: return + 136: astore_0 + 137: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 140: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 143: ldc #37 // String Crashlytics + 145: ldc #87 // String There was a problem writing to the Crashlytics log. + 147: aload_0 + 148: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 153: return + Exception table: + from to target type + 14 135 136 Class java/io/IOException + LocalVariableTable: + Start Length Slot Name Signature + 0 154 0 arg0 Lcom/crashlytics/android/internal/aq; + 0 154 1 arg1 I + 0 154 2 arg2 J + 0 154 4 arg3 Ljava/lang/String; + LineNumberTable: + line 532: 0 + line 533: 4 + line 535: 5 + line 536: 10 + line 556: 14 + line 559: 25 + line 562: 56 + line 563: 66 + line 565: 77 + line 567: 107 + line 570: 112 + line 571: 128 + line 575: 135 + line 573: 136 + line 574: 137 + line 576: 153 + + final boolean g(); + flags: ACC_FINAL + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: invokespecial #387 // Method o:()[Ljava/io/File; + 4: arraylength + 5: ifle 10 + 8: iconst_1 + 9: ireturn + 10: iconst_0 + 11: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 12 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 580: 0 + + private boolean k(); + flags: ACC_PRIVATE + Code: + stack=5, locals=3, args_size=1 + 0: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 3: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 6: ldc #100 // String com.crashlytics.CollectCustomLogs + 8: iconst_1 + 9: invokestatic #321 // Method com/crashlytics/android/internal/ab.a:(Landroid/content/Context;Ljava/lang/String;Z)Z + 12: dup + 13: istore_1 + 14: ifne 34 + 17: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 20: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 23: ldc #37 // String Crashlytics + 25: ldc #76 // String Preferences requested not to collect custom logs. Aborting log file creation. + 27: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 32: iconst_0 + 33: ireturn + 34: aload_0 + 35: getfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 38: new #182 // class java/lang/StringBuilder + 41: dup + 42: ldc #34 // String Could not close log file: + 44: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 47: aload_0 + 48: getfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 51: invokevirtual #436 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + 54: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 57: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 60: aconst_null + 61: astore_1 + 62: new #182 // class java/lang/StringBuilder + 65: dup + 66: ldc #103 // String crashlytics-userlog- + 68: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 71: invokestatic #454 // Method java/util/UUID.randomUUID:()Ljava/util/UUID; + 74: invokevirtual #455 // Method java/util/UUID.toString:()Ljava/lang/String; + 77: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 80: ldc #15 // String .temp + 82: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 85: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 88: astore_2 + 89: new #163 // class java/io/File + 92: dup + 93: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 96: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 99: aload_2 + 100: invokespecial #396 // Method java/io/File."":(Ljava/io/File;Ljava/lang/String;)V + 103: astore_1 + 104: aload_0 + 105: new #154 // class com/crashlytics/android/internal/aq + 108: dup + 109: aload_1 + 110: invokespecial #340 // Method com/crashlytics/android/internal/aq."":(Ljava/io/File;)V + 113: putfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 116: aload_1 + 117: invokevirtual #398 // Method java/io/File.delete:()Z + 120: pop + 121: goto 157 + 124: astore_2 + 125: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 128: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 131: ldc #37 // String Crashlytics + 133: new #182 // class java/lang/StringBuilder + 136: dup + 137: ldc #35 // String Could not create log file: + 139: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 142: aload_1 + 143: invokevirtual #436 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + 146: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 149: aload_2 + 150: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 155: iconst_0 + 156: ireturn + 157: iconst_1 + 158: ireturn + Exception table: + from to target type + 62 121 124 Class java/lang/Exception + LocalVariableTable: + Start Length Slot Name Signature + 0 159 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 603: 0 + line 606: 13 + line 607: 17 + line 608: 32 + line 612: 34 + line 614: 60 + line 625: 62 + line 626: 89 + line 627: 104 + line 628: 116 + line 632: 121 + line 629: 124 + line 630: 125 + line 631: 155 + line 634: 157 + + private void l() throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=7, locals=16, args_size=1 + 0: new #188 // class java/util/Date + 3: dup + 4: invokespecial #448 // Method java/util/Date."":()V + 7: astore_1 + 8: new #145 // class com/crashlytics/android/e + 11: dup + 12: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 15: invokevirtual #260 // Method com/crashlytics/android/Crashlytics.b:()Lcom/crashlytics/android/internal/ao; + 18: invokespecial #294 // Method com/crashlytics/android/e."":(Lcom/crashlytics/android/internal/ao;)V + 21: invokevirtual #295 // Method com/crashlytics/android/e.toString:()Ljava/lang/String; + 24: astore_2 + 25: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 28: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 31: ldc #37 // String Crashlytics + 33: new #182 // class java/lang/StringBuilder + 36: dup + 37: ldc #75 // String Opening an new session with ID + 39: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 42: aload_2 + 43: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 46: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 49: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 54: aload_0 + 55: aload_1 + 56: aload_2 + 57: astore 4 + 59: astore_3 + 60: astore_1 + 61: aconst_null + 62: astore 5 + 64: aconst_null + 65: astore 6 + 67: new #146 // class com/crashlytics/android/f + 70: dup + 71: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 74: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 77: new #182 // class java/lang/StringBuilder + 80: dup + 81: invokespecial #434 // Method java/lang/StringBuilder."":()V + 84: aload 4 + 86: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 89: ldc #25 // String BeginSession + 91: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 94: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 97: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 100: dup + 101: astore 5 + 103: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 106: dup + 107: astore 6 + 109: iconst_1 + 110: aload_1 + 111: getfield #232 // Field n:Ljava/lang/String; + 114: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 117: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 120: aload 6 + 122: iconst_2 + 123: aload 4 + 125: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 128: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 131: aload 6 + 133: iconst_3 + 134: aload_3 + 135: invokevirtual #449 // Method java/util/Date.getTime:()J + 138: ldc2_w #207 // long 1000l + 141: ldiv + 142: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 145: aload 6 + 147: ldc #68 // String Failed to flush to session begin file. + 149: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 152: aload 5 + 154: ldc #52 // String Failed to close begin session file. + 156: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 159: goto 191 + 162: astore_3 + 163: aload_1 + 164: aload_3 + 165: aload 5 + 167: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 170: aload_3 + 171: athrow + 172: astore 7 + 174: aload 6 + 176: ldc #68 // String Failed to flush to session begin file. + 178: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 181: aload 5 + 183: ldc #52 // String Failed to close begin session file. + 185: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 188: aload 7 + 190: athrow + 191: aload_0 + 192: aload_2 + 193: astore_3 + 194: astore_1 + 195: aconst_null + 196: astore 4 + 198: aconst_null + 199: astore 5 + 201: new #146 // class com/crashlytics/android/f + 204: dup + 205: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 208: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 211: new #182 // class java/lang/StringBuilder + 214: dup + 215: invokespecial #434 // Method java/lang/StringBuilder."":()V + 218: aload_3 + 219: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 222: ldc #80 // String SessionApp + 224: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 227: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 230: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 233: dup + 234: astore 4 + 236: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 239: astore 5 + 241: invokestatic #262 // Method com/crashlytics/android/Crashlytics.d:()Ljava/lang/String; + 244: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 247: astore 6 + 249: invokestatic #265 // Method com/crashlytics/android/Crashlytics.g:()Ljava/lang/String; + 252: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 255: astore_3 + 256: invokestatic #264 // Method com/crashlytics/android/Crashlytics.f:()Ljava/lang/String; + 259: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 262: astore 7 + 264: invokestatic #269 // Method com/crashlytics/android/Crashlytics.h:()Ljava/lang/String; + 267: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 270: pop + 271: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 274: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 277: invokevirtual #245 // Method android/content/Context.getPackageCodePath:()Ljava/lang/String; + 280: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 283: pop + 284: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 287: invokevirtual #260 // Method com/crashlytics/android/Crashlytics.b:()Lcom/crashlytics/android/internal/ao; + 290: invokevirtual #337 // Method com/crashlytics/android/internal/ao.b:()Ljava/lang/String; + 293: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 296: astore 9 + 298: invokestatic #263 // Method com/crashlytics/android/Crashlytics.e:()Ljava/lang/String; + 301: invokestatic #336 // Method com/crashlytics/android/internal/ai.a:(Ljava/lang/String;)Lcom/crashlytics/android/internal/ai; + 304: invokevirtual #335 // Method com/crashlytics/android/internal/ai.a:()I + 307: istore 10 + 309: aload 5 + 311: bipush 7 + 313: iconst_2 + 314: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 317: aload 5 + 319: aload_1 + 320: aload 6 + 322: aload_3 + 323: aload 7 + 325: aload 9 + 327: iload 10 + 329: istore 15 + 331: astore 14 + 333: astore 13 + 335: astore 12 + 337: astore 8 + 339: astore 11 + 341: iconst_0 + 342: iconst_1 + 343: aload 8 + 345: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 348: iadd + 349: dup + 350: istore 8 + 352: iconst_2 + 353: aload 12 + 355: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 358: iadd + 359: dup + 360: istore 8 + 362: iconst_3 + 363: aload 13 + 365: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 368: iadd + 369: istore 8 + 371: invokestatic #389 // Method q:()I + 374: istore 11 + 376: iload 8 + 378: iconst_5 + 379: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 382: iload 11 + 384: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 387: iadd + 388: iload 11 + 390: iadd + 391: iadd + 392: dup + 393: istore 8 + 395: bipush 6 + 397: aload 14 + 399: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 402: iadd + 403: dup + 404: istore 8 + 406: bipush 10 + 408: iload 15 + 410: invokestatic #316 // Method com/crashlytics/android/h.e:(II)I + 413: iadd + 414: dup + 415: istore 8 + 417: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 420: aload 5 + 422: iconst_1 + 423: aload 6 + 425: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 428: aload 5 + 430: iconst_2 + 431: aload_3 + 432: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 435: aload 5 + 437: iconst_3 + 438: aload 7 + 440: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 443: aload 5 + 445: iconst_5 + 446: iconst_2 + 447: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 450: aload 5 + 452: invokestatic #389 // Method q:()I + 455: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 458: aload 5 + 460: iconst_1 + 461: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 464: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 467: dup + 468: astore_3 + 469: iconst_0 + 470: invokestatic #346 // Method com/crashlytics/android/internal/r.a:(Landroid/content/Context;Z)Ljava/lang/String; + 473: invokevirtual #303 // Method com/crashlytics/android/h.a:(ILjava/lang/String;)V + 476: aload 5 + 478: bipush 6 + 480: aload 9 + 482: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 485: aload 5 + 487: bipush 10 + 489: iload 10 + 491: invokevirtual #309 // Method com/crashlytics/android/h.b:(II)V + 494: aload 5 + 496: ldc #67 // String Failed to flush to session app file. + 498: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 501: aload 4 + 503: ldc #57 // String Failed to close session app file. + 505: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 508: goto 541 + 511: astore 6 + 513: aload_1 + 514: aload 6 + 516: aload 4 + 518: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 521: aload 6 + 523: athrow + 524: astore_1 + 525: aload 5 + 527: ldc #67 // String Failed to flush to session app file. + 529: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 532: aload 4 + 534: ldc #57 // String Failed to close session app file. + 536: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 539: aload_1 + 540: athrow + 541: aload_0 + 542: aload_2 + 543: astore_3 + 544: astore_1 + 545: aconst_null + 546: astore 4 + 548: aconst_null + 549: astore 5 + 551: new #146 // class com/crashlytics/android/f + 554: dup + 555: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 558: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 561: new #182 // class java/lang/StringBuilder + 564: dup + 565: invokespecial #434 // Method java/lang/StringBuilder."":()V + 568: aload_3 + 569: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 572: ldc #84 // String SessionOS + 574: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 577: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 580: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 583: dup + 584: astore 4 + 586: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 589: astore 5 + 591: getstatic #215 // Field android/os/Build$VERSION.RELEASE:Ljava/lang/String; + 594: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 597: astore 6 + 599: getstatic #214 // Field android/os/Build$VERSION.CODENAME:Ljava/lang/String; + 602: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 605: astore_3 + 606: invokestatic #332 // Method com/crashlytics/android/internal/ab.e:()Z + 609: istore 7 + 611: aload 5 + 613: bipush 8 + 615: iconst_2 + 616: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 619: aload 5 + 621: aload 6 + 623: aload_3 + 624: iload 7 + 626: istore 10 + 628: astore 9 + 630: astore 8 + 632: iconst_0 + 633: iconst_1 + 634: iconst_3 + 635: invokestatic #316 // Method com/crashlytics/android/h.e:(II)I + 638: iadd + 639: dup + 640: istore 11 + 642: iconst_2 + 643: aload 8 + 645: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 648: iadd + 649: dup + 650: istore 11 + 652: iconst_3 + 653: aload 9 + 655: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 658: iadd + 659: dup + 660: istore 11 + 662: iconst_4 + 663: iload 10 + 665: invokestatic #312 // Method com/crashlytics/android/h.b:(IZ)I + 668: iadd + 669: dup + 670: istore 11 + 672: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 675: aload 5 + 677: iconst_1 + 678: iconst_3 + 679: invokevirtual #309 // Method com/crashlytics/android/h.b:(II)V + 682: aload 5 + 684: iconst_2 + 685: aload 6 + 687: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 690: aload 5 + 692: iconst_3 + 693: aload_3 + 694: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 697: aload 5 + 699: iconst_4 + 700: iload 7 + 702: invokevirtual #304 // Method com/crashlytics/android/h.a:(IZ)V + 705: aload 5 + 707: ldc #66 // String Failed to flush to session OS file. + 709: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 712: aload 4 + 714: ldc #56 // String Failed to close session OS file. + 716: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 719: goto 752 + 722: astore 6 + 724: aload_1 + 725: aload 6 + 727: aload 4 + 729: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 732: aload 6 + 734: athrow + 735: astore_1 + 736: aload 5 + 738: ldc #66 // String Failed to flush to session OS file. + 740: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 743: aload 4 + 745: ldc #56 // String Failed to close session OS file. + 747: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 750: aload_1 + 751: athrow + 752: aload_0 + 753: aload_2 + 754: invokespecial #382 // Method c:(Ljava/lang/String;)V + 757: return + Exception table: + from to target type + 67 145 162 Class java/lang/Exception + 67 145 172 any + 162 174 172 any + 201 494 511 Class java/lang/Exception + 201 494 524 any + 511 525 524 any + 551 705 722 Class java/lang/Exception + 551 705 735 any + 722 736 735 any + LocalVariableTable: + Start Length Slot Name Signature + 0 758 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 714: 0 + line 715: 8 + line 717: 25 + line 719: 54 + line 720: 191 + line 721: 541 + line 722: 752 + line 723: 757 + Exceptions: + throws java.lang.Exception + + private void m() throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=8, locals=15, args_size=1 + 0: aload_0 + 1: bipush 8 + 3: istore 6 + 5: astore 5 + 7: new #189 // class java/util/HashSet + 10: dup + 11: invokespecial #450 // Method java/util/HashSet."":()V + 14: astore 7 + 16: aload 5 + 18: invokespecial #387 // Method o:()[Ljava/io/File; + 21: dup + 22: astore 8 + 24: getstatic #220 // Field b:Ljava/util/Comparator; + 27: invokestatic #446 // Method java/util/Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V + 30: bipush 8 + 32: aload 8 + 34: arraylength + 35: invokestatic #416 // Method java/lang/Math.min:(II)I + 38: istore 9 + 40: iconst_0 + 41: istore 10 + 43: iload 10 + 45: iload 9 + 47: if_icmpge 76 + 50: aload 8 + 52: iload 10 + 54: aaload + 55: invokestatic #365 // Method a:(Ljava/io/File;)Ljava/lang/String; + 58: astore 11 + 60: aload 7 + 62: aload 11 + 64: invokeinterface #479, 2 // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z + 69: pop + 70: iinc 10, 1 + 73: goto 43 + 76: aload 5 + 78: new #140 // class com/crashlytics/android/Q + 81: dup + 82: iconst_0 + 83: invokespecial #288 // Method com/crashlytics/android/Q."":(B)V + 86: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 89: dup + 90: astore 10 + 92: dup + 93: astore 11 + 95: arraylength + 96: istore 12 + 98: iconst_0 + 99: istore 13 + 101: iload 13 + 103: iload 12 + 105: if_icmpge 193 + 108: aload 11 + 110: iload 13 + 112: aaload + 113: dup + 114: astore 14 + 116: invokevirtual #400 // Method java/io/File.getName:()Ljava/lang/String; + 119: astore_1 + 120: getstatic #222 // Field d:Ljava/util/regex/Pattern; + 123: aload_1 + 124: invokevirtual #465 // Method java/util/regex/Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; + 127: dup + 128: astore 6 + 130: invokevirtual #463 // Method java/util/regex/Matcher.matches:()Z + 133: pop + 134: aload 6 + 136: iconst_1 + 137: invokevirtual #462 // Method java/util/regex/Matcher.group:(I)Ljava/lang/String; + 140: astore_2 + 141: aload 7 + 143: aload_2 + 144: invokeinterface #480, 2 // InterfaceMethod java/util/Set.contains:(Ljava/lang/Object;)Z + 149: ifne 187 + 152: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 155: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 158: ldc #37 // String Crashlytics + 160: new #182 // class java/lang/StringBuilder + 163: dup + 164: ldc #92 // String Trimming open session file: + 166: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 169: aload_1 + 170: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 173: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 176: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 181: aload 14 + 183: invokevirtual #398 // Method java/io/File.delete:()Z + 186: pop + 187: iinc 13, 1 + 190: goto 101 + 193: aload_0 + 194: invokespecial #386 // Method n:()Ljava/lang/String; + 197: dup + 198: astore_1 + 199: ifnull 1243 + 202: aload_0 + 203: aload_1 + 204: astore 6 + 206: astore 5 + 208: aconst_null + 209: astore 7 + 211: aconst_null + 212: astore 8 + 214: new #146 // class com/crashlytics/android/f + 217: dup + 218: aload 5 + 220: getfield #229 // Field k:Ljava/io/File; + 223: new #182 // class java/lang/StringBuilder + 226: dup + 227: invokespecial #434 // Method java/lang/StringBuilder."":()V + 230: aload 6 + 232: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 235: ldc #85 // String SessionUser + 237: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 240: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 243: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 246: dup + 247: astore 7 + 249: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 252: astore 8 + 254: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 257: invokevirtual #271 // Method com/crashlytics/android/Crashlytics.m:()Ljava/lang/String; + 260: astore 9 + 262: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 265: invokevirtual #273 // Method com/crashlytics/android/Crashlytics.o:()Ljava/lang/String; + 268: astore 10 + 270: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 273: invokevirtual #272 // Method com/crashlytics/android/Crashlytics.n:()Ljava/lang/String; + 276: astore 11 + 278: aload 9 + 280: ifnonnull 310 + 283: aload 10 + 285: ifnonnull 310 + 288: aload 11 + 290: ifnonnull 310 + 293: aload 8 + 295: ldc #64 // String Failed to flush session user file. + 297: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 300: aload 7 + 302: ldc #59 // String Failed to close session user file. + 304: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 307: goto 494 + 310: aload 9 + 312: ifnonnull 320 + 315: ldc #2 // String + 317: goto 322 + 320: aload 9 + 322: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 325: astore 12 + 327: aload 10 + 329: ifnonnull 336 + 332: aconst_null + 333: goto 341 + 336: aload 10 + 338: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 341: astore 13 + 343: aload 11 + 345: ifnonnull 352 + 348: aconst_null + 349: goto 357 + 352: aload 11 + 354: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 357: astore 14 + 359: iconst_0 + 360: iconst_1 + 361: aload 12 + 363: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 366: iadd + 367: istore_1 + 368: aload 13 + 370: ifnull 382 + 373: iload_1 + 374: iconst_2 + 375: aload 13 + 377: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 380: iadd + 381: istore_1 + 382: aload 14 + 384: ifnull 396 + 387: iload_1 + 388: iconst_3 + 389: aload 14 + 391: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 394: iadd + 395: istore_1 + 396: aload 8 + 398: bipush 6 + 400: iconst_2 + 401: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 404: aload 8 + 406: iload_1 + 407: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 410: aload 8 + 412: iconst_1 + 413: aload 12 + 415: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 418: aload 13 + 420: ifnull 431 + 423: aload 8 + 425: iconst_2 + 426: aload 13 + 428: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 431: aload 14 + 433: ifnull 444 + 436: aload 8 + 438: iconst_3 + 439: aload 14 + 441: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 444: aload 8 + 446: ldc #64 // String Failed to flush session user file. + 448: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 451: aload 7 + 453: ldc #59 // String Failed to close session user file. + 455: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 458: goto 494 + 461: astore 9 + 463: aload 5 + 465: aload 9 + 467: aload 7 + 469: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 472: aload 9 + 474: athrow + 475: astore 6 + 477: aload 8 + 479: ldc #64 // String Failed to flush session user file. + 481: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 484: aload 7 + 486: ldc #59 // String Failed to close session user file. + 488: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 491: aload 6 + 493: athrow + 494: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 497: invokevirtual #274 // Method com/crashlytics/android/Crashlytics.r:()Lcom/crashlytics/android/internal/aR; + 500: dup + 501: astore_1 + 502: ifnull 1227 + 505: aload_1 + 506: getfield #216 // Field com/crashlytics/android/internal/aR.a:I + 509: istore_1 + 510: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 513: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 516: ldc #37 // String Crashlytics + 518: ldc #29 // String Closing all open sessions. + 520: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 525: aload_0 + 526: invokespecial #387 // Method o:()[Ljava/io/File; + 529: dup + 530: astore_2 + 531: ifnull 1224 + 534: aload_2 + 535: arraylength + 536: ifle 1224 + 539: aload_2 + 540: dup + 541: astore_2 + 542: arraylength + 543: istore_3 + 544: iconst_0 + 545: istore 4 + 547: iload 4 + 549: iload_3 + 550: if_icmpge 1224 + 553: aload_2 + 554: iload 4 + 556: aaload + 557: dup + 558: astore 5 + 560: invokestatic #365 // Method a:(Ljava/io/File;)Ljava/lang/String; + 563: astore 6 + 565: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 568: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 571: ldc #37 // String Crashlytics + 573: new #182 // class java/lang/StringBuilder + 576: dup + 577: ldc #30 // String Closing session: + 579: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 582: aload 6 + 584: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 587: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 590: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 595: aload_0 + 596: aload 5 + 598: aload 6 + 600: iload_1 + 601: istore 8 + 603: astore 7 + 605: astore 6 + 607: astore 5 + 609: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 612: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 615: ldc #37 // String Crashlytics + 617: new #182 // class java/lang/StringBuilder + 620: dup + 621: ldc #33 // String Collecting session parts for ID + 623: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 626: aload 7 + 628: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 631: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 634: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 639: aload 5 + 641: new #141 // class com/crashlytics/android/R + 644: dup + 645: new #182 // class java/lang/StringBuilder + 648: dup + 649: invokespecial #434 // Method java/lang/StringBuilder."":()V + 652: aload 7 + 654: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 657: ldc #81 // String SessionCrash + 659: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 662: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 665: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 668: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 671: dup + 672: astore 9 + 674: ifnull 687 + 677: aload 9 + 679: arraylength + 680: ifle 687 + 683: iconst_1 + 684: goto 688 + 687: iconst_0 + 688: istore 10 + 690: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 693: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 696: ldc #37 // String Crashlytics + 698: getstatic #244 // Field java/util/Locale.US:Ljava/util/Locale; + 701: ldc #78 // String Session %s has fatal exception: %s + 703: iconst_2 + 704: anewarray #177 // class java/lang/Object + 707: dup + 708: iconst_0 + 709: aload 7 + 711: aastore + 712: dup + 713: iconst_1 + 714: iload 10 + 716: invokestatic #411 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean; + 719: aastore + 720: invokestatic #427 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + 723: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 728: aload 5 + 730: new #141 // class com/crashlytics/android/R + 733: dup + 734: new #182 // class java/lang/StringBuilder + 737: dup + 738: invokespecial #434 // Method java/lang/StringBuilder."":()V + 741: aload 7 + 743: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 746: ldc #83 // String SessionEvent + 748: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 751: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 754: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 757: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 760: dup + 761: astore 11 + 763: ifnull 776 + 766: aload 11 + 768: arraylength + 769: ifle 776 + 772: iconst_1 + 773: goto 777 + 776: iconst_0 + 777: istore 12 + 779: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 782: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 785: ldc #37 // String Crashlytics + 787: getstatic #244 // Field java/util/Locale.US:Ljava/util/Locale; + 790: ldc #79 // String Session %s has non-fatal exceptions: %s + 792: iconst_2 + 793: anewarray #177 // class java/lang/Object + 796: dup + 797: iconst_0 + 798: aload 7 + 800: aastore + 801: dup + 802: iconst_1 + 803: iload 12 + 805: invokestatic #411 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean; + 808: aastore + 809: invokestatic #427 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + 812: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 817: iload 10 + 819: ifne 827 + 822: iload 12 + 824: ifeq 1151 + 827: aconst_null + 828: astore 13 + 830: aconst_null + 831: astore 14 + 833: new #146 // class com/crashlytics/android/f + 836: dup + 837: aload 5 + 839: getfield #229 // Field k:Ljava/io/File; + 842: aload 7 + 844: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 847: dup + 848: astore 13 + 850: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 853: astore 14 + 855: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 858: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 861: ldc #37 // String Crashlytics + 863: new #182 // class java/lang/StringBuilder + 866: dup + 867: ldc #32 // String Collecting SessionStart data for session ID + 869: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 872: aload 7 + 874: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 877: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 880: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 885: aload 14 + 887: aload 6 + 889: invokestatic #356 // Method a:(Lcom/crashlytics/android/h;Ljava/io/File;)V + 892: aload 14 + 894: iconst_4 + 895: new #188 // class java/util/Date + 898: dup + 899: invokespecial #448 // Method java/util/Date."":()V + 902: invokevirtual #449 // Method java/util/Date.getTime:()J + 905: ldc2_w #207 // long 1000l + 908: ldiv + 909: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 912: aload 14 + 914: iconst_5 + 915: iload 10 + 917: invokevirtual #304 // Method com/crashlytics/android/h.a:(IZ)V + 920: aload 5 + 922: aload 14 + 924: aload 7 + 926: invokespecial #357 // Method a:(Lcom/crashlytics/android/h;Ljava/lang/String;)V + 929: iload 12 + 931: ifeq 1029 + 934: aload 11 + 936: arraylength + 937: iload 8 + 939: if_icmple 1018 + 942: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 945: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 948: ldc #37 // String Crashlytics + 950: getstatic #244 // Field java/util/Locale.US:Ljava/util/Locale; + 953: ldc #91 // String Trimming down to %d logged exceptions. + 955: iconst_1 + 956: anewarray #177 // class java/lang/Object + 959: dup + 960: iconst_0 + 961: iload 8 + 963: invokestatic #413 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; + 966: aastore + 967: invokestatic #427 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + 970: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 975: aload 5 + 977: aload 7 + 979: iload 8 + 981: invokespecial #370 // Method a:(Ljava/lang/String;I)V + 984: aload 5 + 986: new #141 // class com/crashlytics/android/R + 989: dup + 990: new #182 // class java/lang/StringBuilder + 993: dup + 994: invokespecial #434 // Method java/lang/StringBuilder."":()V + 997: aload 7 + 999: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 1002: ldc #83 // String SessionEvent + 1004: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 1007: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 1010: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 1013: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 1016: astore 11 + 1018: aload 5 + 1020: aload 14 + 1022: aload 11 + 1024: aload 7 + 1026: invokespecial #362 // Method a:(Lcom/crashlytics/android/h;[Ljava/io/File;Ljava/lang/String;)V + 1029: iload 10 + 1031: ifeq 1043 + 1034: aload 14 + 1036: aload 9 + 1038: iconst_0 + 1039: aaload + 1040: invokestatic #356 // Method a:(Lcom/crashlytics/android/h;Ljava/io/File;)V + 1043: aload 14 + 1045: bipush 11 + 1047: iconst_1 + 1048: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 1051: aload 14 + 1053: bipush 12 + 1055: iconst_3 + 1056: invokevirtual #309 // Method com/crashlytics/android/h.b:(II)V + 1059: aload 14 + 1061: ldc #47 // String Error flushing session file stream + 1063: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 1066: aload 13 + 1068: ldc #51 // String Failed to close CLS file + 1070: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 1073: goto 1181 + 1076: astore 6 + 1078: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 1081: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 1084: ldc #37 // String Crashlytics + 1086: new #182 // class java/lang/StringBuilder + 1089: dup + 1090: ldc #69 // String Failed to write session file for session ID: + 1092: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 1095: aload 7 + 1097: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 1100: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 1103: aload 6 + 1105: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 1110: aload 5 + 1112: aload 6 + 1114: aload 13 + 1116: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 1119: aload 14 + 1121: ldc #47 // String Error flushing session file stream + 1123: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 1126: aload 13 + 1128: invokestatic #354 // Method a:(Lcom/crashlytics/android/f;)V + 1131: goto 1181 + 1134: astore_2 + 1135: aload 14 + 1137: ldc #47 // String Error flushing session file stream + 1139: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 1142: aload 13 + 1144: ldc #51 // String Failed to close CLS file + 1146: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 1149: aload_2 + 1150: athrow + 1151: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 1154: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 1157: ldc #37 // String Crashlytics + 1159: new #182 // class java/lang/StringBuilder + 1162: dup + 1163: ldc #72 // String No events present for session ID + 1165: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 1168: aload 7 + 1170: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 1173: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 1176: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 1181: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 1184: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 1187: ldc #37 // String Crashlytics + 1189: new #182 // class java/lang/StringBuilder + 1192: dup + 1193: ldc #77 // String Removing session part files for ID + 1195: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 1198: aload 7 + 1200: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 1203: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 1206: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 1211: aload 5 + 1213: aload 7 + 1215: invokespecial #369 // Method a:(Ljava/lang/String;)V + 1218: iinc 4, 1 + 1221: goto 547 + 1224: goto 1258 + 1227: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 1230: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 1233: ldc #37 // String Crashlytics + 1235: ldc #74 // String No session begin files found. + 1237: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 1242: return + 1243: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 1246: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 1249: ldc #37 // String Crashlytics + 1251: ldc #94 // String Unable to close session. Settings are not loaded. + 1253: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 1258: return + Exception table: + from to target type + 214 293 461 Class java/lang/Exception + 310 444 461 Class java/lang/Exception + 214 293 475 any + 310 444 475 any + 461 477 475 any + 833 1059 1076 Class java/lang/Exception + 833 1059 1134 any + 1076 1119 1134 any + LocalVariableTable: + Start Length Slot Name Signature + 0 1259 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 729: 0 + line 731: 193 + line 733: 198 + line 736: 202 + line 738: 494 + line 740: 501 + line 741: 505 + line 743: 510 + line 744: 525 + line 746: 530 + line 747: 539 + line 748: 558 + line 749: 565 + line 750: 595 + line 747: 1218 + line 753: 1224 + line 754: 1227 + line 756: 1242 + line 757: 1243 + line 759: 1258 + Exceptions: + throws java.lang.Exception + + private java.lang.String n(); + flags: ACC_PRIVATE + Code: + stack=4, locals=2, args_size=1 + 0: aload_0 + 1: new #141 // class com/crashlytics/android/R + 4: dup + 5: ldc #25 // String BeginSession + 7: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 10: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 13: dup + 14: astore_1 + 15: getstatic #220 // Field b:Ljava/util/Comparator; + 18: invokestatic #446 // Method java/util/Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V + 21: aload_1 + 22: arraylength + 23: ifle 33 + 26: aload_1 + 27: iconst_0 + 28: aaload + 29: invokestatic #365 // Method a:(Ljava/io/File;)Ljava/lang/String; + 32: areturn + 33: aconst_null + 34: areturn + LocalVariableTable: + Start Length Slot Name Signature + 0 35 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 771: 0 + line 772: 14 + line 773: 21 + + private static java.lang.String a(java.io.File); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=3, locals=1, args_size=1 + 0: aload_0 + 1: invokevirtual #400 // Method java/io/File.getName:()Ljava/lang/String; + 4: iconst_0 + 5: bipush 35 + 7: invokevirtual #433 // Method java/lang/String.substring:(II)Ljava/lang/String; + 10: areturn + LocalVariableTable: + Start Length Slot Name Signature + 0 11 0 arg0 Ljava/io/File; + LineNumberTable: + line 786: 0 + + private static void a(com.crashlytics.android.f); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: ifnull 26 + 4: aload_0 + 5: invokevirtual #297 // Method com/crashlytics/android/f.a:()V + 8: return + 9: astore_0 + 10: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 13: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 16: ldc #37 // String Crashlytics + 18: ldc #46 // String Error closing session file stream in the presence of an exception + 20: aload_0 + 21: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 26: return + Exception table: + from to target type + 4 8 9 Class java/io/IOException + LocalVariableTable: + Start Length Slot Name Signature + 0 27 0 arg0 Lcom/crashlytics/android/f; + LineNumberTable: + line 872: 0 + line 874: 4 + line 877: 8 + line 875: 9 + line 876: 10 + line 879: 26 + + private void a(com.crashlytics.android.h, java.io.File[], java.lang.String); + flags: ACC_PRIVATE + Code: + stack=8, locals=7, args_size=4 + 0: aload_2 + 1: getstatic #217 // Field com/crashlytics/android/internal/ab.a:Ljava/util/Comparator; + 4: invokestatic #446 // Method java/util/Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V + 7: aload_2 + 8: dup + 9: astore_2 + 10: arraylength + 11: istore 4 + 13: iconst_0 + 14: istore 5 + 16: iload 5 + 18: iload 4 + 20: if_icmpge 100 + 23: aload_2 + 24: iload 5 + 26: aaload + 27: astore 6 + 29: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 32: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 35: ldc #37 // String Crashlytics + 37: getstatic #244 // Field java/util/Locale.US:Ljava/util/Locale; + 40: ldc #70 // String Found Non Fatal for session ID %s in %s + 42: iconst_2 + 43: anewarray #177 // class java/lang/Object + 46: dup + 47: iconst_0 + 48: aload_3 + 49: aastore + 50: dup + 51: iconst_1 + 52: aload 6 + 54: invokevirtual #400 // Method java/io/File.getName:()Ljava/lang/String; + 57: aastore + 58: invokestatic #427 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + 61: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 66: aload_1 + 67: aload 6 + 69: invokestatic #356 // Method a:(Lcom/crashlytics/android/h;Ljava/io/File;)V + 72: goto 94 + 75: astore 6 + 77: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 80: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 83: ldc #37 // String Crashlytics + 85: ldc #48 // String Error writting non-fatal to session. + 87: aload 6 + 89: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 94: iinc 5, 1 + 97: goto 16 + 100: return + Exception table: + from to target type + 29 72 75 Class java/lang/Exception + LocalVariableTable: + Start Length Slot Name Signature + 0 101 0 this Lcom/crashlytics/android/v; + 0 101 1 arg0 Lcom/crashlytics/android/h; + 0 101 2 arg1 [Ljava/io/File; + 0 101 3 arg2 Ljava/lang/String; + LineNumberTable: + line 882: 0 + line 884: 7 + line 886: 29 + line 887: 66 + line 890: 72 + line 888: 75 + line 889: 77 + line 884: 94 + line 892: 100 + + private void a(com.crashlytics.android.h, java.lang.String) throws java.io.IOException; + flags: ACC_PRIVATE + Code: + stack=5, locals=8, args_size=3 + 0: iconst_4 + 1: anewarray #181 // class java/lang/String + 4: dup + 5: iconst_0 + 6: ldc #85 // String SessionUser + 8: aastore + 9: dup + 10: iconst_1 + 11: ldc #80 // String SessionApp + 13: aastore + 14: dup + 15: iconst_2 + 16: ldc #84 // String SessionOS + 18: aastore + 19: dup + 20: iconst_3 + 21: ldc #82 // String SessionDevice + 23: aastore + 24: dup + 25: astore_3 + 26: dup + 27: astore_3 + 28: arraylength + 29: istore 4 + 31: iconst_0 + 32: istore 5 + 34: iload 5 + 36: iload 4 + 38: if_icmpge 180 + 41: aload_3 + 42: iload 5 + 44: aaload + 45: astore 6 + 47: aload_0 + 48: new #141 // class com/crashlytics/android/R + 51: dup + 52: new #182 // class java/lang/StringBuilder + 55: dup + 56: invokespecial #434 // Method java/lang/StringBuilder."":()V + 59: aload_2 + 60: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 63: aload 6 + 65: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 68: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 71: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 74: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 77: dup + 78: astore 7 + 80: arraylength + 81: ifne 127 + 84: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 87: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 90: ldc #37 // String Crashlytics + 92: new #182 // class java/lang/StringBuilder + 95: dup + 96: ldc #26 // String Can't find + 98: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 101: aload 6 + 103: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 106: ldc #7 // String data for session ID + 108: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 111: aload_2 + 112: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 115: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 118: aconst_null + 119: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 124: goto 174 + 127: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 130: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 133: ldc #37 // String Crashlytics + 135: new #182 // class java/lang/StringBuilder + 138: dup + 139: ldc #31 // String Collecting + 141: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 144: aload 6 + 146: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 149: ldc #7 // String data for session ID + 151: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 154: aload_2 + 155: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 158: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 161: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 166: aload_1 + 167: aload 7 + 169: iconst_0 + 170: aaload + 171: invokestatic #356 // Method a:(Lcom/crashlytics/android/h;Ljava/io/File;)V + 174: iinc 5, 1 + 177: goto 34 + 180: return + LocalVariableTable: + Start Length Slot Name Signature + 0 181 0 this Lcom/crashlytics/android/v; + 0 181 1 arg0 Lcom/crashlytics/android/h; + 0 181 2 arg1 Ljava/lang/String; + LineNumberTable: + line 895: 0 + line 897: 25 + line 898: 47 + line 900: 78 + line 901: 84 + line 903: 127 + line 904: 166 + line 897: 174 + line 907: 180 + Exceptions: + throws java.io.IOException + + private void a(java.lang.String); + flags: ACC_PRIVATE + Code: + stack=4, locals=5, args_size=2 + 0: aload_0 + 1: aload_1 + 2: astore_2 + 3: dup + 4: astore_1 + 5: new #142 // class com/crashlytics/android/S + 8: dup + 9: aload_2 + 10: invokespecial #290 // Method com/crashlytics/android/S."":(Ljava/lang/String;)V + 13: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 16: dup + 17: astore_1 + 18: arraylength + 19: istore_2 + 20: iconst_0 + 21: istore_3 + 22: iload_3 + 23: iload_2 + 24: if_icmpge 43 + 27: aload_1 + 28: iload_3 + 29: aaload + 30: dup + 31: astore 4 + 33: invokevirtual #398 // Method java/io/File.delete:()Z + 36: pop + 37: iinc 3, 1 + 40: goto 22 + 43: return + LocalVariableTable: + Start Length Slot Name Signature + 0 44 0 this Lcom/crashlytics/android/v; + 0 44 1 arg0 Ljava/lang/String; + LineNumberTable: + line 913: 0 + line 914: 31 + line 913: 37 + line 916: 43 + + private java.io.File[] o(); + flags: ACC_PRIVATE + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #141 // class com/crashlytics/android/R + 4: dup + 5: ldc #25 // String BeginSession + 7: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 10: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 13: areturn + LocalVariableTable: + Start Length Slot Name Signature + 0 14 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 930: 0 + + private java.io.File[] a(java.io.FilenameFilter); + flags: ACC_PRIVATE + Code: + stack=2, locals=2, args_size=2 + 0: aload_0 + 1: getfield #229 // Field k:Ljava/io/File; + 4: aload_1 + 5: invokevirtual #405 // Method java/io/File.listFiles:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 8: dup + 9: astore_1 + 10: ifnonnull 18 + 13: iconst_0 + 14: anewarray #163 // class java/io/File + 17: areturn + 18: aload_1 + 19: areturn + LocalVariableTable: + Start Length Slot Name Signature + 0 20 0 this Lcom/crashlytics/android/v; + 0 20 1 arg0 Ljava/io/FilenameFilter; + LineNumberTable: + line 941: 0 + + private void p(); + flags: ACC_PRIVATE + Code: + stack=6, locals=5, args_size=1 + 0: aload_0 + 1: dup + 2: astore_1 + 3: getstatic #219 // Field a:Ljava/io/FilenameFilter; + 6: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 9: dup + 10: astore_1 + 11: arraylength + 12: istore_2 + 13: iconst_0 + 14: istore_3 + 15: iload_3 + 16: iload_2 + 17: if_icmpge 71 + 20: aload_1 + 21: iload_3 + 22: aaload + 23: dup + 24: astore 4 + 26: astore 4 + 28: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 31: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 34: ldc #37 // String Crashlytics + 36: ldc #24 // String Attempting to send crash report at time of crash... + 38: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 43: new #183 // class java/lang/Thread + 46: dup + 47: new #127 // class com/crashlytics/android/D + 50: dup + 51: aload_0 + 52: aload 4 + 54: invokespecial #275 // Method com/crashlytics/android/D."":(Lcom/crashlytics/android/v;Ljava/io/File;)V + 57: ldc #40 // String Crashlytics Report Uploader + 59: invokespecial #439 // Method java/lang/Thread."":(Ljava/lang/Runnable;Ljava/lang/String;)V + 62: invokevirtual #442 // Method java/lang/Thread.start:()V + 65: iinc 3, 1 + 68: goto 15 + 71: return + LocalVariableTable: + Start Length Slot Name Signature + 0 72 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 1003: 0 + line 1004: 24 + line 1005: 28 + line 1007: 43 + line 1003: 65 + line 1019: 71 + + private void a(java.lang.Throwable, java.io.OutputStream); + flags: ACC_PRIVATE + Code: + stack=4, locals=4, args_size=3 + 0: aload_2 + 1: ifnull 66 + 4: aload_0 + 5: aload_1 + 6: aload_2 + 7: astore_3 + 8: astore_2 + 9: astore_1 + 10: aconst_null + 11: astore_1 + 12: new #169 // class java/io/PrintWriter + 15: dup + 16: aload_3 + 17: invokespecial #408 // Method java/io/PrintWriter."":(Ljava/io/OutputStream;)V + 20: astore_1 + 21: aload_2 + 22: aload_1 + 23: invokestatic #376 // Method a:(Ljava/lang/Throwable;Ljava/io/Writer;)V + 26: aload_1 + 27: ldc #60 // String Failed to close stack trace writer. + 29: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 32: return + 33: astore_2 + 34: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 37: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 40: ldc #37 // String Crashlytics + 42: ldc #61 // String Failed to create PrintWriter + 44: aload_2 + 45: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 50: aload_1 + 51: ldc #60 // String Failed to close stack trace writer. + 53: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 56: return + 57: astore_2 + 58: aload_1 + 59: ldc #60 // String Failed to close stack trace writer. + 61: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 64: aload_2 + 65: athrow + 66: return + Exception table: + from to target type + 12 26 33 Class java/lang/Exception + 12 26 57 any + 33 50 57 any + LocalVariableTable: + Start Length Slot Name Signature + 0 67 0 this Lcom/crashlytics/android/v; + 0 67 1 arg0 Ljava/lang/Throwable; + 0 67 2 arg1 Ljava/io/OutputStream; + LineNumberTable: + line 1089: 0 + line 1090: 4 + line 1092: 66 + + private static void a(java.lang.Throwable, java.io.Writer); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=4, locals=7, args_size=2 + 0: iconst_1 + 1: istore_2 + 2: aload_0 + 3: ifnull 165 + 6: aload_0 + 7: dup + 8: astore_3 + 9: invokevirtual #444 // Method java/lang/Throwable.getLocalizedMessage:()Ljava/lang/String; + 12: dup + 13: astore_3 + 14: ifnonnull 21 + 17: aconst_null + 18: goto 29 + 21: aload_3 + 22: ldc #10 // String (\r\n|\n| ) + 24: ldc #6 // String + 26: invokevirtual #431 // Method java/lang/String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + 29: dup + 30: astore_3 + 31: ifnull 38 + 34: aload_3 + 35: goto 40 + 38: ldc #2 // String + 40: astore_3 + 41: iload_2 + 42: ifeq 50 + 45: ldc #2 // String + 47: goto 52 + 50: ldc #27 // String Caused by: + 52: astore_2 + 53: aload_1 + 54: new #182 // class java/lang/StringBuilder + 57: dup + 58: invokespecial #434 // Method java/lang/StringBuilder."":()V + 61: aload_2 + 62: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 65: aload_0 + 66: invokevirtual #418 // Method java/lang/Object.getClass:()Ljava/lang/Class; + 69: invokevirtual #412 // Method java/lang/Class.getName:()Ljava/lang/String; + 72: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 75: ldc #18 // String : + 77: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 80: aload_3 + 81: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 84: ldc #4 // String \n + 86: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 89: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 92: invokevirtual #409 // Method java/io/Writer.write:(Ljava/lang/String;)V + 95: iconst_0 + 96: istore_2 + 97: aload_0 + 98: invokevirtual #445 // Method java/lang/Throwable.getStackTrace:()[Ljava/lang/StackTraceElement; + 101: dup + 102: astore_3 + 103: arraylength + 104: istore 4 + 106: iconst_0 + 107: istore 5 + 109: iload 5 + 111: iload 4 + 113: if_icmpge 157 + 116: aload_3 + 117: iload 5 + 119: aaload + 120: astore 6 + 122: aload_1 + 123: new #182 // class java/lang/StringBuilder + 126: dup + 127: ldc #3 // String \tat + 129: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 132: aload 6 + 134: invokevirtual #426 // Method java/lang/StackTraceElement.toString:()Ljava/lang/String; + 137: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 140: ldc #4 // String \n + 142: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 145: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 148: invokevirtual #409 // Method java/io/Writer.write:(Ljava/lang/String;)V + 151: iinc 5, 1 + 154: goto 109 + 157: aload_0 + 158: invokevirtual #443 // Method java/lang/Throwable.getCause:()Ljava/lang/Throwable; + 161: astore_0 + 162: goto 2 + 165: return + 166: astore_2 + 167: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 170: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 173: ldc #37 // String Crashlytics + 175: ldc #36 // String Could not write stack trace + 177: aload_2 + 178: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 183: return + Exception table: + from to target type + 0 165 166 Class java/lang/Exception + LocalVariableTable: + Start Length Slot Name Signature + 0 184 0 arg0 Ljava/lang/Throwable; + 0 184 1 arg1 Ljava/io/Writer; + LineNumberTable: + line 1122: 0 + line 1124: 2 + line 1125: 6 + line 1126: 30 + line 1128: 41 + line 1129: 53 + line 1131: 95 + line 1133: 97 + line 1134: 122 + line 1133: 151 + line 1137: 157 + line 1138: 162 + line 1141: 165 + line 1139: 166 + line 1140: 167 + line 1142: 183 + + private static int q(); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=4, locals=2, args_size=0 + 0: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 3: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 6: astore_0 + 7: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 10: invokevirtual #349 // Method com/crashlytics/android/internal/v.f:()Z + 13: istore_1 + 14: iconst_0 + 15: iconst_1 + 16: aload_0 + 17: iload_1 + 18: invokestatic #346 // Method com/crashlytics/android/internal/r.a:(Landroid/content/Context;Z)Ljava/lang/String; + 21: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 24: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 27: iadd + 28: dup + 29: istore_0 + 30: ireturn + LineNumberTable: + line 1160: 0 + line 1162: 7 + line 1163: 14 + line 1165: 29 + + private static com.crashlytics.android.d b(java.lang.String); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: ifnonnull 6 + 4: aconst_null + 5: areturn + 6: aload_0 + 7: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 10: areturn + LocalVariableTable: + Start Length Slot Name Signature + 0 11 0 arg0 Ljava/lang/String; + LineNumberTable: + line 1210: 0 + + private void c(java.lang.String) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=15, locals=16, args_size=2 + 0: aconst_null + 1: astore_2 + 2: aconst_null + 3: astore_3 + 4: new #146 // class com/crashlytics/android/f + 7: dup + 8: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 11: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 14: new #182 // class java/lang/StringBuilder + 17: dup + 18: invokespecial #434 // Method java/lang/StringBuilder."":()V + 21: aload_1 + 22: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 25: ldc #82 // String SessionDevice + 27: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 30: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 33: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 36: dup + 37: astore_2 + 38: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 41: astore_3 + 42: new #121 // class android/os/StatFs + 45: dup + 46: invokestatic #251 // Method android/os/Environment.getDataDirectory:()Ljava/io/File; + 49: invokevirtual #401 // Method java/io/File.getPath:()Ljava/lang/String; + 52: invokespecial #252 // Method android/os/StatFs."":(Ljava/lang/String;)V + 55: astore_1 + 56: invokestatic #326 // Method com/crashlytics/android/internal/ab.b:()I + 59: istore 4 + 61: getstatic #212 // Field android/os/Build.MODEL:Ljava/lang/String; + 64: invokestatic #379 // Method b:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 67: astore 5 + 69: getstatic #211 // Field android/os/Build.MANUFACTURER:Ljava/lang/String; + 72: invokestatic #379 // Method b:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 75: astore 6 + 77: getstatic #213 // Field android/os/Build.PRODUCT:Ljava/lang/String; + 80: invokestatic #379 // Method b:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 83: astore 7 + 85: invokestatic #420 // Method java/lang/Runtime.getRuntime:()Ljava/lang/Runtime; + 88: invokevirtual #419 // Method java/lang/Runtime.availableProcessors:()I + 91: istore 8 + 93: invokestatic #329 // Method com/crashlytics/android/internal/ab.c:()J + 96: lstore 10 + 98: aload_1 + 99: invokevirtual #253 // Method android/os/StatFs.getBlockCount:()I + 102: i2l + 103: aload_1 + 104: invokevirtual #254 // Method android/os/StatFs.getBlockSize:()I + 107: i2l + 108: lmul + 109: lstore 12 + 111: invokestatic #331 // Method com/crashlytics/android/internal/ab.d:()Z + 114: istore_1 + 115: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 118: invokevirtual #260 // Method com/crashlytics/android/Crashlytics.b:()Lcom/crashlytics/android/internal/ao; + 121: dup + 122: astore 9 + 124: invokevirtual #338 // Method com/crashlytics/android/internal/ao.e:()Ljava/lang/String; + 127: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 130: astore 14 + 132: aload 9 + 134: invokevirtual #339 // Method com/crashlytics/android/internal/ao.f:()Ljava/util/Map; + 137: astore 9 + 139: invokestatic #333 // Method com/crashlytics/android/internal/ab.f:()I + 142: istore 15 + 144: aload_3 + 145: bipush 9 + 147: iconst_2 + 148: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 151: aload_3 + 152: aload_0 + 153: iload 4 + 155: aload 14 + 157: aload 5 + 159: iload 8 + 161: lload 10 + 163: lload 12 + 165: iload_1 + 166: aload 9 + 168: iload 15 + 170: aload 6 + 172: aload 7 + 174: invokespecial #353 // Method a:(ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;IJJZLjava/util/Map;ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;)I + 177: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 180: aload_3 + 181: iconst_1 + 182: aload 14 + 184: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 187: aload_3 + 188: iconst_3 + 189: iload 4 + 191: invokevirtual #309 // Method com/crashlytics/android/h.b:(II)V + 194: aload_3 + 195: iconst_4 + 196: aload 5 + 198: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 201: aload_3 + 202: iconst_5 + 203: iload 8 + 205: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 208: aload_3 + 209: bipush 6 + 211: lload 10 + 213: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 216: aload_3 + 217: bipush 7 + 219: lload 12 + 221: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 224: aload_3 + 225: bipush 10 + 227: iload_1 + 228: invokevirtual #304 // Method com/crashlytics/android/h.a:(IZ)V + 231: aload 9 + 233: invokeinterface #474, 1 // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set; + 238: invokeinterface #481, 1 // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator; + 243: astore_1 + 244: aload_1 + 245: invokeinterface #470, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z + 250: ifeq 337 + 253: aload_1 + 254: invokeinterface #471, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; + 259: checkcast #195 // class java/util/Map$Entry + 262: astore 4 + 264: aload_3 + 265: bipush 11 + 267: iconst_2 + 268: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 271: aload_3 + 272: aload 4 + 274: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 279: checkcast #153 // class com/crashlytics/android/internal/ap + 282: aload 4 + 284: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 289: checkcast #181 // class java/lang/String + 292: invokestatic #363 // Method a:(Lcom/crashlytics/android/internal/ap;Ljava/lang/String;)I + 295: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 298: aload_3 + 299: iconst_1 + 300: aload 4 + 302: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 307: checkcast #153 // class com/crashlytics/android/internal/ap + 310: getfield #218 // Field com/crashlytics/android/internal/ap.f:I + 313: invokevirtual #309 // Method com/crashlytics/android/h.b:(II)V + 316: aload_3 + 317: iconst_2 + 318: aload 4 + 320: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 325: checkcast #181 // class java/lang/String + 328: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 331: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 334: goto 244 + 337: aload_3 + 338: bipush 12 + 340: iload 15 + 342: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 345: aload 6 + 347: ifnull 358 + 350: aload_3 + 351: bipush 13 + 353: aload 6 + 355: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 358: aload 7 + 360: ifnull 371 + 363: aload_3 + 364: bipush 14 + 366: aload 7 + 368: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 371: aload_3 + 372: ldc #63 // String Failed to flush session device info. + 374: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 377: aload_2 + 378: ldc #58 // String Failed to close session device file. + 380: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 383: return + 384: astore_1 + 385: aload_0 + 386: aload_1 + 387: aload_2 + 388: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 391: aload_1 + 392: athrow + 393: astore_1 + 394: aload_3 + 395: ldc #63 // String Failed to flush session device info. + 397: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 400: aload_2 + 401: ldc #58 // String Failed to close session device file. + 403: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 406: aload_1 + 407: athrow + Exception table: + from to target type + 4 371 384 Class java/lang/Exception + 4 371 393 any + 384 394 393 any + LocalVariableTable: + Start Length Slot Name Signature + 0 408 0 this Lcom/crashlytics/android/v; + 0 408 1 arg0 Ljava/lang/String; + LineNumberTable: + line 1218: 0 + line 1219: 2 + line 1221: 4 + line 1222: 37 + line 1224: 42 + line 1226: 56 + line 1228: 61 + line 1229: 69 + line 1230: 77 + line 1232: 85 + line 1233: 93 + line 1234: 98 + line 1235: 111 + line 1237: 115 + line 1238: 122 + line 1240: 132 + line 1242: 139 + line 1244: 144 + line 1246: 151 + line 1249: 180 + line 1251: 187 + line 1252: 194 + line 1253: 201 + line 1254: 208 + line 1255: 216 + line 1256: 224 + line 1258: 231 + line 1259: 264 + line 1260: 271 + line 1262: 298 + line 1263: 316 + line 1264: 334 + line 1265: 337 + line 1267: 345 + line 1268: 350 + line 1270: 358 + line 1271: 363 + line 1277: 371 + line 1278: 377 + line 1279: 383 + line 1273: 384 + line 1274: 385 + line 1275: 391 + line 1277: 393 + line 1278: 400 + Exceptions: + throws java.lang.Exception + + private static int a(com.crashlytics.android.internal.ap, java.lang.String); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=3, locals=2, args_size=2 + 0: iconst_1 + 1: aload_0 + 2: getfield #218 // Field com/crashlytics/android/internal/ap.f:I + 5: invokestatic #316 // Method com/crashlytics/android/h.e:(II)I + 8: dup + 9: istore_0 + 10: iconst_2 + 11: aload_1 + 12: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 15: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 18: iadd + 19: dup + 20: istore_0 + 21: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 22 0 arg0 Lcom/crashlytics/android/internal/ap; + 0 22 1 arg1 Ljava/lang/String; + LineNumberTable: + line 1283: 0 + line 1284: 9 + line 1286: 20 + + private int a(int, com.crashlytics.android.d, com.crashlytics.android.d, int, long, long, boolean, java.util.Map, int, com.crashlytics.android.d, com.crashlytics.android.d); + flags: ACC_PRIVATE + Signature: #778 // (ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;IJJZLjava/util/Map;ILcom/crashlytics/android/d;Lcom/crashlytics/android/d;)I + Code: + stack=4, locals=14, args_size=12 + 0: iconst_0 + 1: iconst_1 + 2: aload_2 + 3: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 6: iadd + 7: dup + 8: istore_2 + 9: iconst_3 + 10: iload_1 + 11: invokestatic #316 // Method com/crashlytics/android/h.e:(II)I + 14: iadd + 15: dup + 16: istore_2 + 17: aload_3 + 18: ifnonnull 25 + 21: iconst_0 + 22: goto 30 + 25: iconst_4 + 26: aload_3 + 27: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 30: iadd + 31: dup + 32: istore_2 + 33: iconst_5 + 34: iload 4 + 36: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 39: iadd + 40: dup + 41: istore_2 + 42: bipush 6 + 44: lload 5 + 46: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 49: iadd + 50: dup + 51: istore_2 + 52: bipush 7 + 54: lload 7 + 56: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 59: iadd + 60: dup + 61: istore_2 + 62: bipush 10 + 64: iload 9 + 66: invokestatic #312 // Method com/crashlytics/android/h.b:(IZ)I + 69: iadd + 70: istore_2 + 71: aload 10 + 73: ifnull 148 + 76: aload 10 + 78: invokeinterface #474, 1 // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set; + 83: invokeinterface #481, 1 // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator; + 88: astore_1 + 89: aload_1 + 90: invokeinterface #470, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z + 95: ifeq 148 + 98: aload_1 + 99: invokeinterface #471, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; + 104: checkcast #195 // class java/util/Map$Entry + 107: dup + 108: astore_3 + 109: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 114: checkcast #153 // class com/crashlytics/android/internal/ap + 117: aload_3 + 118: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 123: checkcast #181 // class java/lang/String + 126: invokestatic #363 // Method a:(Lcom/crashlytics/android/internal/ap;Ljava/lang/String;)I + 129: istore_3 + 130: iload_2 + 131: bipush 11 + 133: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 136: iload_3 + 137: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 140: iadd + 141: iload_3 + 142: iadd + 143: iadd + 144: istore_2 + 145: goto 89 + 148: iload_2 + 149: bipush 12 + 151: iload 11 + 153: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 156: iadd + 157: dup + 158: istore_2 + 159: aload 12 + 161: ifnonnull 168 + 164: iconst_0 + 165: goto 175 + 168: bipush 13 + 170: aload 12 + 172: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 175: iadd + 176: dup + 177: istore_2 + 178: aload 13 + 180: ifnonnull 187 + 183: iconst_0 + 184: goto 194 + 187: bipush 14 + 189: aload 13 + 191: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 194: iadd + 195: dup + 196: istore_2 + 197: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 198 0 this Lcom/crashlytics/android/v; + 0 198 1 arg0 I + 0 198 2 arg1 Lcom/crashlytics/android/d; + 0 198 3 arg2 Lcom/crashlytics/android/d; + 0 198 4 arg3 I + 0 198 5 arg4 J + 0 198 7 arg5 J + 0 198 9 arg6 Z + 0 198 10 arg7 Ljava/util/Map; + 0 198 11 arg8 I + 0 198 12 arg9 Lcom/crashlytics/android/d; + 0 198 13 arg10 Lcom/crashlytics/android/d; + LineNumberTable: + line 1292: 0 + line 1295: 8 + line 1296: 16 + line 1297: 32 + line 1298: 41 + line 1299: 51 + line 1300: 61 + line 1301: 71 + line 1302: 76 + line 1303: 108 + line 1304: 130 + line 1306: 145 + line 1308: 148 + line 1309: 158 + line 1310: 177 + line 1312: 196 + + private static void a(com.crashlytics.android.h, java.io.File) throws java.io.IOException; + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=5, locals=5, args_size=2 + 0: aload_1 + 1: invokevirtual #399 // Method java/io/File.exists:()Z + 4: ifeq 87 + 7: aload_1 + 8: invokevirtual #403 // Method java/io/File.length:()J + 11: dup2 + 12: lstore_2 + 13: l2i + 14: newarray byte + 16: astore_2 + 17: aconst_null + 18: astore_3 + 19: new #164 // class java/io/FileInputStream + 22: dup + 23: aload_1 + 24: invokespecial #406 // Method java/io/FileInputStream."":(Ljava/io/File;)V + 27: astore_3 + 28: iconst_0 + 29: istore_1 + 30: iconst_0 + 31: istore 4 + 33: iload_1 + 34: aload_2 + 35: arraylength + 36: if_icmpge 63 + 39: aload_3 + 40: aload_2 + 41: iload_1 + 42: aload_2 + 43: arraylength + 44: iload_1 + 45: isub + 46: invokevirtual #407 // Method java/io/FileInputStream.read:([BII)I + 49: dup + 50: istore 4 + 52: iflt 63 + 55: iload_1 + 56: iload 4 + 58: iadd + 59: istore_1 + 60: goto 33 + 63: aload_3 + 64: ldc #54 // String Failed to close file input stream. + 66: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 69: goto 81 + 72: astore_0 + 73: aload_3 + 74: ldc #54 // String Failed to close file input stream. + 76: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 79: aload_0 + 80: athrow + 81: aload_0 + 82: aload_2 + 83: invokevirtual #306 // Method com/crashlytics/android/h.a:([B)V + 86: return + 87: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 90: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 93: ldc #37 // String Crashlytics + 95: new #182 // class java/lang/StringBuilder + 98: dup + 99: ldc #88 // String Tried to include a file that doesn't exist: + 101: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 104: aload_1 + 105: invokevirtual #400 // Method java/io/File.getName:()Ljava/lang/String; + 108: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 111: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 114: aconst_null + 115: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 120: return + Exception table: + from to target type + 19 63 72 any + LocalVariableTable: + Start Length Slot Name Signature + 0 121 0 arg0 Lcom/crashlytics/android/h; + 0 121 1 arg1 Ljava/io/File; + LineNumberTable: + line 1319: 0 + line 1321: 7 + line 1322: 12 + line 1324: 17 + line 1327: 19 + line 1329: 28 + line 1330: 30 + line 1332: 33 + line 1333: 55 + line 1336: 63 + line 1337: 69 + line 1336: 72 + line 1339: 81 + line 1340: 86 + line 1341: 87 + line 1343: 120 + Exceptions: + throws java.io.IOException + + private void a(java.lang.String, int); + flags: ACC_PRIVATE + Code: + stack=5, locals=3, args_size=3 + 0: aload_0 + 1: getfield #229 // Field k:Ljava/io/File; + 4: new #141 // class com/crashlytics/android/R + 7: dup + 8: new #182 // class java/lang/StringBuilder + 11: dup + 12: invokespecial #434 // Method java/lang/StringBuilder."":()V + 15: aload_1 + 16: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 19: ldc #83 // String SessionEvent + 21: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 24: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 27: invokespecial #289 // Method com/crashlytics/android/R."":(Ljava/lang/String;)V + 30: iload_2 + 31: getstatic #221 // Field c:Ljava/util/Comparator; + 34: invokestatic #291 // Method com/crashlytics/android/b.a:(Ljava/io/File;Ljava/io/FilenameFilter;ILjava/util/Comparator;)V + 37: return + LocalVariableTable: + Start Length Slot Name Signature + 0 38 0 this Lcom/crashlytics/android/v; + 0 38 1 arg0 Ljava/lang/String; + 0 38 2 arg1 I + LineNumberTable: + line 1355: 0 + line 1357: 37 + + private void a(java.util.Date, com.crashlytics.android.h, java.lang.Thread, java.lang.Throwable, java.lang.String, boolean) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=17, locals=36, args_size=7 + 0: aload_1 + 1: invokevirtual #449 // Method java/util/Date.getTime:()J + 4: ldc2_w #207 // long 1000l + 7: ldiv + 8: lstore 7 + 10: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 13: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 16: invokestatic #327 // Method com/crashlytics/android/internal/ab.b:(Landroid/content/Context;)F + 19: fstore_1 + 20: aload_0 + 21: getfield #240 // Field v:Z + 24: invokestatic #325 // Method com/crashlytics/android/internal/ab.a:(Z)I + 27: istore 9 + 29: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 32: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 35: invokestatic #330 // Method com/crashlytics/android/internal/ab.c:(Landroid/content/Context;)Z + 38: istore 10 + 40: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 43: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 46: invokevirtual #246 // Method android/content/Context.getResources:()Landroid/content/res/Resources; + 49: invokevirtual #250 // Method android/content/res/Resources.getConfiguration:()Landroid/content/res/Configuration; + 52: getfield #210 // Field android/content/res/Configuration.orientation:I + 55: istore 11 + 57: invokestatic #329 // Method com/crashlytics/android/internal/ab.c:()J + 60: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 63: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 66: invokestatic #320 // Method com/crashlytics/android/internal/ab.a:(Landroid/content/Context;)J + 69: lsub + 70: lstore 13 + 72: invokestatic #251 // Method android/os/Environment.getDataDirectory:()Ljava/io/File; + 75: invokevirtual #401 // Method java/io/File.getPath:()Ljava/lang/String; + 78: invokestatic #328 // Method com/crashlytics/android/internal/ab.b:(Ljava/lang/String;)J + 81: lstore 15 + 83: aload_0 + 84: invokestatic #262 // Method com/crashlytics/android/Crashlytics.d:()Ljava/lang/String; + 87: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 90: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 93: invokestatic #324 // Method com/crashlytics/android/internal/ab.a:(Ljava/lang/String;Landroid/content/Context;)Landroid/app/ActivityManager$RunningAppProcessInfo; + 96: putfield #238 // Field t:Landroid/app/ActivityManager$RunningAppProcessInfo; + 99: aload_0 + 100: new #191 // class java/util/LinkedList + 103: dup + 104: invokespecial #451 // Method java/util/LinkedList."":()V + 107: putfield #242 // Field x:Ljava/util/List; + 110: aload_0 + 111: aload 4 + 113: invokevirtual #445 // Method java/lang/Throwable.getStackTrace:()[Ljava/lang/StackTraceElement; + 116: putfield #243 // Field y:[Ljava/lang/StackTraceElement; + 119: iload 6 + 121: ifeq 225 + 124: invokestatic #440 // Method java/lang/Thread.getAllStackTraces:()Ljava/util/Map; + 127: astore 6 + 129: aload_0 + 130: aload 6 + 132: invokeinterface #476, 1 // InterfaceMethod java/util/Map.size:()I + 137: anewarray #183 // class java/lang/Thread + 140: putfield #241 // Field w:[Ljava/lang/Thread; + 143: iconst_0 + 144: istore 12 + 146: aload 6 + 148: invokeinterface #474, 1 // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set; + 153: invokeinterface #481, 1 // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator; + 158: astore 6 + 160: aload 6 + 162: invokeinterface #470, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z + 167: ifeq 222 + 170: aload 6 + 172: invokeinterface #471, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; + 177: checkcast #195 // class java/util/Map$Entry + 180: astore 17 + 182: aload_0 + 183: getfield #241 // Field w:[Ljava/lang/Thread; + 186: iload 12 + 188: aload 17 + 190: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 195: checkcast #183 // class java/lang/Thread + 198: aastore + 199: aload_0 + 200: getfield #242 // Field x:Ljava/util/List; + 203: aload 17 + 205: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 210: invokeinterface #472, 2 // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z + 215: pop + 216: iinc 12, 1 + 219: goto 160 + 222: goto 233 + 225: aload_0 + 226: iconst_0 + 227: anewarray #183 // class java/lang/Thread + 230: putfield #241 // Field w:[Ljava/lang/Thread; + 233: aload_0 + 234: aload_0 + 235: getfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 238: invokespecial #364 // Method a:(Lcom/crashlytics/android/internal/aq;)Lcom/crashlytics/android/d; + 241: dup + 242: astore 6 + 244: ifnonnull 262 + 247: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 250: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 253: ldc #37 // String Crashlytics + 255: ldc #73 // String No log data to include with this event. + 257: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 262: aload_0 + 263: getfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 266: ldc #86 // String There was a problem closing the Crashlytics log file. + 268: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 271: aload_0 + 272: aconst_null + 273: putfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 276: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 279: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 282: ldc #99 // String com.crashlytics.CollectCustomKeys + 284: iconst_1 + 285: invokestatic #321 // Method com/crashlytics/android/internal/ab.a:(Landroid/content/Context;Ljava/lang/String;Z)Z + 288: ifne 303 + 291: new #197 // class java/util/TreeMap + 294: dup + 295: invokespecial #452 // Method java/util/TreeMap."":()V + 298: astore 12 + 300: goto 337 + 303: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 306: invokevirtual #258 // Method com/crashlytics/android/Crashlytics.a:()Ljava/util/Map; + 309: dup + 310: astore 12 + 312: ifnull 337 + 315: aload 12 + 317: invokeinterface #476, 1 // InterfaceMethod java/util/Map.size:()I + 322: iconst_1 + 323: if_icmple 337 + 326: new #197 // class java/util/TreeMap + 329: dup + 330: aload 12 + 332: invokespecial #453 // Method java/util/TreeMap."":(Ljava/util/Map;)V + 335: astore 12 + 337: aload_2 + 338: bipush 10 + 340: iconst_2 + 341: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 344: aload_2 + 345: aload_0 + 346: aload_3 + 347: aload 4 + 349: aload 5 + 351: lload 7 + 353: aload 12 + 355: fload_1 + 356: iload 9 + 358: iload 10 + 360: iload 11 + 362: lload 13 + 364: lload 15 + 366: aload 6 + 368: astore 22 + 370: lstore 34 + 372: lstore 32 + 374: istore 21 + 376: istore 30 + 378: istore 29 + 380: fstore 28 + 382: astore 27 + 384: lstore 25 + 386: astore 20 + 388: astore 19 + 390: astore 18 + 392: astore 17 + 394: iconst_0 + 395: iconst_1 + 396: lload 25 + 398: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 401: iadd + 402: dup + 403: istore 23 + 405: iconst_2 + 406: aload 20 + 408: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 411: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 414: iadd + 415: istore 23 + 417: aload 17 + 419: aload 18 + 421: aload 19 + 423: aload 27 + 425: invokespecial #372 // Method a:(Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + 428: istore 17 + 430: iload 23 + 432: iconst_3 + 433: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 436: iload 17 + 438: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 441: iadd + 442: iload 17 + 444: iadd + 445: iadd + 446: istore 23 + 448: fload 28 + 450: iload 29 + 452: iload 30 + 454: iload 21 + 456: lload 32 + 458: lload 34 + 460: invokestatic #352 // Method a:(FIZIJJ)I + 463: istore 17 + 465: iload 23 + 467: iconst_5 + 468: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 471: iload 17 + 473: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 476: iadd + 477: iload 17 + 479: iadd + 480: iadd + 481: istore 23 + 483: aload 22 + 485: ifnull 519 + 488: aload 22 + 490: astore 17 + 492: iconst_1 + 493: aload 17 + 495: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 498: istore 17 + 500: iload 23 + 502: bipush 6 + 504: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 507: iload 17 + 509: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 512: iadd + 513: iload 17 + 515: iadd + 516: iadd + 517: istore 23 + 519: iload 23 + 521: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 524: aload_2 + 525: iconst_1 + 526: lload 7 + 528: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 531: aload_2 + 532: iconst_2 + 533: aload 5 + 535: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 538: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 541: aload_0 + 542: aload_2 + 543: aload_3 + 544: aload 4 + 546: aload 12 + 548: astore 25 + 550: astore 20 + 552: astore 19 + 554: astore 18 + 556: astore 17 + 558: aload 18 + 560: iconst_3 + 561: iconst_2 + 562: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 565: aload 18 + 567: aload 17 + 569: aload 19 + 571: aload 20 + 573: aload 25 + 575: invokespecial #372 // Method a:(Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + 578: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 581: aload 17 + 583: aload 18 + 585: aload 19 + 587: aload 20 + 589: invokespecial #358 // Method a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;)V + 592: aload 25 + 594: ifnull 616 + 597: aload 25 + 599: invokeinterface #475, 1 // InterfaceMethod java/util/Map.isEmpty:()Z + 604: ifne 616 + 607: aload 17 + 609: aload 18 + 611: aload 25 + 613: invokespecial #361 // Method a:(Lcom/crashlytics/android/h;Ljava/util/Map;)V + 616: aload 17 + 618: getfield #238 // Field t:Landroid/app/ActivityManager$RunningAppProcessInfo; + 621: ifnull 648 + 624: aload 18 + 626: iconst_3 + 627: aload 17 + 629: getfield #238 // Field t:Landroid/app/ActivityManager$RunningAppProcessInfo; + 632: getfield #209 // Field android/app/ActivityManager$RunningAppProcessInfo.importance:I + 635: bipush 100 + 637: if_icmpeq 644 + 640: iconst_1 + 641: goto 645 + 644: iconst_0 + 645: invokevirtual #304 // Method com/crashlytics/android/h.a:(IZ)V + 648: aload 18 + 650: iconst_4 + 651: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 654: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 657: invokevirtual #246 // Method android/content/Context.getResources:()Landroid/content/res/Resources; + 660: invokevirtual #250 // Method android/content/res/Resources.getConfiguration:()Landroid/content/res/Configuration; + 663: getfield #210 // Field android/content/res/Configuration.orientation:I + 666: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 669: aload_0 + 670: aload_2 + 671: fload_1 + 672: iload 9 + 674: iload 10 + 676: iload 11 + 678: lload 13 + 680: lload 15 + 682: lstore 29 + 684: lstore 27 + 686: istore 26 + 688: istore 25 + 690: istore 20 + 692: fstore 19 + 694: astore 18 + 696: astore 17 + 698: aload 18 + 700: iconst_5 + 701: iconst_2 + 702: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 705: aload 18 + 707: fload 19 + 709: iload 20 + 711: iload 25 + 713: iload 26 + 715: lload 27 + 717: lload 29 + 719: invokestatic #352 // Method a:(FIZIJJ)I + 722: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 725: aload 18 + 727: iconst_1 + 728: fload 19 + 730: invokevirtual #299 // Method com/crashlytics/android/h.a:(IF)V + 733: aload 18 + 735: iconst_2 + 736: iload 20 + 738: invokevirtual #314 // Method com/crashlytics/android/h.c:(II)V + 741: aload 18 + 743: iconst_3 + 744: iload 25 + 746: invokevirtual #304 // Method com/crashlytics/android/h.a:(IZ)V + 749: aload 18 + 751: iconst_4 + 752: iload 26 + 754: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 757: aload 18 + 759: iconst_5 + 760: lload 27 + 762: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 765: aload 18 + 767: bipush 6 + 769: lload 29 + 771: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 774: aload_0 + 775: aload_2 + 776: aload 6 + 778: astore 19 + 780: astore 18 + 782: astore 17 + 784: aload 19 + 786: ifnull 820 + 789: aload 18 + 791: bipush 6 + 793: iconst_2 + 794: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 797: aload 18 + 799: aload 19 + 801: astore 17 + 803: iconst_1 + 804: aload 17 + 806: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 809: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 812: aload 18 + 814: iconst_1 + 815: aload 19 + 817: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 820: return + LocalVariableTable: + Start Length Slot Name Signature + 0 821 0 this Lcom/crashlytics/android/v; + 0 821 1 arg0 Ljava/util/Date; + 0 821 2 arg1 Lcom/crashlytics/android/h; + 0 821 3 arg2 Ljava/lang/Thread; + 0 821 4 arg3 Ljava/lang/Throwable; + 0 821 5 arg4 Ljava/lang/String; + 0 821 6 arg5 Z + LineNumberTable: + line 1406: 0 + line 1407: 10 + line 1408: 20 + line 1409: 29 + line 1410: 40 + line 1411: 57 + line 1412: 72 + line 1414: 83 + line 1415: 99 + line 1416: 110 + line 1418: 119 + line 1419: 124 + line 1420: 129 + line 1421: 143 + line 1422: 146 + line 1423: 182 + line 1424: 199 + line 1425: 216 + line 1426: 219 + line 1427: 222 + line 1430: 225 + line 1433: 233 + line 1435: 242 + line 1436: 247 + line 1440: 262 + line 1441: 271 + line 1444: 276 + line 1445: 291 + line 1447: 303 + line 1448: 310 + line 1452: 326 + line 1456: 337 + line 1457: 344 + line 1460: 524 + line 1461: 531 + line 1463: 541 + line 1464: 669 + line 1466: 774 + line 1467: 820 + Exceptions: + throws java.lang.Exception + + private void a(com.crashlytics.android.h, java.lang.Thread, java.lang.Throwable) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=6, locals=6, args_size=4 + 0: aload_1 + 1: iconst_1 + 2: iconst_2 + 3: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 6: aload_1 + 7: aload_0 + 8: aload_2 + 9: aload_3 + 10: invokespecial #380 // Method b:(Ljava/lang/Thread;Ljava/lang/Throwable;)I + 13: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 16: aload_0 + 17: aload_1 + 18: aload_2 + 19: aload_0 + 20: getfield #243 // Field y:[Ljava/lang/StackTraceElement; + 23: iconst_4 + 24: iconst_1 + 25: invokespecial #359 // Method a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)V + 28: aload_0 + 29: getfield #241 // Field w:[Ljava/lang/Thread; + 32: arraylength + 33: istore_2 + 34: iconst_0 + 35: istore 4 + 37: iload 4 + 39: iload_2 + 40: if_icmpge 81 + 43: aload_0 + 44: getfield #241 // Field w:[Ljava/lang/Thread; + 47: iload 4 + 49: aaload + 50: astore 5 + 52: aload_0 + 53: aload_1 + 54: aload 5 + 56: aload_0 + 57: getfield #242 // Field x:Ljava/util/List; + 60: iload 4 + 62: invokeinterface #473, 2 // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object; + 67: checkcast #111 // class "[Ljava/lang/StackTraceElement;" + 70: iconst_0 + 71: iconst_0 + 72: invokespecial #359 // Method a:(Lcom/crashlytics/android/h;Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)V + 75: iinc 4, 1 + 78: goto 37 + 81: aload_0 + 82: aload_1 + 83: aload_3 + 84: iconst_1 + 85: iconst_2 + 86: invokespecial #360 // Method a:(Lcom/crashlytics/android/h;Ljava/lang/Throwable;II)V + 89: aload_1 + 90: iconst_3 + 91: iconst_2 + 92: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 95: aload_1 + 96: invokestatic #391 // Method s:()I + 99: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 102: aload_1 + 103: iconst_1 + 104: getstatic #224 // Field f:Lcom/crashlytics/android/d; + 107: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 110: aload_1 + 111: iconst_2 + 112: getstatic #224 // Field f:Lcom/crashlytics/android/d; + 115: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 118: aload_1 + 119: iconst_3 + 120: lconst_0 + 121: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 124: aload_1 + 125: iconst_4 + 126: iconst_2 + 127: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 130: aload_1 + 131: aload_0 + 132: invokespecial #390 // Method r:()I + 135: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 138: aload_1 + 139: iconst_1 + 140: lconst_0 + 141: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 144: aload_1 + 145: iconst_2 + 146: lconst_0 + 147: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 150: aload_1 + 151: iconst_3 + 152: aload_0 + 153: getfield #235 // Field q:Lcom/crashlytics/android/d; + 156: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 159: aload_0 + 160: getfield #236 // Field r:Lcom/crashlytics/android/d; + 163: ifnull 175 + 166: aload_1 + 167: iconst_4 + 168: aload_0 + 169: getfield #236 // Field r:Lcom/crashlytics/android/d; + 172: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 175: return + LocalVariableTable: + Start Length Slot Name Signature + 0 176 0 this Lcom/crashlytics/android/v; + 0 176 1 arg0 Lcom/crashlytics/android/h; + 0 176 2 arg1 Ljava/lang/Thread; + 0 176 3 arg2 Ljava/lang/Throwable; + LineNumberTable: + line 1491: 0 + line 1492: 6 + line 1494: 16 + line 1498: 28 + line 1499: 34 + line 1500: 43 + line 1501: 52 + line 1499: 75 + line 1504: 81 + line 1506: 89 + line 1507: 95 + line 1508: 102 + line 1509: 110 + line 1510: 118 + line 1512: 124 + line 1513: 130 + line 1514: 138 + line 1515: 144 + line 1516: 150 + line 1517: 159 + line 1518: 166 + line 1520: 175 + Exceptions: + throws java.lang.Exception + + private void a(com.crashlytics.android.h, java.util.Map) throws java.lang.Exception; + flags: ACC_PRIVATE + Signature: #799 // (Lcom/crashlytics/android/h;Ljava/util/Map;)V + Code: + stack=3, locals=4, args_size=3 + 0: aload_2 + 1: invokeinterface #474, 1 // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set; + 6: invokeinterface #481, 1 // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator; + 11: astore_2 + 12: aload_2 + 13: invokeinterface #470, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z + 18: ifeq 110 + 21: aload_2 + 22: invokeinterface #471, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; + 27: checkcast #195 // class java/util/Map$Entry + 30: astore_3 + 31: aload_1 + 32: iconst_2 + 33: iconst_2 + 34: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 37: aload_1 + 38: aload_3 + 39: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 44: checkcast #181 // class java/lang/String + 47: aload_3 + 48: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 53: checkcast #181 // class java/lang/String + 56: invokestatic #371 // Method a:(Ljava/lang/String;Ljava/lang/String;)I + 59: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 62: aload_1 + 63: iconst_1 + 64: aload_3 + 65: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 70: checkcast #181 // class java/lang/String + 73: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 76: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 79: aload_3 + 80: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 85: checkcast #181 // class java/lang/String + 88: astore_3 + 89: aload_1 + 90: iconst_2 + 91: aload_3 + 92: ifnonnull 100 + 95: ldc #2 // String + 97: goto 101 + 100: aload_3 + 101: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 104: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 107: goto 12 + 110: return + LocalVariableTable: + Start Length Slot Name Signature + 0 111 0 this Lcom/crashlytics/android/v; + 0 111 1 arg0 Lcom/crashlytics/android/h; + 0 111 2 arg1 Ljava/util/Map; + LineNumberTable: + line 1525: 0 + line 1526: 31 + line 1527: 37 + line 1529: 62 + line 1530: 79 + line 1531: 89 + line 1532: 107 + line 1533: 110 + Exceptions: + throws java.lang.Exception + + private int r(); + flags: ACC_PRIVATE + Code: + stack=4, locals=2, args_size=1 + 0: iconst_0 + 1: iconst_1 + 2: lconst_0 + 3: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 6: iadd + 7: dup + 8: istore_1 + 9: iconst_2 + 10: lconst_0 + 11: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 14: iadd + 15: dup + 16: istore_1 + 17: iconst_3 + 18: aload_0 + 19: getfield #235 // Field q:Lcom/crashlytics/android/d; + 22: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 25: iadd + 26: istore_1 + 27: aload_0 + 28: getfield #236 // Field r:Lcom/crashlytics/android/d; + 31: ifnull 45 + 34: iload_1 + 35: iconst_4 + 36: aload_0 + 37: getfield #236 // Field r:Lcom/crashlytics/android/d; + 40: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 43: iadd + 44: istore_1 + 45: iload_1 + 46: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 47 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 1536: 0 + line 1539: 8 + line 1540: 16 + line 1541: 27 + line 1542: 34 + line 1545: 45 + + private void a(com.crashlytics.android.h, java.lang.Throwable, int, int) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=5, locals=8, args_size=5 + 0: aload_1 + 1: iload 4 + 3: iconst_2 + 4: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 7: aload_1 + 8: aload_0 + 9: aload_2 + 10: iconst_1 + 11: invokespecial #374 // Method a:(Ljava/lang/Throwable;I)I + 14: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 17: aload_1 + 18: iconst_1 + 19: aload_2 + 20: invokevirtual #418 // Method java/lang/Object.getClass:()Ljava/lang/Class; + 23: invokevirtual #412 // Method java/lang/Class.getName:()Ljava/lang/String; + 26: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 29: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 32: aload_2 + 33: invokevirtual #444 // Method java/lang/Throwable.getLocalizedMessage:()Ljava/lang/String; + 36: dup + 37: astore 4 + 39: ifnull 52 + 42: aload_1 + 43: iconst_3 + 44: aload 4 + 46: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 49: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 52: aload_2 + 53: invokevirtual #445 // Method java/lang/Throwable.getStackTrace:()[Ljava/lang/StackTraceElement; + 56: dup + 57: astore 4 + 59: arraylength + 60: istore 5 + 62: iconst_0 + 63: istore 6 + 65: iload 6 + 67: iload 5 + 69: if_icmpge 94 + 72: aload 4 + 74: iload 6 + 76: aaload + 77: astore 7 + 79: aload_0 + 80: aload_1 + 81: iconst_4 + 82: aload 7 + 84: iconst_1 + 85: invokespecial #355 // Method a:(Lcom/crashlytics/android/h;ILjava/lang/StackTraceElement;Z)V + 88: iinc 6, 1 + 91: goto 65 + 94: aload_2 + 95: invokevirtual #443 // Method java/lang/Throwable.getCause:()Ljava/lang/Throwable; + 98: dup + 99: astore 4 + 101: ifnull 152 + 104: iload_3 + 105: bipush 8 + 107: if_icmpge 123 + 110: aload_0 + 111: aload_1 + 112: aload 4 + 114: iload_3 + 115: iconst_1 + 116: iadd + 117: bipush 6 + 119: invokespecial #360 // Method a:(Lcom/crashlytics/android/h;Ljava/lang/Throwable;II)V + 122: return + 123: iconst_0 + 124: istore 5 + 126: aload 4 + 128: ifnull 144 + 131: aload 4 + 133: invokevirtual #443 // Method java/lang/Throwable.getCause:()Ljava/lang/Throwable; + 136: astore 4 + 138: iinc 5, 1 + 141: goto 126 + 144: aload_1 + 145: bipush 7 + 147: iload 5 + 149: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 152: return + LocalVariableTable: + Start Length Slot Name Signature + 0 153 0 this Lcom/crashlytics/android/v; + 0 153 1 arg0 Lcom/crashlytics/android/h; + 0 153 2 arg1 Ljava/lang/Throwable; + 0 153 3 arg2 I + 0 153 4 arg3 I + LineNumberTable: + line 1550: 0 + line 1551: 7 + line 1553: 17 + line 1554: 32 + line 1555: 37 + line 1556: 42 + line 1559: 52 + line 1560: 79 + line 1559: 88 + line 1563: 94 + line 1564: 99 + line 1565: 104 + line 1566: 110 + line 1570: 123 + line 1571: 126 + line 1572: 131 + line 1573: 138 + line 1575: 144 + line 1578: 152 + Exceptions: + throws java.lang.Exception + + private int a(java.lang.Thread, java.lang.StackTraceElement[], int, boolean); + flags: ACC_PRIVATE + Code: + stack=3, locals=7, args_size=5 + 0: iconst_1 + 1: aload_1 + 2: invokevirtual #441 // Method java/lang/Thread.getName:()Ljava/lang/String; + 5: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 8: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 11: dup + 12: istore_1 + 13: iconst_2 + 14: iload_3 + 15: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 18: iadd + 19: istore_1 + 20: aload_2 + 21: dup + 22: astore_2 + 23: arraylength + 24: istore_3 + 25: iconst_0 + 26: istore 5 + 28: iload 5 + 30: iload_3 + 31: if_icmpge 70 + 34: aload_2 + 35: iload 5 + 37: aaload + 38: dup + 39: astore 6 + 41: iload 4 + 43: invokestatic #368 // Method a:(Ljava/lang/StackTraceElement;Z)I + 46: istore 6 + 48: iload_1 + 49: iconst_3 + 50: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 53: iload 6 + 55: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 58: iadd + 59: iload 6 + 61: iadd + 62: iadd + 63: istore_1 + 64: iinc 5, 1 + 67: goto 28 + 70: iload_1 + 71: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 72 0 this Lcom/crashlytics/android/v; + 0 72 1 arg0 Ljava/lang/Thread; + 0 72 2 arg1 [Ljava/lang/StackTraceElement; + 0 72 3 arg2 I + 0 72 4 arg3 Z + LineNumberTable: + line 1582: 0 + line 1583: 12 + line 1585: 20 + line 1586: 39 + line 1587: 48 + line 1585: 64 + line 1591: 70 + + private void a(com.crashlytics.android.h, java.lang.Thread, java.lang.StackTraceElement[], int, boolean) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=5, locals=7, args_size=6 + 0: aload_1 + 1: iconst_1 + 2: iconst_2 + 3: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 6: aload_0 + 7: aload_2 + 8: aload_3 + 9: iload 4 + 11: iload 5 + 13: invokespecial #373 // Method a:(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)I + 16: istore 6 + 18: aload_1 + 19: iload 6 + 21: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 24: aload_1 + 25: iconst_1 + 26: aload_2 + 27: invokevirtual #441 // Method java/lang/Thread.getName:()Ljava/lang/String; + 30: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 33: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 36: aload_1 + 37: iconst_2 + 38: iload 4 + 40: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 43: aload_3 + 44: dup + 45: astore_2 + 46: arraylength + 47: istore_3 + 48: iconst_0 + 49: istore 4 + 51: iload 4 + 53: iload_3 + 54: if_icmpge 79 + 57: aload_2 + 58: iload 4 + 60: aaload + 61: astore 6 + 63: aload_0 + 64: aload_1 + 65: iconst_3 + 66: aload 6 + 68: iload 5 + 70: invokespecial #355 // Method a:(Lcom/crashlytics/android/h;ILjava/lang/StackTraceElement;Z)V + 73: iinc 4, 1 + 76: goto 51 + 79: return + LocalVariableTable: + Start Length Slot Name Signature + 0 80 0 this Lcom/crashlytics/android/v; + 0 80 1 arg0 Lcom/crashlytics/android/h; + 0 80 2 arg1 Ljava/lang/Thread; + 0 80 3 arg2 [Ljava/lang/StackTraceElement; + 0 80 4 arg3 I + 0 80 5 arg4 Z + LineNumberTable: + line 1596: 0 + line 1597: 6 + line 1598: 18 + line 1599: 24 + line 1600: 36 + line 1602: 43 + line 1603: 63 + line 1602: 73 + line 1605: 79 + Exceptions: + throws java.lang.Exception + + private static int a(java.lang.StackTraceElement, boolean); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=4, locals=3, args_size=2 + 0: aload_0 + 1: invokevirtual #425 // Method java/lang/StackTraceElement.isNativeMethod:()Z + 4: ifeq 26 + 7: iconst_0 + 8: iconst_1 + 9: aload_0 + 10: invokevirtual #423 // Method java/lang/StackTraceElement.getLineNumber:()I + 13: iconst_0 + 14: invokestatic #415 // Method java/lang/Math.max:(II)I + 17: i2l + 18: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 21: iadd + 22: istore_2 + 23: goto 34 + 26: iconst_0 + 27: iconst_1 + 28: lconst_0 + 29: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 32: iadd + 33: istore_2 + 34: iload_2 + 35: iconst_2 + 36: new #182 // class java/lang/StringBuilder + 39: dup + 40: invokespecial #434 // Method java/lang/StringBuilder."":()V + 43: aload_0 + 44: invokevirtual #421 // Method java/lang/StackTraceElement.getClassName:()Ljava/lang/String; + 47: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 50: ldc #13 // String . + 52: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 55: aload_0 + 56: invokevirtual #424 // Method java/lang/StackTraceElement.getMethodName:()Ljava/lang/String; + 59: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 62: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 65: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 68: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 71: iadd + 72: istore_2 + 73: aload_0 + 74: invokevirtual #422 // Method java/lang/StackTraceElement.getFileName:()Ljava/lang/String; + 77: ifnull 94 + 80: iload_2 + 81: iconst_3 + 82: aload_0 + 83: invokevirtual #422 // Method java/lang/StackTraceElement.getFileName:()Ljava/lang/String; + 86: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 89: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 92: iadd + 93: istore_2 + 94: aload_0 + 95: invokevirtual #425 // Method java/lang/StackTraceElement.isNativeMethod:()Z + 98: ifne 120 + 101: aload_0 + 102: invokevirtual #423 // Method java/lang/StackTraceElement.getLineNumber:()I + 105: ifle 120 + 108: iload_2 + 109: iconst_4 + 110: aload_0 + 111: invokevirtual #423 // Method java/lang/StackTraceElement.getLineNumber:()I + 114: i2l + 115: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 118: iadd + 119: istore_2 + 120: iload_2 + 121: iconst_5 + 122: iload_1 + 123: ifeq 130 + 126: iconst_2 + 127: goto 131 + 130: iconst_0 + 131: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 134: iadd + 135: dup + 136: istore_2 + 137: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 138 0 arg0 Ljava/lang/StackTraceElement; + 0 138 1 arg1 Z + LineNumberTable: + line 1608: 0 + line 1612: 7 + line 1614: 26 + line 1617: 34 + line 1621: 73 + line 1622: 80 + line 1625: 94 + line 1626: 101 + line 1628: 108 + line 1631: 120 + line 1633: 136 + + private void a(com.crashlytics.android.h, int, java.lang.StackTraceElement, boolean) throws java.lang.Exception; + flags: ACC_PRIVATE + Code: + stack=4, locals=5, args_size=5 + 0: aload_1 + 1: iload_2 + 2: iconst_2 + 3: invokevirtual #318 // Method com/crashlytics/android/h.g:(II)V + 6: aload_1 + 7: aload_3 + 8: iload 4 + 10: invokestatic #368 // Method a:(Ljava/lang/StackTraceElement;Z)I + 13: invokevirtual #307 // Method com/crashlytics/android/h.b:(I)V + 16: aload_3 + 17: invokevirtual #425 // Method java/lang/StackTraceElement.isNativeMethod:()Z + 20: ifeq 40 + 23: aload_1 + 24: iconst_1 + 25: aload_3 + 26: invokevirtual #423 // Method java/lang/StackTraceElement.getLineNumber:()I + 29: iconst_0 + 30: invokestatic #415 // Method java/lang/Math.max:(II)I + 33: i2l + 34: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 37: goto 46 + 40: aload_1 + 41: iconst_1 + 42: lconst_0 + 43: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 46: aload_1 + 47: iconst_2 + 48: new #182 // class java/lang/StringBuilder + 51: dup + 52: invokespecial #434 // Method java/lang/StringBuilder."":()V + 55: aload_3 + 56: invokevirtual #421 // Method java/lang/StackTraceElement.getClassName:()Ljava/lang/String; + 59: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 62: ldc #13 // String . + 64: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 67: aload_3 + 68: invokevirtual #424 // Method java/lang/StackTraceElement.getMethodName:()Ljava/lang/String; + 71: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 74: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 77: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 80: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 83: aload_3 + 84: invokevirtual #422 // Method java/lang/StackTraceElement.getFileName:()Ljava/lang/String; + 87: ifnull 102 + 90: aload_1 + 91: iconst_3 + 92: aload_3 + 93: invokevirtual #422 // Method java/lang/StackTraceElement.getFileName:()Ljava/lang/String; + 96: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 99: invokevirtual #302 // Method com/crashlytics/android/h.a:(ILcom/crashlytics/android/d;)V + 102: aload_3 + 103: invokevirtual #425 // Method java/lang/StackTraceElement.isNativeMethod:()Z + 106: ifne 126 + 109: aload_3 + 110: invokevirtual #423 // Method java/lang/StackTraceElement.getLineNumber:()I + 113: ifle 126 + 116: aload_1 + 117: iconst_4 + 118: aload_3 + 119: invokevirtual #423 // Method java/lang/StackTraceElement.getLineNumber:()I + 122: i2l + 123: invokevirtual #301 // Method com/crashlytics/android/h.a:(IJ)V + 126: aload_1 + 127: iconst_5 + 128: iload 4 + 130: ifeq 137 + 133: iconst_4 + 134: goto 138 + 137: iconst_0 + 138: invokevirtual #300 // Method com/crashlytics/android/h.a:(II)V + 141: return + LocalVariableTable: + Start Length Slot Name Signature + 0 142 0 this Lcom/crashlytics/android/v; + 0 142 1 arg0 Lcom/crashlytics/android/h; + 0 142 2 arg1 I + 0 142 3 arg2 Ljava/lang/StackTraceElement; + 0 142 4 arg3 Z + LineNumberTable: + line 1638: 0 + line 1639: 6 + line 1641: 16 + line 1644: 23 + line 1646: 40 + line 1649: 46 + line 1651: 83 + line 1652: 90 + line 1655: 102 + line 1658: 109 + line 1659: 116 + line 1666: 126 + line 1667: 141 + Exceptions: + throws java.lang.Exception + + private int a(java.lang.Thread, java.lang.Throwable, java.util.Map); + flags: ACC_PRIVATE + Signature: #857 // (Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/util/Map;)I + Code: + stack=4, locals=4, args_size=4 + 0: aload_0 + 1: aload_1 + 2: aload_2 + 3: invokespecial #380 // Method b:(Ljava/lang/Thread;Ljava/lang/Throwable;)I + 6: istore_1 + 7: iconst_0 + 8: iconst_1 + 9: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 12: iload_1 + 13: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 16: iadd + 17: iload_1 + 18: iadd + 19: iadd + 20: istore_1 + 21: aload_3 + 22: ifnull 95 + 25: aload_3 + 26: invokeinterface #474, 1 // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set; + 31: invokeinterface #481, 1 // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator; + 36: astore_2 + 37: aload_2 + 38: invokeinterface #470, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z + 43: ifeq 95 + 46: aload_2 + 47: invokeinterface #471, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; + 52: checkcast #195 // class java/util/Map$Entry + 55: dup + 56: astore_3 + 57: invokeinterface #477, 1 // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object; + 62: checkcast #181 // class java/lang/String + 65: aload_3 + 66: invokeinterface #478, 1 // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object; + 71: checkcast #181 // class java/lang/String + 74: invokestatic #371 // Method a:(Ljava/lang/String;Ljava/lang/String;)I + 77: istore_3 + 78: iload_1 + 79: iconst_2 + 80: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 83: iload_3 + 84: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 87: iadd + 88: iload_3 + 89: iadd + 90: iadd + 91: istore_1 + 92: goto 37 + 95: aload_0 + 96: getfield #238 // Field t:Landroid/app/ActivityManager$RunningAppProcessInfo; + 99: ifnull 126 + 102: iload_1 + 103: iconst_3 + 104: aload_0 + 105: getfield #238 // Field t:Landroid/app/ActivityManager$RunningAppProcessInfo; + 108: getfield #209 // Field android/app/ActivityManager$RunningAppProcessInfo.importance:I + 111: bipush 100 + 113: if_icmpeq 120 + 116: iconst_1 + 117: goto 121 + 120: iconst_0 + 121: invokestatic #312 // Method com/crashlytics/android/h.b:(IZ)I + 124: iadd + 125: istore_1 + 126: iload_1 + 127: iconst_4 + 128: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 131: invokevirtual #266 // Method com/crashlytics/android/Crashlytics.getContext:()Landroid/content/Context; + 134: invokevirtual #246 // Method android/content/Context.getResources:()Landroid/content/res/Resources; + 137: invokevirtual #250 // Method android/content/res/Resources.getConfiguration:()Landroid/content/res/Configuration; + 140: getfield #210 // Field android/content/res/Configuration.orientation:I + 143: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 146: iadd + 147: dup + 148: istore_1 + 149: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 150 0 this Lcom/crashlytics/android/v; + 0 150 1 arg0 Ljava/lang/Thread; + 0 150 2 arg1 Ljava/lang/Throwable; + 0 150 3 arg2 Ljava/util/Map; + LineNumberTable: + line 1714: 0 + line 1717: 7 + line 1720: 21 + line 1721: 25 + line 1722: 56 + line 1723: 78 + line 1725: 92 + line 1729: 95 + line 1730: 102 + line 1733: 126 + line 1736: 148 + + private int b(java.lang.Thread, java.lang.Throwable); + flags: ACC_PRIVATE + Code: + stack=5, locals=6, args_size=3 + 0: aload_0 + 1: aload_1 + 2: aload_0 + 3: getfield #243 // Field y:[Ljava/lang/StackTraceElement; + 6: iconst_4 + 7: iconst_1 + 8: invokespecial #373 // Method a:(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)I + 11: istore_3 + 12: iconst_0 + 13: iconst_1 + 14: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 17: iload_3 + 18: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 21: iadd + 22: iload_3 + 23: iadd + 24: iadd + 25: istore_1 + 26: aload_0 + 27: getfield #241 // Field w:[Ljava/lang/Thread; + 30: arraylength + 31: istore 4 + 33: iconst_0 + 34: istore 5 + 36: iload 5 + 38: iload 4 + 40: if_icmpge 93 + 43: aload_0 + 44: getfield #241 // Field w:[Ljava/lang/Thread; + 47: iload 5 + 49: aaload + 50: astore_3 + 51: aload_0 + 52: aload_3 + 53: aload_0 + 54: getfield #242 // Field x:Ljava/util/List; + 57: iload 5 + 59: invokeinterface #473, 2 // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object; + 64: checkcast #111 // class "[Ljava/lang/StackTraceElement;" + 67: iconst_0 + 68: iconst_0 + 69: invokespecial #373 // Method a:(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;IZ)I + 72: istore_3 + 73: iload_1 + 74: iconst_1 + 75: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 78: iload_3 + 79: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 82: iadd + 83: iload_3 + 84: iadd + 85: iadd + 86: istore_1 + 87: iinc 5, 1 + 90: goto 36 + 93: aload_0 + 94: aload_2 + 95: iconst_1 + 96: invokespecial #374 // Method a:(Ljava/lang/Throwable;I)I + 99: istore 5 + 101: iload_1 + 102: iconst_2 + 103: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 106: iload 5 + 108: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 111: iadd + 112: iload 5 + 114: iadd + 115: iadd + 116: istore_1 + 117: invokestatic #391 // Method s:()I + 120: istore_3 + 121: iload_1 + 122: iconst_3 + 123: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 126: iload_3 + 127: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 130: iadd + 131: iload_3 + 132: iadd + 133: iadd + 134: istore_1 + 135: aload_0 + 136: invokespecial #390 // Method r:()I + 139: istore_2 + 140: iload_1 + 141: iconst_3 + 142: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 145: iload_2 + 146: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 149: iadd + 150: iload_2 + 151: iadd + 152: iadd + 153: dup + 154: istore_1 + 155: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 156 0 this Lcom/crashlytics/android/v; + 0 156 1 arg0 Ljava/lang/Thread; + 0 156 2 arg1 Ljava/lang/Throwable; + LineNumberTable: + line 1740: 0 + line 1743: 12 + line 1745: 26 + line 1746: 33 + line 1747: 43 + line 1748: 51 + line 1749: 73 + line 1746: 87 + line 1753: 93 + line 1754: 101 + line 1757: 117 + line 1758: 121 + line 1760: 135 + line 1761: 140 + line 1764: 154 + + private static int a(java.lang.String, java.lang.String); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=3, locals=2, args_size=2 + 0: iconst_1 + 1: aload_0 + 2: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 5: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 8: dup + 9: istore_0 + 10: iconst_2 + 11: aload_1 + 12: ifnonnull 20 + 15: ldc #2 // String + 17: goto 21 + 20: aload_1 + 21: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 24: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 27: iadd + 28: dup + 29: istore_0 + 30: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 31 0 arg0 Ljava/lang/String; + 0 31 1 arg1 Ljava/lang/String; + LineNumberTable: + line 1768: 0 + line 1769: 9 + line 1770: 29 + + private static int a(float, int, boolean, int, long, long); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=4, locals=8, args_size=6 + 0: iconst_0 + 1: iconst_1 + 2: fload_0 + 3: invokestatic #308 // Method com/crashlytics/android/h.b:(IF)I + 6: iadd + 7: dup + 8: istore_0 + 9: iconst_2 + 10: iload_1 + 11: invokestatic #317 // Method com/crashlytics/android/h.f:(II)I + 14: iadd + 15: dup + 16: istore_0 + 17: iconst_3 + 18: iload_2 + 19: invokestatic #312 // Method com/crashlytics/android/h.b:(IZ)I + 22: iadd + 23: dup + 24: istore_0 + 25: iconst_4 + 26: iload_3 + 27: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 30: iadd + 31: dup + 32: istore_0 + 33: iconst_5 + 34: lload 4 + 36: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 39: iadd + 40: dup + 41: istore_0 + 42: bipush 6 + 44: lload 6 + 46: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 49: iadd + 50: dup + 51: istore_0 + 52: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 53 0 arg0 F + 0 53 1 arg1 I + 0 53 2 arg2 Z + 0 53 3 arg3 I + 0 53 4 arg4 J + 0 53 6 arg5 J + LineNumberTable: + line 1775: 0 + line 1778: 8 + line 1779: 16 + line 1780: 24 + line 1781: 32 + line 1782: 41 + line 1784: 51 + + private int a(java.lang.Throwable, int); + flags: ACC_PRIVATE + Code: + stack=4, locals=8, args_size=3 + 0: iconst_0 + 1: iconst_1 + 2: aload_1 + 3: invokevirtual #418 // Method java/lang/Object.getClass:()Ljava/lang/Class; + 6: invokevirtual #412 // Method java/lang/Class.getName:()Ljava/lang/String; + 9: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 12: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 15: iadd + 16: istore_3 + 17: aload_1 + 18: invokevirtual #444 // Method java/lang/Throwable.getLocalizedMessage:()Ljava/lang/String; + 21: dup + 22: astore 4 + 24: ifnull 39 + 27: iload_3 + 28: iconst_3 + 29: aload 4 + 31: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 34: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 37: iadd + 38: istore_3 + 39: aload_1 + 40: invokevirtual #445 // Method java/lang/Throwable.getStackTrace:()[Ljava/lang/StackTraceElement; + 43: dup + 44: astore 4 + 46: arraylength + 47: istore 5 + 49: iconst_0 + 50: istore 6 + 52: iload 6 + 54: iload 5 + 56: if_icmpge 95 + 59: aload 4 + 61: iload 6 + 63: aaload + 64: dup + 65: astore 7 + 67: iconst_1 + 68: invokestatic #368 // Method a:(Ljava/lang/StackTraceElement;Z)I + 71: istore 7 + 73: iload_3 + 74: iconst_4 + 75: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 78: iload 7 + 80: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 83: iadd + 84: iload 7 + 86: iadd + 87: iadd + 88: istore_3 + 89: iinc 6, 1 + 92: goto 52 + 95: aload_1 + 96: invokevirtual #443 // Method java/lang/Throwable.getCause:()Ljava/lang/Throwable; + 99: dup + 100: astore 4 + 102: ifnull 173 + 105: iload_2 + 106: bipush 8 + 108: if_icmpge 142 + 111: aload_0 + 112: aload 4 + 114: iload_2 + 115: iconst_1 + 116: iadd + 117: invokespecial #374 // Method a:(Ljava/lang/Throwable;I)I + 120: istore 5 + 122: iload_3 + 123: bipush 6 + 125: invokestatic #298 // Method com/crashlytics/android/h.a:(I)I + 128: iload 5 + 130: invokestatic #313 // Method com/crashlytics/android/h.c:(I)I + 133: iadd + 134: iload 5 + 136: iadd + 137: iadd + 138: istore_3 + 139: goto 173 + 142: iconst_0 + 143: istore 5 + 145: aload 4 + 147: ifnull 163 + 150: aload 4 + 152: invokevirtual #443 // Method java/lang/Throwable.getCause:()Ljava/lang/Throwable; + 155: astore 4 + 157: iinc 5, 1 + 160: goto 145 + 163: iload_3 + 164: bipush 7 + 166: iload 5 + 168: invokestatic #315 // Method com/crashlytics/android/h.d:(II)I + 171: iadd + 172: istore_3 + 173: iload_3 + 174: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 175 0 this Lcom/crashlytics/android/v; + 0 175 1 arg0 Ljava/lang/Throwable; + 0 175 2 arg1 I + LineNumberTable: + line 1793: 0 + line 1798: 17 + line 1799: 22 + line 1800: 27 + line 1803: 39 + line 1804: 65 + line 1805: 73 + line 1803: 89 + line 1811: 95 + line 1812: 100 + line 1813: 105 + line 1814: 111 + line 1815: 122 + line 1817: 139 + line 1820: 142 + line 1821: 145 + line 1822: 150 + line 1823: 157 + line 1826: 163 + line 1830: 173 + + private static int s(); + flags: ACC_PRIVATE, ACC_STATIC + Code: + stack=4, locals=1, args_size=0 + 0: iconst_0 + 1: iconst_1 + 2: getstatic #224 // Field f:Lcom/crashlytics/android/d; + 5: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 8: iadd + 9: dup + 10: istore_0 + 11: iconst_2 + 12: getstatic #224 // Field f:Lcom/crashlytics/android/d; + 15: invokestatic #311 // Method com/crashlytics/android/h.b:(ILcom/crashlytics/android/d;)I + 18: iadd + 19: dup + 20: istore_0 + 21: iconst_3 + 22: lconst_0 + 23: invokestatic #310 // Method com/crashlytics/android/h.b:(IJ)I + 26: iadd + 27: dup + 28: istore_0 + 29: ireturn + LineNumberTable: + line 1834: 0 + line 1837: 10 + line 1838: 20 + line 1840: 28 + + final void h(); + flags: ACC_FINAL + Code: + stack=4, locals=1, args_size=1 + 0: aload_0 + 1: new #128 // class com/crashlytics/android/E + 4: dup + 5: aload_0 + 6: invokespecial #276 // Method com/crashlytics/android/E."":(Lcom/crashlytics/android/v;)V + 9: invokespecial #367 // Method a:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + 12: pop + 13: return + LocalVariableTable: + Start Length Slot Name Signature + 0 14 0 this Lcom/crashlytics/android/v; + LineNumberTable: + line 1861: 0 + line 1867: 13 + + final void a(java.io.File[]); + flags: ACC_FINAL + Code: + stack=5, locals=8, args_size=2 + 0: new #163 // class java/io/File + 3: dup + 4: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 7: invokevirtual #350 // Method com/crashlytics/android/internal/v.h:()Ljava/io/File; + 10: ldc #106 // String invalidClsFiles + 12: invokespecial #396 // Method java/io/File."":(Ljava/io/File;Ljava/lang/String;)V + 15: dup + 16: astore_2 + 17: invokevirtual #399 // Method java/io/File.exists:()Z + 20: ifeq 71 + 23: aload_2 + 24: invokevirtual #402 // Method java/io/File.isDirectory:()Z + 27: ifeq 66 + 30: aload_2 + 31: invokevirtual #404 // Method java/io/File.listFiles:()[Ljava/io/File; + 34: dup + 35: astore_3 + 36: arraylength + 37: istore 4 + 39: iconst_0 + 40: istore 5 + 42: iload 5 + 44: iload 4 + 46: if_icmpge 66 + 49: aload_3 + 50: iload 5 + 52: aaload + 53: dup + 54: astore 6 + 56: invokevirtual #398 // Method java/io/File.delete:()Z + 59: pop + 60: iinc 5, 1 + 63: goto 42 + 66: aload_2 + 67: invokevirtual #398 // Method java/io/File.delete:()Z + 70: pop + 71: aload_1 + 72: dup + 73: astore_1 + 74: arraylength + 75: istore_2 + 76: iconst_0 + 77: istore_3 + 78: iload_3 + 79: iload_2 + 80: if_icmpge 244 + 83: aload_1 + 84: iload_3 + 85: aaload + 86: astore 4 + 88: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 91: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 94: ldc #37 // String Crashlytics + 96: new #182 // class java/lang/StringBuilder + 99: dup + 100: ldc #71 // String Found invalid session part file: + 102: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 105: aload 4 + 107: invokevirtual #436 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + 110: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 113: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 118: aload 4 + 120: invokestatic #365 // Method a:(Ljava/io/File;)Ljava/lang/String; + 123: astore 4 + 125: new #129 // class com/crashlytics/android/F + 128: dup + 129: aload_0 + 130: aload 4 + 132: invokespecial #277 // Method com/crashlytics/android/F."":(Lcom/crashlytics/android/v;Ljava/lang/String;)V + 135: astore 5 + 137: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 140: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 143: ldc #37 // String Crashlytics + 145: new #182 // class java/lang/StringBuilder + 148: dup + 149: ldc #44 // String Deleting all part files for invalid session: + 151: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 154: aload 4 + 156: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 159: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 162: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 167: aload_0 + 168: aload 5 + 170: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 173: dup + 174: astore 4 + 176: arraylength + 177: istore 5 + 179: iconst_0 + 180: istore 6 + 182: iload 6 + 184: iload 5 + 186: if_icmpge 238 + 189: aload 4 + 191: iload 6 + 193: aaload + 194: astore 7 + 196: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 199: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 202: ldc #37 // String Crashlytics + 204: new #182 // class java/lang/StringBuilder + 207: dup + 208: ldc #45 // String Deleting session file: + 210: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 213: aload 7 + 215: invokevirtual #436 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + 218: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 221: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 226: aload 7 + 228: invokevirtual #398 // Method java/io/File.delete:()Z + 231: pop + 232: iinc 6, 1 + 235: goto 182 + 238: iinc 3, 1 + 241: goto 78 + 244: return + LocalVariableTable: + Start Length Slot Name Signature + 0 245 0 this Lcom/crashlytics/android/v; + 0 245 1 arg0 [Ljava/io/File; + LineNumberTable: + line 1875: 0 + line 1880: 71 + line 1881: 88 + line 1882: 118 + line 1883: 125 + line 1890: 137 + line 1891: 167 + line 1892: 196 + line 1893: 226 + line 1891: 232 + line 1880: 238 + line 1896: 244 + + private T a(java.util.concurrent.Callable); + flags: ACC_PRIVATE + Signature: #885 // (Ljava/util/concurrent/Callable;)TT; + Code: + stack=4, locals=2, args_size=2 + 0: aload_0 + 1: getfield #237 // Field s:Ljava/util/concurrent/ExecutorService; + 4: aload_1 + 5: invokeinterface #483, 2 // InterfaceMethod java/util/concurrent/ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + 10: invokeinterface #484, 1 // InterfaceMethod java/util/concurrent/Future.get:()Ljava/lang/Object; + 15: areturn + 16: pop + 17: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 20: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 23: ldc #37 // String Crashlytics + 25: ldc #50 // String Executor is shut down because we're handling a fatal crash. + 27: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 32: aconst_null + 33: areturn + 34: astore_1 + 35: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 38: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 41: ldc #37 // String Crashlytics + 43: ldc #62 // String Failed to execute task. + 45: aload_1 + 46: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 51: aconst_null + 52: areturn + Exception table: + from to target type + 0 15 16 Class java/util/concurrent/RejectedExecutionException + 0 15 34 Class java/lang/Exception + LocalVariableTable: + Start Length Slot Name Signature + 0 53 0 this Lcom/crashlytics/android/v; + 0 53 1 arg0 Ljava/util/concurrent/Callable; + LineNumberTable: + line 1936: 0 + line 1937: 16 + line 1938: 17 + line 1939: 32 + line 1940: 34 + line 1941: 35 + line 1942: 51 + + private java.util.concurrent.Future a(java.lang.Runnable); + flags: ACC_PRIVATE + Signature: #835 // (Ljava/lang/Runnable;)Ljava/util/concurrent/Future<*>; + Code: + stack=5, locals=2, args_size=2 + 0: aload_0 + 1: getfield #237 // Field s:Ljava/util/concurrent/ExecutorService; + 4: new #130 // class com/crashlytics/android/G + 7: dup + 8: aload_0 + 9: aload_1 + 10: invokespecial #278 // Method com/crashlytics/android/G."":(Lcom/crashlytics/android/v;Ljava/lang/Runnable;)V + 13: invokeinterface #482, 2 // InterfaceMethod java/util/concurrent/ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; + 18: areturn + 19: pop + 20: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 23: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 26: ldc #37 // String Crashlytics + 28: ldc #50 // String Executor is shut down because we're handling a fatal crash. + 30: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 35: aconst_null + 36: areturn + Exception table: + from to target type + 0 18 19 Class java/util/concurrent/RejectedExecutionException + LocalVariableTable: + Start Length Slot Name Signature + 0 37 0 this Lcom/crashlytics/android/v; + 0 37 1 arg0 Ljava/lang/Runnable; + LineNumberTable: + line 1958: 0 + line 1968: 19 + line 1969: 20 + line 1970: 35 + + private java.util.concurrent.Future b(java.util.concurrent.Callable); + flags: ACC_PRIVATE + Signature: #884 // (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + Code: + stack=5, locals=2, args_size=2 + 0: aload_0 + 1: getfield #237 // Field s:Ljava/util/concurrent/ExecutorService; + 4: new #132 // class com/crashlytics/android/I + 7: dup + 8: aload_0 + 9: aload_1 + 10: invokespecial #280 // Method com/crashlytics/android/I."":(Lcom/crashlytics/android/v;Ljava/util/concurrent/Callable;)V + 13: invokeinterface #483, 2 // InterfaceMethod java/util/concurrent/ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; + 18: areturn + 19: pop + 20: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 23: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 26: ldc #37 // String Crashlytics + 28: ldc #50 // String Executor is shut down because we're handling a fatal crash. + 30: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 35: aconst_null + 36: areturn + Exception table: + from to target type + 0 18 19 Class java/util/concurrent/RejectedExecutionException + LocalVariableTable: + Start Length Slot Name Signature + 0 37 0 this Lcom/crashlytics/android/v; + 0 37 1 arg0 Ljava/util/concurrent/Callable; + LineNumberTable: + line 1986: 0 + line 1997: 19 + line 1998: 20 + line 1999: 35 + + static java.util.regex.Pattern i(); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=0, args_size=0 + 0: getstatic #222 // Field d:Ljava/util/regex/Pattern; + 3: areturn + LineNumberTable: + line 66: 0 + + static boolean a(com.crashlytics.android.v, boolean); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=3, locals=2, args_size=2 + 0: aload_0 + 1: iload_1 + 2: dup_x1 + 3: putfield #240 // Field v:Z + 6: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 7 0 arg0 Lcom/crashlytics/android/v; + 0 7 1 arg1 Z + LineNumberTable: + line 66: 0 + + static void a(com.crashlytics.android.v, java.util.Date, java.lang.Thread, java.lang.Throwable) throws java.lang.Exception; + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=7, locals=9, args_size=4 + 0: aload_0 + 1: aload_1 + 2: aload_2 + 3: aload_3 + 4: astore_3 + 5: astore_2 + 6: astore_1 + 7: dup + 8: astore_0 + 9: aload_1 + 10: aload_2 + 11: aload_3 + 12: astore 4 + 14: astore_3 + 15: astore_2 + 16: astore_1 + 17: aconst_null + 18: astore 5 + 20: aconst_null + 21: astore 6 + 23: new #163 // class java/io/File + 26: dup + 27: aload_1 + 28: getfield #229 // Field k:Ljava/io/File; + 31: ldc #102 // String crash_marker + 33: invokespecial #396 // Method java/io/File."":(Ljava/io/File;Ljava/lang/String;)V + 36: astore 8 + 38: aload 8 + 40: invokestatic #1226 // Method com/safedk/android/aspects/FilesAspect.aspectOf:()Lcom/safedk/android/aspects/FilesAspect; + 43: aconst_null + 44: invokestatic #1230 // Method createNewFile_aroundBody1$advice:(Ljava/io/File;Lcom/safedk/android/aspects/FilesAspect;Lorg/aspectj/runtime/internal/AroundClosure;)Z + 47: pop + 48: aload_1 + 49: invokespecial #386 // Method n:()Ljava/lang/String; + 52: dup + 53: astore 7 + 55: ifnull 118 + 58: aload 7 + 60: invokestatic #261 // Method com/crashlytics/android/Crashlytics.b:(Ljava/lang/String;)V + 63: new #146 // class com/crashlytics/android/f + 66: dup + 67: aload_1 + 68: getfield #229 // Field k:Ljava/io/File; + 71: new #182 // class java/lang/StringBuilder + 74: dup + 75: invokespecial #434 // Method java/lang/StringBuilder."":()V + 78: aload 7 + 80: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 83: ldc #81 // String SessionCrash + 85: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 88: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 91: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 94: dup + 95: astore 5 + 97: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 100: astore 6 + 102: aload_1 + 103: aload_2 + 104: aload 6 + 106: aload_3 + 107: aload 4 + 109: ldc #101 // String crash + 111: iconst_1 + 112: invokespecial #377 // Method a:(Ljava/util/Date;Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/lang/String;Z)V + 115: goto 134 + 118: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 121: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 124: ldc #37 // String Crashlytics + 126: ldc #89 // String Tried to write a fatal exception while no session was open. + 128: aconst_null + 129: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 134: aload 6 + 136: ldc #68 // String Failed to flush to session begin file. + 138: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 141: aload 5 + 143: ldc #53 // String Failed to close fatal exception file output stream. + 145: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 148: goto 212 + 151: astore 7 + 153: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 156: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 159: ldc #37 // String Crashlytics + 161: ldc #20 // String An error occurred in the fatal exception logger + 163: aload 7 + 165: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 170: aload_1 + 171: aload 7 + 173: aload 5 + 175: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 178: aload 6 + 180: ldc #68 // String Failed to flush to session begin file. + 182: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 185: aload 5 + 187: ldc #53 // String Failed to close fatal exception file output stream. + 189: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 192: goto 212 + 195: astore_0 + 196: aload 6 + 198: ldc #68 // String Failed to flush to session begin file. + 200: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 203: aload 5 + 205: ldc #53 // String Failed to close fatal exception file output stream. + 207: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 210: aload_0 + 211: athrow + 212: aload_0 + 213: invokespecial #385 // Method m:()V + 216: aload_0 + 217: invokespecial #384 // Method l:()V + 220: aload_0 + 221: dup + 222: astore_1 + 223: getfield #229 // Field k:Ljava/io/File; + 226: getstatic #219 // Field a:Ljava/io/FilenameFilter; + 229: iconst_4 + 230: getstatic #221 // Field c:Ljava/util/Comparator; + 233: invokestatic #291 // Method com/crashlytics/android/b.a:(Ljava/io/File;Ljava/io/FilenameFilter;ILjava/util/Comparator;)V + 236: invokestatic #267 // Method com/crashlytics/android/Crashlytics.getInstance:()Lcom/crashlytics/android/Crashlytics; + 239: invokevirtual #270 // Method com/crashlytics/android/Crashlytics.j:()Z + 242: ifne 249 + 245: aload_0 + 246: invokespecial #388 // Method p:()V + 249: return + Exception table: + from to target type + 23 134 151 Class java/lang/Exception + 23 134 195 any + 151 178 195 any + LocalVariableTable: + Start Length Slot Name Signature + 0 250 0 arg0 Lcom/crashlytics/android/v; + 0 250 1 arg1 Ljava/util/Date; + 0 250 2 arg2 Ljava/lang/Thread; + 0 250 3 arg3 Ljava/lang/Throwable; + LineNumberTable: + line 66: 0 + Exceptions: + throws java.lang.Exception + + static java.util.concurrent.atomic.AtomicBoolean a(com.crashlytics.android.v); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: getfield #231 // Field m:Ljava/util/concurrent/atomic/AtomicBoolean; + 4: areturn + LocalVariableTable: + Start Length Slot Name Signature + 0 5 0 arg0 Lcom/crashlytics/android/v; + LineNumberTable: + line 66: 0 + + static void b(com.crashlytics.android.v) throws java.lang.Exception; + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: invokespecial #385 // Method m:()V + 4: return + LocalVariableTable: + Start Length Slot Name Signature + 0 5 0 arg0 Lcom/crashlytics/android/v; + LineNumberTable: + line 66: 0 + Exceptions: + throws java.lang.Exception + + static void c(com.crashlytics.android.v) throws java.lang.Exception; + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: invokespecial #384 // Method l:()V + 4: return + LocalVariableTable: + Start Length Slot Name Signature + 0 5 0 arg0 Lcom/crashlytics/android/v; + LineNumberTable: + line 66: 0 + Exceptions: + throws java.lang.Exception + + static void b(com.crashlytics.android.v, java.util.Date, java.lang.Thread, java.lang.Throwable); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=7, locals=8, args_size=4 + 0: aload_0 + 1: aload_1 + 2: aload_2 + 3: aload_3 + 4: astore_3 + 5: astore_2 + 6: astore_1 + 7: dup + 8: astore_0 + 9: invokespecial #386 // Method n:()Ljava/lang/String; + 12: dup + 13: astore 4 + 15: ifnull 251 + 18: aload 4 + 20: invokestatic #259 // Method com/crashlytics/android/Crashlytics.a:(Ljava/lang/String;)V + 23: aconst_null + 24: astore 5 + 26: aconst_null + 27: astore 6 + 29: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 32: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 35: ldc #37 // String Crashlytics + 37: new #182 // class java/lang/StringBuilder + 40: dup + 41: ldc #43 // String Crashlytics is logging non-fatal exception \" + 43: invokespecial #435 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V + 46: aload_3 + 47: invokevirtual #436 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; + 50: ldc #8 // String \" from thread + 52: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 55: aload_2 + 56: invokevirtual #441 // Method java/lang/Thread.getName:()Ljava/lang/String; + 59: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 62: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 65: invokeinterface #467, 3 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;)V + 70: aload_0 + 71: getfield #225 // Field g:Ljava/util/concurrent/atomic/AtomicInteger; + 74: invokevirtual #461 // Method java/util/concurrent/atomic/AtomicInteger.getAndIncrement:()I + 77: invokestatic #319 // Method com/crashlytics/android/internal/ab.a:(I)Ljava/lang/String; + 80: astore 7 + 82: new #182 // class java/lang/StringBuilder + 85: dup + 86: invokespecial #434 // Method java/lang/StringBuilder."":()V + 89: aload 4 + 91: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 94: ldc #83 // String SessionEvent + 96: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 99: aload 7 + 101: invokevirtual #437 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; + 104: invokevirtual #438 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; + 107: astore 7 + 109: new #146 // class com/crashlytics/android/f + 112: dup + 113: aload_0 + 114: getfield #229 // Field k:Ljava/io/File; + 117: aload 7 + 119: invokespecial #296 // Method com/crashlytics/android/f."":(Ljava/io/File;Ljava/lang/String;)V + 122: dup + 123: astore 5 + 125: invokestatic #305 // Method com/crashlytics/android/h.a:(Ljava/io/OutputStream;)Lcom/crashlytics/android/h; + 128: astore 6 + 130: aload_0 + 131: aload_1 + 132: aload 6 + 134: aload_2 + 135: aload_3 + 136: ldc #104 // String error + 138: iconst_0 + 139: invokespecial #377 // Method a:(Ljava/util/Date;Lcom/crashlytics/android/h;Ljava/lang/Thread;Ljava/lang/Throwable;Ljava/lang/String;Z)V + 142: aload 6 + 144: ldc #65 // String Failed to flush to non-fatal file. + 146: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 149: aload 5 + 151: ldc #55 // String Failed to close non-fatal file output stream. + 153: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 156: goto 220 + 159: astore 7 + 161: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 164: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 167: ldc #37 // String Crashlytics + 169: ldc #21 // String An error occurred in the non-fatal exception logger + 171: aload 7 + 173: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 178: aload_0 + 179: aload 7 + 181: aload 5 + 183: invokespecial #375 // Method a:(Ljava/lang/Throwable;Ljava/io/OutputStream;)V + 186: aload 6 + 188: ldc #65 // String Failed to flush to non-fatal file. + 190: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 193: aload 5 + 195: ldc #55 // String Failed to close non-fatal file output stream. + 197: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 200: goto 220 + 203: astore_0 + 204: aload 6 + 206: ldc #65 // String Failed to flush to non-fatal file. + 208: invokestatic #323 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Flushable;Ljava/lang/String;)V + 211: aload 5 + 213: ldc #55 // String Failed to close non-fatal file output stream. + 215: invokestatic #322 // Method com/crashlytics/android/internal/ab.a:(Ljava/io/Closeable;Ljava/lang/String;)V + 218: aload_0 + 219: athrow + 220: aload_0 + 221: aload 4 + 223: bipush 64 + 225: invokespecial #370 // Method a:(Ljava/lang/String;I)V + 228: goto 267 + 231: astore 7 + 233: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 236: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 239: ldc #37 // String Crashlytics + 241: ldc #23 // String An error occurred when trimming non-fatal files. + 243: aload 7 + 245: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 250: return + 251: invokestatic #347 // Method com/crashlytics/android/internal/v.a:()Lcom/crashlytics/android/internal/v; + 254: invokevirtual #348 // Method com/crashlytics/android/internal/v.b:()Lcom/crashlytics/android/internal/q; + 257: ldc #37 // String Crashlytics + 259: ldc #90 // String Tried to write a non-fatal exception while no session was open. + 261: aconst_null + 262: invokeinterface #468, 4 // InterfaceMethod com/crashlytics/android/internal/q.a:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + 267: return + Exception table: + from to target type + 29 142 159 Class java/lang/Exception + 29 142 203 any + 159 186 203 any + 220 228 231 Class java/lang/Exception + LocalVariableTable: + Start Length Slot Name Signature + 0 268 0 arg0 Lcom/crashlytics/android/v; + 0 268 1 arg1 Ljava/util/Date; + 0 268 2 arg2 Ljava/lang/Thread; + 0 268 3 arg3 Ljava/lang/Throwable; + LineNumberTable: + line 66: 0 + + static com.crashlytics.android.internal.aq d(com.crashlytics.android.v); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: getfield #239 // Field u:Lcom/crashlytics/android/internal/aq; + 4: areturn + LocalVariableTable: + Start Length Slot Name Signature + 0 5 0 arg0 Lcom/crashlytics/android/v; + LineNumberTable: + line 66: 0 + + static boolean e(com.crashlytics.android.v); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: invokespecial #383 // Method k:()Z + 4: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 5 0 arg0 Lcom/crashlytics/android/v; + LineNumberTable: + line 66: 0 + + static java.io.File f(com.crashlytics.android.v); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: getfield #230 // Field l:Ljava/io/File; + 4: areturn + LocalVariableTable: + Start Length Slot Name Signature + 0 5 0 arg0 Lcom/crashlytics/android/v; + LineNumberTable: + line 66: 0 + + static java.util.Map j(); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=1, locals=0, args_size=0 + 0: getstatic #223 // Field e:Ljava/util/Map; + 3: areturn + LineNumberTable: + line 66: 0 + + static java.io.File[] a(com.crashlytics.android.v, java.io.FilenameFilter); + flags: ACC_STATIC, ACC_SYNTHETIC + Code: + stack=2, locals=2, args_size=2 + 0: aload_0 + 1: aload_1 + 2: invokespecial #366 // Method a:(Ljava/io/FilenameFilter;)[Ljava/io/File; + 5: areturn + LocalVariableTable: + Start Length Slot Name Signature + 0 6 0 arg0 Lcom/crashlytics/android/v; + 0 6 1 arg1 Ljava/io/FilenameFilter; + LineNumberTable: + line 66: 0 + + static {}; + flags: ACC_STATIC + Code: + stack=2, locals=0, args_size=0 + 0: new #159 // class com/crashlytics/android/w + 3: dup + 4: invokespecial #392 // Method com/crashlytics/android/w."":()V + 7: putstatic #219 // Field a:Ljava/io/FilenameFilter; + 10: new #131 // class com/crashlytics/android/H + 13: dup + 14: invokespecial #279 // Method com/crashlytics/android/H."":()V + 17: putstatic #220 // Field b:Ljava/util/Comparator; + 20: new #133 // class com/crashlytics/android/J + 23: dup + 24: invokespecial #281 // Method com/crashlytics/android/J."":()V + 27: putstatic #221 // Field c:Ljava/util/Comparator; + 30: new #134 // class com/crashlytics/android/K + 33: invokespecial #282 // Method com/crashlytics/android/K."":()V + 36: ldc #11 // String ([\d|A-Z|a-z]{12}\-[\d|A-Z|a-z]{4}\-[\d|A-Z|a-z]{4}\-[\d|A-Z|a-z]{12}).+ + 38: invokestatic #464 // Method java/util/regex/Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern; + 41: putstatic #222 // Field d:Ljava/util/regex/Pattern; + 44: ldc #96 // String X-CRASHLYTICS-SEND-FLAGS + 46: ldc #17 // String 1 + 48: invokestatic #447 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map; + 51: putstatic #223 // Field e:Ljava/util/Map; + 54: ldc #16 // String 0 + 56: invokestatic #292 // Method com/crashlytics/android/d.a:(Ljava/lang/String;)Lcom/crashlytics/android/d; + 59: putstatic #224 // Field f:Lcom/crashlytics/android/d; + 62: return + LineNumberTable: + line 124: 0 + line 132: 10 + line 139: 20 + line 149: 30 + line 156: 36 + line 159: 44 + line 181: 54 + + private static final boolean createNewFile_aroundBody0(java.io.File); + flags: ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC + Synthetic: true + Code: + stack=1, locals=1, args_size=1 + 0: aload_0 + 1: invokevirtual #397 // Method java/io/File.createNewFile:()Z + 4: ireturn + LineNumberTable: + line 66: 1 + + private static final boolean createNewFile_aroundBody1$advice(java.io.File, com.safedk.android.aspects.FilesAspect, org.aspectj.runtime.internal.AroundClosure); + flags: ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC + Synthetic: true + Code: + stack=1, locals=4, args_size=3 + 0: aload_2 + 1: astore_3 + 2: aload_0 + 3: invokestatic #1232 // Method createNewFile_aroundBody0:(Ljava/io/File;)Z + 6: ireturn + LocalVariableTable: + Start Length Slot Name Signature + 0 7 0 target Ljava/io/File; + 0 7 1 ajc$aspectInstance Lcom/safedk/android/aspects/FilesAspect; + 0 7 2 ajc$aroundClosure Lorg/aspectj/runtime/internal/AroundClosure; + LineNumberTable: + line 10: 0 +} diff --git a/tests/src/org/aspectj/systemtest/AllTests18.java b/tests/src/org/aspectj/systemtest/AllTests18.java index ae57ece04..cbef2eb66 100644 --- a/tests/src/org/aspectj/systemtest/AllTests18.java +++ b/tests/src/org/aspectj/systemtest/AllTests18.java @@ -20,12 +20,14 @@ import org.aspectj.systemtest.ajc183.AllTestsAspectJ183; import org.aspectj.systemtest.ajc184.AllTestsAspectJ184; import org.aspectj.systemtest.ajc185.AllTestsAspectJ185; import org.aspectj.systemtest.ajc186.AllTestsAspectJ186; +import org.aspectj.systemtest.ajc187.AllTestsAspectJ187; public class AllTests18 { public static Test suite() { TestSuite suite = new TestSuite("AspectJ System Test Suite - 1.8"); // $JUnit-BEGIN$ + suite.addTest(AllTestsAspectJ187.suite()); suite.addTest(AllTestsAspectJ186.suite()); suite.addTest(AllTestsAspectJ185.suite()); suite.addTest(AllTestsAspectJ184.suite()); diff --git a/tests/src/org/aspectj/systemtest/ajc182/AllTestsAspectJ182.java b/tests/src/org/aspectj/systemtest/ajc182/AllTestsAspectJ182.java index 4adbdfb76..10551687d 100644 --- a/tests/src/org/aspectj/systemtest/ajc182/AllTestsAspectJ182.java +++ b/tests/src/org/aspectj/systemtest/ajc182/AllTestsAspectJ182.java @@ -20,7 +20,6 @@ public class AllTestsAspectJ182 { TestSuite suite = new TestSuite("AspectJ 1.8.2 tests"); // $JUnit-BEGIN$ suite.addTest(Ajc182Tests.suite()); - suite.addTest(AptTests.suite()); // $JUnit-END$ return suite; } diff --git a/tests/src/org/aspectj/systemtest/ajc183/AllTestsAspectJ183.java b/tests/src/org/aspectj/systemtest/ajc183/AllTestsAspectJ183.java index 6caef2609..8b68b8e40 100644 --- a/tests/src/org/aspectj/systemtest/ajc183/AllTestsAspectJ183.java +++ b/tests/src/org/aspectj/systemtest/ajc183/AllTestsAspectJ183.java @@ -12,7 +12,6 @@ package org.aspectj.systemtest.ajc183; import junit.framework.Test; import junit.framework.TestSuite; -import org.aspectj.systemtest.apt.AptTests; public class AllTestsAspectJ183 { @@ -20,7 +19,6 @@ public class AllTestsAspectJ183 { TestSuite suite = new TestSuite("AspectJ 1.8.3 tests"); // $JUnit-BEGIN$ suite.addTest(Ajc183Tests.suite()); - suite.addTest(AptTests.suite()); // $JUnit-END$ return suite; } diff --git a/tests/src/org/aspectj/systemtest/ajc184/AllTestsAspectJ184.java b/tests/src/org/aspectj/systemtest/ajc184/AllTestsAspectJ184.java index 1c1c61a98..be0b12112 100644 --- a/tests/src/org/aspectj/systemtest/ajc184/AllTestsAspectJ184.java +++ b/tests/src/org/aspectj/systemtest/ajc184/AllTestsAspectJ184.java @@ -12,7 +12,6 @@ package org.aspectj.systemtest.ajc184; import junit.framework.Test; import junit.framework.TestSuite; -import org.aspectj.systemtest.apt.AptTests; public class AllTestsAspectJ184 { @@ -20,7 +19,6 @@ public class AllTestsAspectJ184 { TestSuite suite = new TestSuite("AspectJ 1.8.4 tests"); // $JUnit-BEGIN$ suite.addTest(Ajc184Tests.suite()); - suite.addTest(AptTests.suite()); // $JUnit-END$ return suite; } diff --git a/tests/src/org/aspectj/systemtest/ajc185/AllTestsAspectJ185.java b/tests/src/org/aspectj/systemtest/ajc185/AllTestsAspectJ185.java index a286daf0c..0cd580fce 100644 --- a/tests/src/org/aspectj/systemtest/ajc185/AllTestsAspectJ185.java +++ b/tests/src/org/aspectj/systemtest/ajc185/AllTestsAspectJ185.java @@ -12,7 +12,6 @@ package org.aspectj.systemtest.ajc185; import junit.framework.Test; import junit.framework.TestSuite; -import org.aspectj.systemtest.apt.AptTests; public class AllTestsAspectJ185 { @@ -20,7 +19,6 @@ public class AllTestsAspectJ185 { TestSuite suite = new TestSuite("AspectJ 1.8.5 tests"); // $JUnit-BEGIN$ suite.addTest(Ajc185Tests.suite()); - suite.addTest(AptTests.suite()); // $JUnit-END$ return suite; } diff --git a/tests/src/org/aspectj/systemtest/ajc186/AllTestsAspectJ186.java b/tests/src/org/aspectj/systemtest/ajc186/AllTestsAspectJ186.java index 4e533d0d5..ff67705de 100644 --- a/tests/src/org/aspectj/systemtest/ajc186/AllTestsAspectJ186.java +++ b/tests/src/org/aspectj/systemtest/ajc186/AllTestsAspectJ186.java @@ -12,7 +12,6 @@ package org.aspectj.systemtest.ajc186; import junit.framework.Test; import junit.framework.TestSuite; -import org.aspectj.systemtest.apt.AptTests; public class AllTestsAspectJ186 { @@ -20,7 +19,6 @@ public class AllTestsAspectJ186 { TestSuite suite = new TestSuite("AspectJ 1.8.6 tests"); // $JUnit-BEGIN$ suite.addTest(Ajc186Tests.suite()); - suite.addTest(AptTests.suite()); // $JUnit-END$ return suite; } diff --git a/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java b/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java new file mode 100644 index 000000000..148317933 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java @@ -0,0 +1,46 @@ +/******************************************************************************* + * Copyright (c) 2014 Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andy Clement - initial API and implementation + *******************************************************************************/ +package org.aspectj.systemtest.ajc187; + +import java.io.File; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; + +import junit.framework.Test; + +import org.aspectj.testing.XMLBasedAjcTestCase; + +/** + * @author Andy Clement + */ +public class Ajc187Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public void testLambda_470633() throws Exception { + runTest("lambda"); + } + +// public void testBrokenJava_469889() throws Exception { +// runTest("broken java"); +// } + + // --- + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(Ajc187Tests.class); + } + + @Override + protected File getSpecFile() { + return getClassResource("ajc187.xml"); + } + +} diff --git a/tests/src/org/aspectj/systemtest/ajc187/AllTestsAspectJ187.java b/tests/src/org/aspectj/systemtest/ajc187/AllTestsAspectJ187.java new file mode 100644 index 000000000..79634df8c --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc187/AllTestsAspectJ187.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2014 Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andy Clement - initial API and implementation + *******************************************************************************/ +package org.aspectj.systemtest.ajc187; + +import junit.framework.Test; +import junit.framework.TestSuite; +import org.aspectj.systemtest.apt.AptTests; + +public class AllTestsAspectJ187 { + + public static Test suite() { + TestSuite suite = new TestSuite("AspectJ 1.8.7 tests"); + // $JUnit-BEGIN$ + suite.addTest(Ajc187Tests.suite()); + // $JUnit-END$ + return suite; + } +} diff --git a/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml b/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml new file mode 100644 index 000000000..0413c55ef --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 7a61a0d50d7371ef0a8e9904e8da7e93922fe8e4 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Thu, 6 Aug 2015 13:53:56 -0700 Subject: Support annotation conversion for class annotation values Issue: https://bugs.eclipse.org/bugs/show_bug.cgi?id=474165 --- .../lookup/EclipseAnnotationConvertor.java | 22 +++++++--------------- tests/bugs187/474165/B.java | 20 ++++++++++++++++++++ .../org/aspectj/systemtest/ajc187/Ajc187Tests.java | 4 ++++ tests/src/org/aspectj/systemtest/ajc187/ajc187.xml | 7 +++++++ 4 files changed, 38 insertions(+), 15 deletions(-) create mode 100644 tests/bugs187/474165/B.java (limited to 'tests') diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseAnnotationConvertor.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseAnnotationConvertor.java index efd2a152a..47c56f939 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseAnnotationConvertor.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseAnnotationConvertor.java @@ -14,6 +14,7 @@ package org.aspectj.ajdt.internal.compiler.lookup; import org.aspectj.apache.bcel.classfile.annotation.ElementValue; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.Annotation; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.ArrayInitializer; +import org.aspectj.org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.MarkerAnnotation; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.MemberValuePair; @@ -33,6 +34,7 @@ import org.aspectj.weaver.AnnotationAJ; import org.aspectj.weaver.AnnotationNameValuePair; import org.aspectj.weaver.AnnotationValue; import org.aspectj.weaver.ArrayAnnotationValue; +import org.aspectj.weaver.ClassAnnotationValue; import org.aspectj.weaver.EnumAnnotationValue; import org.aspectj.weaver.ResolvedType; import org.aspectj.weaver.SimpleAnnotationValue; @@ -218,24 +220,14 @@ public class EclipseAnnotationConvertor { } } else { // class type + if (defaultValue instanceof ClassLiteralAccess) { + ClassLiteralAccess cla = (ClassLiteralAccess)defaultValue; + ClassAnnotationValue cav = new ClassAnnotationValue(new String(cla.targetType.signature())); + return cav; + } throw new MissingImplementationException( "Please raise an AspectJ bug. AspectJ does not know how to convert this annotation value [" + defaultValue + "]"); - // if (contentsOffset + 3 >= this.contents.length) { - // resizeContents(3); - // } - // contents[contentsOffset++] = (byte) 'c'; - // if (defaultValue instanceof ClassLiteralAccess) { - // ClassLiteralAccess classLiteralAccess = (ClassLiteralAccess) - // defaultValue; - // final int classInfoIndex = - // constantPool.literalIndex(classLiteralAccess - // .targetType.signature()); - // contents[contentsOffset++] = (byte) (classInfoIndex >> 8); - // contents[contentsOffset++] = (byte) classInfoIndex; - // } else { - // contentsOffset = attributeOffset; - // } } } else { throw new MissingImplementationException( diff --git a/tests/bugs187/474165/B.java b/tests/bugs187/474165/B.java new file mode 100644 index 000000000..7b1bb1950 --- /dev/null +++ b/tests/bugs187/474165/B.java @@ -0,0 +1,20 @@ +// HasMethod with anno value matching + +@interface I { + Class i(); +} +aspect A { + declare parents: hasmethod(@I(i=String.class) * *(..)) implements java.io.Serializable; +} + +public class B { +@I(i=String.class) public void m() {} + public static void main(String []argv) { + B b = new B(); + if (!(b instanceof java.io.Serializable)) throw new IllegalStateException(""); + } +} +class C { +@I(i=Integer.class) public void m() {} +} + diff --git a/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java b/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java index 148317933..4907eeafe 100644 --- a/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java @@ -24,6 +24,10 @@ import org.aspectj.testing.XMLBasedAjcTestCase; */ public class Ajc187Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + public void testAnnoConversion_474165() throws Exception { + runTest("anno conversion"); + } + public void testLambda_470633() throws Exception { runTest("lambda"); } diff --git a/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml b/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml index 0413c55ef..ccf87e34f 100644 --- a/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml +++ b/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml @@ -19,4 +19,11 @@ + + + + + + + -- cgit v1.2.3 From a9ea7010ab7075d934aeb49d48dec33d48b722c4 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Wed, 2 Sep 2015 09:49:22 -0700 Subject: Bug 475152 - infinite loop during build time weaving when more than 2 aspects in hierarchy at org.aspectj.weaver.bcel.BcelAdvice.canInline --- tests/bugs187/475152/AbstractAspect.aj | 5 +++++ tests/bugs187/475152/AjTarget.java | 9 +++++++++ tests/bugs187/475152/BaseAspect.aj | 15 +++++++++++++++ tests/bugs187/475152/TestAspect.aj | 5 +++++ tests/bugs187/475152/TestClass.java | 11 +++++++++++ tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java | 4 ++++ tests/src/org/aspectj/systemtest/ajc187/ajc187.xml | 4 ++++ weaver/src/org/aspectj/weaver/bcel/BcelAdvice.java | 7 ++++--- 8 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 tests/bugs187/475152/AbstractAspect.aj create mode 100644 tests/bugs187/475152/AjTarget.java create mode 100644 tests/bugs187/475152/BaseAspect.aj create mode 100644 tests/bugs187/475152/TestAspect.aj create mode 100644 tests/bugs187/475152/TestClass.java (limited to 'tests') diff --git a/tests/bugs187/475152/AbstractAspect.aj b/tests/bugs187/475152/AbstractAspect.aj new file mode 100644 index 000000000..7003b8bf5 --- /dev/null +++ b/tests/bugs187/475152/AbstractAspect.aj @@ -0,0 +1,5 @@ +package ajtest; + +public abstract aspect AbstractAspect extends BaseAspect { + +} diff --git a/tests/bugs187/475152/AjTarget.java b/tests/bugs187/475152/AjTarget.java new file mode 100644 index 000000000..c025185ba --- /dev/null +++ b/tests/bugs187/475152/AjTarget.java @@ -0,0 +1,9 @@ +package ajtest; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface AjTarget { + +} diff --git a/tests/bugs187/475152/BaseAspect.aj b/tests/bugs187/475152/BaseAspect.aj new file mode 100644 index 000000000..ddfaa3183 --- /dev/null +++ b/tests/bugs187/475152/BaseAspect.aj @@ -0,0 +1,15 @@ +package ajtest; + +import java.lang.reflect.Field; + +import ajtest.AjTarget; + +public abstract aspect BaseAspect { + + protected pointcut mapped(Object obj) : get(@(AjTarget) Long *) && target(obj); + + Object around(Object obj) : mapped(obj) { + Object value = proceed(obj); + return value; + } +} diff --git a/tests/bugs187/475152/TestAspect.aj b/tests/bugs187/475152/TestAspect.aj new file mode 100644 index 000000000..be1adeaf0 --- /dev/null +++ b/tests/bugs187/475152/TestAspect.aj @@ -0,0 +1,5 @@ +package ajtest; + +public aspect TestAspect extends AbstractAspect { + +} diff --git a/tests/bugs187/475152/TestClass.java b/tests/bugs187/475152/TestClass.java new file mode 100644 index 000000000..1b13a90e1 --- /dev/null +++ b/tests/bugs187/475152/TestClass.java @@ -0,0 +1,11 @@ +package ajtest; + +public class TestClass { + @AjTarget + private Long test; + + public void testMethod() { + Object o = test; + System.out.println(o); + } +} diff --git a/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java b/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java index 4907eeafe..ece3240e0 100644 --- a/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java @@ -24,6 +24,10 @@ import org.aspectj.testing.XMLBasedAjcTestCase; */ public class Ajc187Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + public void testInfiniteLoop_475152() throws Exception { + runTest("infinite loop"); + } + public void testAnnoConversion_474165() throws Exception { runTest("anno conversion"); } diff --git a/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml b/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml index ccf87e34f..e6db6d5e5 100644 --- a/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml +++ b/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml @@ -2,6 +2,10 @@ + + + + + +

ajdoc

+

The ajdoc tool has been fixed! It is now working again if run on a 1.7 JDK.

+ +

Dynamic weaver attachment

+

The AspectJ loadtime weaving agent can now be dynamically attached to a JVM after it has started +(you don't need to use -javaagent). This offers extra flexibility but obviously any +classes loaded before attachment will not be woven.

+ +

Here is a simple aspect:

+
+public aspect Azpect {
+  before(): execution(* *(..)) {
+    System.out.println(thisJoinPointStaticPart);
+  }
+}
+
+ +

Compiled via:

+ +
ajc -1.8 Azpect.java -outxml
+ +

This produces a compiled class Azpect.class and a file META-INF/aop-ajc.xml.

+ +

I then have this sample application (same directory):

+ +
+import java.lang.management.ManagementFactory;
+import org.aspectj.weaver.loadtime.Agent;
+import com.sun.tools.attach.VirtualMachine;
+
+public class Application {
+
+  public static void main(String[] args) {
+    if (!isAspectJAgentLoaded())
+      System.err.println("WARNING: AspectJ weaving agent not loaded");
+    new Sample().doSomething();
+  }
+
+  public static boolean isAspectJAgentLoaded() {
+    try {
+      Agent.getInstrumentation();
+    } catch (NoClassDefFoundError e) {
+      System.out.println(e);
+      return false;
+    } catch (UnsupportedOperationException e) {
+      System.out.println(e);
+      return dynamicallyLoadAspectJAgent();
+    }
+    return true;
+  }
+
+  public static boolean dynamicallyLoadAspectJAgent() {
+    String nameOfRunningVM = ManagementFactory.getRuntimeMXBean().getName();
+    int p = nameOfRunningVM.indexOf('@');
+    String pid = nameOfRunningVM.substring(0, p);
+    try {
+      VirtualMachine vm = VirtualMachine.attach(pid);
+      String jarFilePath = System.getProperty("AGENT_PATH");
+      vm.loadAgent(jarFilePath);
+      vm.detach();
+    } catch (Exception e) {
+      System.out.println(e);
+      return false;
+    }
+    return true;
+  }
+}
+
+ +

And this Sample class:

+
+public class Sample {
+	public void doSomething() {
+		System.out.println("Do something");
+		System.out.println("Square of 7 = " + square(7));
+	}
+
+	private int square(int i) {
+		return i * i;
+	}
+}
+
+ +

Compile these with javac, but you must have the aspectjweaver and the JDK tools.jar on your classpath.

+ +

Once compiled we can run it:

+ +
java -DAGENT_PATH=<path-to>/aspectjweaver.jar Application
+ +

What does it do? The main method calls the function that detects whether the agent is attached, if it is not then +it programmatically attaches it using the VirtualMachine class. Then the main method accesses the +Sample class. At this point in program execution the Sample class is loaded and because the agent has been +attached it gets woven. Notice that the Application class itself is not woven because it was loaded prior +to agent attachment.

+ +

Thanks to Alexander Kriegisch for the sample code and the patch to add this behaviour to AspectJ.

+ diff --git a/tests/bugs188/478003/OrientDBKeyIO.java b/tests/bugs188/478003/OrientDBKeyIO.java new file mode 100644 index 000000000..2397ae8d2 --- /dev/null +++ b/tests/bugs188/478003/OrientDBKeyIO.java @@ -0,0 +1,22 @@ +//import com.flickbay.orientdb.OrientKey; + +class OrientKey { +} + +class SimpleOrientDBValue extends OrientDBValue {} +class OrientDBValue {} + +public aspect OrientDBKeyIO { + + public interface IO { + OrientDBValue getOrientDBValue(); + } + + declare parents : OrientKey implements IO; + + public SimpleOrientDBValue OrientKey.value = null; + + public OrientDBValue OrientKey.getOrientDBValue() { return this.value; } + +} + diff --git a/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java b/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java new file mode 100644 index 000000000..11c503a89 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java @@ -0,0 +1,42 @@ +/******************************************************************************* + * Copyright (c) 2014 Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andy Clement - initial API and implementation + *******************************************************************************/ +package org.aspectj.systemtest.ajc188; + +import java.io.File; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; + +import junit.framework.Test; + +import org.aspectj.testing.XMLBasedAjcTestCase; + +/** + * @author Andy Clement + */ +public class Ajc188Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public void testCompileError_478003() throws Exception { + runTest("compile error"); + } + + // --- + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(Ajc188Tests.class); + } + + @Override + protected File getSpecFile() { + return getClassResource("ajc188.xml"); + } + +} diff --git a/tests/src/org/aspectj/systemtest/ajc188/AllTestsAspectJ188.java b/tests/src/org/aspectj/systemtest/ajc188/AllTestsAspectJ188.java new file mode 100644 index 000000000..8867d9174 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc188/AllTestsAspectJ188.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2014 Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andy Clement - initial API and implementation + *******************************************************************************/ +package org.aspectj.systemtest.ajc188; + +import junit.framework.Test; +import junit.framework.TestSuite; +import org.aspectj.systemtest.apt.AptTests; + +public class AllTestsAspectJ188 { + + public static Test suite() { + TestSuite suite = new TestSuite("AspectJ 1.8.8 tests"); + // $JUnit-BEGIN$ + suite.addTest(Ajc188Tests.suite()); + // $JUnit-END$ + return suite; + } +} diff --git a/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml b/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml new file mode 100644 index 000000000..cc1214c18 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java index 7a637bb2d..8d5d26499 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java @@ -375,7 +375,12 @@ public class BcelTypeMunger extends ConcreteTypeMunger { // for that type if (m.isTargetTypeParameterized()) { ResolvedType genericOnType = getWorld().resolve(sig.getDeclaringType()).getGenericType(); - m = m.parameterizedFor(newParent.discoverActualOccurrenceOfTypeInHierarchy(genericOnType)); + ResolvedType actualOccurrence = newParent.discoverActualOccurrenceOfTypeInHierarchy(genericOnType); + if (actualOccurrence == null) { + // Handle the case where the ITD is onto the type targeted by the declare parents (PR478003) + actualOccurrence = newParentTarget.getType().discoverActualOccurrenceOfTypeInHierarchy(genericOnType); + } + m = m.parameterizedFor(actualOccurrence); // possible sig change when type parameters filled in sig = m.getSignature(); } -- cgit v1.2.3 From af8a5a2ac9a64e6f48101d7442024a685450285a Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Thu, 19 Nov 2015 08:54:14 -0800 Subject: Fix 461323: around advice on default methods --- tests/bugs188/defaultMethods/Code.java | 18 +++++++++++++ tests/bugs188/defaultMethods/Code2.java | 18 +++++++++++++ .../org/aspectj/systemtest/ajc188/Ajc188Tests.java | 13 ++++++--- tests/src/org/aspectj/systemtest/ajc188/ajc188.xml | 21 +++++++++++++++ weaver/src/org/aspectj/weaver/bcel/BcelShadow.java | 31 +++++++++++++--------- weaver/src/org/aspectj/weaver/bcel/Utility.java | 7 ++++- .../weaver/bcel/MoveInstructionsWeaveTestCase.java | 7 ++--- 7 files changed, 94 insertions(+), 21 deletions(-) create mode 100644 tests/bugs188/defaultMethods/Code.java create mode 100644 tests/bugs188/defaultMethods/Code2.java (limited to 'tests') diff --git a/tests/bugs188/defaultMethods/Code.java b/tests/bugs188/defaultMethods/Code.java new file mode 100644 index 000000000..a162fe75e --- /dev/null +++ b/tests/bugs188/defaultMethods/Code.java @@ -0,0 +1,18 @@ +public class Code implements I { + public static void main(String[] argv) { + new Code().m(); + } +} +aspect X { + void around(): execution(* I.*()) { + System.out.println("a"); + proceed(); + } +} + +interface I { + default void m(){ + System.out.println("b"); + } +} + diff --git a/tests/bugs188/defaultMethods/Code2.java b/tests/bugs188/defaultMethods/Code2.java new file mode 100644 index 000000000..ea5469eeb --- /dev/null +++ b/tests/bugs188/defaultMethods/Code2.java @@ -0,0 +1,18 @@ +public class Code2 implements I { + public static void main(String[] argv) { + new Code2().m(); + } +} +aspect X { + void around(): execution(* I.*()) { + System.out.println("a"); + proceed(); + } +} + +interface I { + default void m(){ + System.out.println("b"); + } +} + diff --git a/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java b/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java index 11c503a89..c2a994855 100644 --- a/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2014 Contributors + * Copyright (c) 2015 Contributors * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -11,9 +11,6 @@ package org.aspectj.systemtest.ajc188; import java.io.File; -import java.lang.reflect.Method; -import java.net.URL; -import java.net.URLClassLoader; import junit.framework.Test; @@ -24,6 +21,14 @@ import org.aspectj.testing.XMLBasedAjcTestCase; */ public class Ajc188Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + public void testDefaultMethodsWithXnoInline() throws Exception { + runTest("default methods 1"); + } + + public void testDefaultMethodsWithoutXnoInline() throws Exception { + runTest("default methods 2"); + } + public void testCompileError_478003() throws Exception { runTest("compile error"); } diff --git a/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml b/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml index cc1214c18..2e8a8b62f 100644 --- a/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml +++ b/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml @@ -2,6 +2,27 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java b/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java index e6676900f..94462d5ff 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java @@ -1039,8 +1039,8 @@ public class BcelShadow extends Shadow { private boolean checkLazyTjp() { // check for around advice - for (Iterator i = mungers.iterator(); i.hasNext();) { - ShadowMunger munger = (ShadowMunger) i.next(); + for (Iterator i = mungers.iterator(); i.hasNext();) { + ShadowMunger munger = i.next(); if (munger instanceof Advice) { if (((Advice) munger).getKind() == AdviceKind.Around) { if (munger.getSourceLocation() != null) { // do we know enough to bother reporting? @@ -2183,8 +2183,10 @@ public class BcelShadow extends Shadow { // at the shadow, then tjp String extractedShadowMethodName = NameMangler.aroundShadowMethodName(getSignature(), shadowClass.getNewGeneratedNameTag()); List parameterNames = new ArrayList(); - LazyMethodGen extractedShadowMethod = extractShadowInstructionsIntoNewMethod(extractedShadowMethodName, Modifier.PRIVATE, - munger.getSourceLocation(), parameterNames); + boolean shadowClassIsInterface = shadowClass.isInterface(); + LazyMethodGen extractedShadowMethod = extractShadowInstructionsIntoNewMethod(extractedShadowMethodName, + shadowClassIsInterface?Modifier.PUBLIC:Modifier.PRIVATE, + munger.getSourceLocation(), parameterNames,shadowClassIsInterface); List argsToCallLocalAdviceMethodWith = new ArrayList(); List proceedVarList = new ArrayList(); @@ -2205,7 +2207,6 @@ public class BcelShadow extends Shadow { proceedVarList.add(new BcelVar(targetVar.getType(), extraParamOffset)); extraParamOffset += targetVar.getType().getSize(); } - int idx = 0; for (int i = 0, len = getArgCount(); i < len; i++) { argsToCallLocalAdviceMethodWith.add(argVars[i]); proceedVarList.add(new BcelVar(argVars[i].getType(), extraParamOffset)); @@ -2242,8 +2243,8 @@ public class BcelShadow extends Shadow { // Extract the advice into a new method. This will go in the same type as the shadow // name will be something like foo_aroundBody1$advice String localAdviceMethodName = NameMangler.aroundAdviceMethodName(getSignature(), shadowClass.getNewGeneratedNameTag()); - LazyMethodGen localAdviceMethod = new LazyMethodGen(Modifier.PRIVATE | (world.useFinal() ? Modifier.FINAL : 0) - | Modifier.STATIC, BcelWorld.makeBcelType(mungerSig.getReturnType()), localAdviceMethodName, parameterTypes, + int localAdviceMethodModifiers = Modifier.PRIVATE | (world.useFinal() & !shadowClassIsInterface ? Modifier.FINAL : 0) | Modifier.STATIC; + LazyMethodGen localAdviceMethod = new LazyMethodGen(localAdviceMethodModifiers, BcelWorld.makeBcelType(mungerSig.getReturnType()), localAdviceMethodName, parameterTypes, NoDeclaredExceptions, shadowClass); // Doesnt work properly, so leave it out: @@ -2833,9 +2834,12 @@ public class BcelShadow extends Shadow { int linenumber = getSourceLine(); // MOVE OUT ALL THE INSTRUCTIONS IN MY SHADOW INTO ANOTHER METHOD! + + // callbackMethod will be something like: "static final void m_aroundBody0(I)" + boolean shadowClassIsInterface = getEnclosingClass().isInterface(); LazyMethodGen callbackMethod = extractShadowInstructionsIntoNewMethod( - NameMangler.aroundShadowMethodName(getSignature(), getEnclosingClass().getNewGeneratedNameTag()), 0, - munger.getSourceLocation(), new ArrayList()); + NameMangler.aroundShadowMethodName(getSignature(), getEnclosingClass().getNewGeneratedNameTag()), shadowClassIsInterface?Modifier.PUBLIC:0, + munger.getSourceLocation(), new ArrayList(),shadowClassIsInterface); BcelVar[] adviceVars = munger.getExposedStateAsBcelVars(true); @@ -3123,15 +3127,16 @@ public class BcelShadow extends Shadow { * @param extractedMethodName name for the new method * @param extractedMethodVisibilityModifier visibility modifiers for the new method * @param adviceSourceLocation source location of the advice affecting the shadow + * @param beingPlacedInInterface is this new method going into an interface */ LazyMethodGen extractShadowInstructionsIntoNewMethod(String extractedMethodName, int extractedMethodVisibilityModifier, - ISourceLocation adviceSourceLocation, List parameterNames) { + ISourceLocation adviceSourceLocation, List parameterNames, boolean beingPlacedInInterface) { // LazyMethodGen.assertGoodBody(range.getBody(), extractedMethodName); if (!getKind().allowsExtraction()) { throw new BCException("Attempt to extract method from a shadow kind (" + getKind() + ") that does not support this operation"); } - LazyMethodGen newMethod = createShadowMethodGen(extractedMethodName, extractedMethodVisibilityModifier, parameterNames); + LazyMethodGen newMethod = createShadowMethodGen(extractedMethodName, extractedMethodVisibilityModifier, parameterNames, beingPlacedInInterface); IntMap remapper = makeRemap(); range.extractInstructionsInto(newMethod, remapper, (getKind() != PreInitialization) && isFallsThrough()); if (getKind() == PreInitialization) { @@ -3230,9 +3235,9 @@ public class BcelShadow extends Shadow { * The new method always static. It may take some extra arguments: this, target. If it's argsOnStack, then it must take both * this/target If it's argsOnFrame, it shares this and target. ??? rewrite this to do less array munging, please */ - private LazyMethodGen createShadowMethodGen(String newMethodName, int visibilityModifier, List parameterNames) { + private LazyMethodGen createShadowMethodGen(String newMethodName, int visibilityModifier, List parameterNames, boolean beingPlacedInInterface) { Type[] shadowParameterTypes = BcelWorld.makeBcelTypes(getArgTypes()); - int modifiers = (world.useFinal() ? Modifier.FINAL : 0) | Modifier.STATIC | visibilityModifier; + int modifiers = (world.useFinal() && !beingPlacedInInterface ? Modifier.FINAL : 0) | Modifier.STATIC | visibilityModifier; if (targetVar != null && targetVar != thisVar) { UnresolvedType targetType = getTargetType(); targetType = ensureTargetTypeIsCorrect(targetType); diff --git a/weaver/src/org/aspectj/weaver/bcel/Utility.java b/weaver/src/org/aspectj/weaver/bcel/Utility.java index 20ec45ad0..afbfbc7ef 100644 --- a/weaver/src/org/aspectj/weaver/bcel/Utility.java +++ b/weaver/src/org/aspectj/weaver/bcel/Utility.java @@ -198,7 +198,12 @@ public class Utility { public static Instruction createInvoke(InstructionFactory fact, LazyMethodGen m) { short kind; if (m.getEnclosingClass().isInterface()) { - kind = Constants.INVOKEINTERFACE; + if (m.isStatic()) { + // For static methods on interfaces + kind = Constants.INVOKESTATIC; + } else { + kind = Constants.INVOKEINTERFACE; + } } else if (m.isStatic()) { kind = Constants.INVOKESTATIC; } else if (m.isPrivate() || m.getName().equals("")) { diff --git a/weaver/testsrc/org/aspectj/weaver/bcel/MoveInstructionsWeaveTestCase.java b/weaver/testsrc/org/aspectj/weaver/bcel/MoveInstructionsWeaveTestCase.java index 0155cb03c..bd7c2ae65 100644 --- a/weaver/testsrc/org/aspectj/weaver/bcel/MoveInstructionsWeaveTestCase.java +++ b/weaver/testsrc/org/aspectj/weaver/bcel/MoveInstructionsWeaveTestCase.java @@ -39,7 +39,7 @@ public class MoveInstructionsWeaveTestCase extends WeaveTestCase { BcelShadow shadow = (BcelShadow) s; LazyMethodGen newMethod = shadow.extractShadowInstructionsIntoNewMethod(NameMangler.getExtractableName(shadow .getSignature()) - + "_extracted", 0, this.getSourceLocation(), new ArrayList()); + + "_extracted", 0, this.getSourceLocation(), new ArrayList(),shadow.getEnclosingClass().isInterface()); shadow.getRange().append(shadow.makeCallToCallback(newMethod)); if (!shadow.isFallsThrough()) { @@ -63,9 +63,10 @@ public class MoveInstructionsWeaveTestCase extends WeaveTestCase { public boolean implementOn(Shadow s) { BcelShadow shadow = (BcelShadow) s; - LazyMethodGen newMethod = shadow.extractShadowInstructionsIntoNewMethod(NameMangler.getExtractableName(shadow + LazyMethodGen newMethod = + shadow.extractShadowInstructionsIntoNewMethod(NameMangler.getExtractableName(shadow .getSignature()) - + "_extracted" + counter++, 0, this.getSourceLocation(), new ArrayList()); + + "_extracted" + counter++, 0, this.getSourceLocation(), new ArrayList(),shadow.getEnclosingClass().isInterface()); shadow.getRange().append(shadow.makeCallToCallback(newMethod)); if (!shadow.isFallsThrough()) { -- cgit v1.2.3 From f4095941510acb644e66cd77a5d1936643bafe90 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Wed, 25 Nov 2015 12:39:17 -0800 Subject: Add 1.8.8 testsuite to 1.8 test list --- tests/src/org/aspectj/systemtest/AllTests18.java | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests') diff --git a/tests/src/org/aspectj/systemtest/AllTests18.java b/tests/src/org/aspectj/systemtest/AllTests18.java index cbef2eb66..030bcfd45 100644 --- a/tests/src/org/aspectj/systemtest/AllTests18.java +++ b/tests/src/org/aspectj/systemtest/AllTests18.java @@ -21,12 +21,14 @@ import org.aspectj.systemtest.ajc184.AllTestsAspectJ184; import org.aspectj.systemtest.ajc185.AllTestsAspectJ185; import org.aspectj.systemtest.ajc186.AllTestsAspectJ186; import org.aspectj.systemtest.ajc187.AllTestsAspectJ187; +import org.aspectj.systemtest.ajc188.AllTestsAspectJ188; public class AllTests18 { public static Test suite() { TestSuite suite = new TestSuite("AspectJ System Test Suite - 1.8"); // $JUnit-BEGIN$ + suite.addTest(AllTestsAspectJ188.suite()); suite.addTest(AllTestsAspectJ187.suite()); suite.addTest(AllTestsAspectJ186.suite()); suite.addTest(AllTestsAspectJ185.suite()); -- cgit v1.2.3 From d9029474077ebd405ec34d44913eed3051f2691e Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Tue, 5 Jan 2016 13:06:22 -0800 Subject: Fix 484941 - NPE AnnotationDiscoveryVisitor --- .../ajdt/internal/compiler/AjPipeliningCompilerAdapter.java | 6 ++---- tests/bugs188/484941/Test2.java | 10 ++++++++++ tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java | 4 ++++ tests/src/org/aspectj/systemtest/ajc188/ajc188.xml | 4 ++++ 4 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 tests/bugs188/484941/Test2.java (limited to 'tests') diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java index 00f7f8d8c..77410281b 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java @@ -646,10 +646,8 @@ public class AjPipeliningCompilerAdapter extends AbstractCompilerAdapter { return true; // code style } else if (declaration.annotations != null) { // check for annotation style for (int index = 0; index < declaration.annotations.length; index++) { - TypeDeclaration - .resolveAnnotations(declaration.staticInitializerScope, declaration.annotations, declaration.binding); // force - // annotation - // resolution + // Cause annotation resolution + declaration.binding.getAnnotationTagBits(); Annotation a = declaration.annotations[index]; if (a.resolvedType == null) { continue; // another problem is being reported, so don't crash here diff --git a/tests/bugs188/484941/Test2.java b/tests/bugs188/484941/Test2.java new file mode 100644 index 000000000..fd2623575 --- /dev/null +++ b/tests/bugs188/484941/Test2.java @@ -0,0 +1,10 @@ + +@ContextConfiguration +public class Test2 { + static class ContextConfiguration { + + } +} + +@interface ContextConfiguration { +} diff --git a/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java b/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java index c2a994855..1a5f5a465 100644 --- a/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java @@ -21,6 +21,10 @@ import org.aspectj.testing.XMLBasedAjcTestCase; */ public class Ajc188Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + public void testAnnotationDiscoveryNpe() throws Exception { + runTest("annotation discovery npe"); + } + public void testDefaultMethodsWithXnoInline() throws Exception { runTest("default methods 1"); } diff --git a/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml b/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml index 2e8a8b62f..a9844f79f 100644 --- a/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml +++ b/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml @@ -2,6 +2,10 @@ + + + + -- cgit v1.2.3 From 482995299ca0078f67c6a6038d3ce7e3745663e9 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Tue, 5 Jan 2016 15:44:25 -0800 Subject: Fix 485055: declare @field failing for final String fields (see also Bug 327141) --- bcel-builder/bcel-src.zip | Bin 55121 -> 0 bytes .../org/aspectj/apache/bcel/generic/FieldGen.java | 4 +- lib/bcel/bcel-src.zip | Bin 326864 -> 326860 bytes lib/bcel/bcel-verifier.jar | Bin 161556 -> 161556 bytes lib/bcel/bcel.jar | Bin 285242 -> 285293 bytes tests/bugs188/485055/AspectWithConstant.aj | 13 ++ .../bugs188/485055/ajcore.20160105.151522.218.txt | 156 +++++++++++++++++++++ .../org/aspectj/systemtest/ajc188/Ajc188Tests.java | 4 + tests/src/org/aspectj/systemtest/ajc188/ajc188.xml | 10 ++ 9 files changed, 186 insertions(+), 1 deletion(-) delete mode 100644 bcel-builder/bcel-src.zip create mode 100644 tests/bugs188/485055/AspectWithConstant.aj create mode 100644 tests/bugs188/485055/ajcore.20160105.151522.218.txt (limited to 'tests') diff --git a/bcel-builder/bcel-src.zip b/bcel-builder/bcel-src.zip deleted file mode 100644 index a3a9951b7..000000000 Binary files a/bcel-builder/bcel-src.zip and /dev/null differ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldGen.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldGen.java index 606beab3e..6a12a8c80 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldGen.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldGen.java @@ -66,6 +66,7 @@ import org.aspectj.apache.bcel.classfile.ConstantInteger; import org.aspectj.apache.bcel.classfile.ConstantLong; import org.aspectj.apache.bcel.classfile.ConstantObject; import org.aspectj.apache.bcel.classfile.ConstantPool; +import org.aspectj.apache.bcel.classfile.ConstantString; import org.aspectj.apache.bcel.classfile.ConstantValue; import org.aspectj.apache.bcel.classfile.Field; import org.aspectj.apache.bcel.classfile.Utility; @@ -126,7 +127,6 @@ public class FieldGen extends FieldGenOrMethodGen { } } - // TODO setting the constant value is a mess... public void setValue(int index) { ConstantPool cp = this.cp; Constant c = cp.getConstant(index); @@ -138,6 +138,8 @@ public class FieldGen extends FieldGenOrMethodGen { value = ((ConstantDouble) c).getValue(); } else if (c instanceof ConstantLong) { value = ((ConstantLong) c).getValue(); + } else if (c instanceof ConstantString) { + value = ((ConstantString)c).getString(cp); } else { value = ((ConstantObject) c).getConstantValue(cp); } diff --git a/lib/bcel/bcel-src.zip b/lib/bcel/bcel-src.zip index 6e51d7916..014a928d4 100644 Binary files a/lib/bcel/bcel-src.zip and b/lib/bcel/bcel-src.zip differ diff --git a/lib/bcel/bcel-verifier.jar b/lib/bcel/bcel-verifier.jar index 7a722a905..87a86a795 100644 Binary files a/lib/bcel/bcel-verifier.jar and b/lib/bcel/bcel-verifier.jar differ diff --git a/lib/bcel/bcel.jar b/lib/bcel/bcel.jar index 040e5d0b5..197137b65 100644 Binary files a/lib/bcel/bcel.jar and b/lib/bcel/bcel.jar differ diff --git a/tests/bugs188/485055/AspectWithConstant.aj b/tests/bugs188/485055/AspectWithConstant.aj new file mode 100644 index 000000000..0cbbe9ce9 --- /dev/null +++ b/tests/bugs188/485055/AspectWithConstant.aj @@ -0,0 +1,13 @@ +import java.lang.annotation.*; + +public aspect AspectWithConstant { + declare @field : * AspectWithConstant.MAX* : @Loggable; +public static final String MAXS = "hello"; + @Retention(RetentionPolicy.RUNTIME) + @interface Loggable { } + + public static void main(String []argv) throws Exception { + System.out.println("MAXS="+MAXS); +System.out.println(AspectWithConstant.class.getDeclaredField("MAXS").getAnnotation(Loggable.class)); + } +} diff --git a/tests/bugs188/485055/ajcore.20160105.151522.218.txt b/tests/bugs188/485055/ajcore.20160105.151522.218.txt new file mode 100644 index 000000000..f5f73af79 --- /dev/null +++ b/tests/bugs188/485055/ajcore.20160105.151522.218.txt @@ -0,0 +1,156 @@ +---- AspectJ Properties --- +AspectJ Compiler 1.8.7 built on Wednesday Sep 9, 2015 at 21:19:30 GMT +---- Dump Properties --- +Dump file: ajcore.20160105.151522.218.txt +Dump reason: java.lang.ClassCastException +Dump on exception: true +Dump at exit condition: abort +---- Exception Information --- +java.lang.ClassCastException: org.aspectj.apache.bcel.classfile.ConstantString cannot be cast to org.aspectj.apache.bcel.classfile.ConstantObject + at org.aspectj.apache.bcel.generic.FieldGen.setValue(FieldGen.java:142) + at org.aspectj.apache.bcel.generic.FieldGen.(FieldGen.java:115) + at org.aspectj.weaver.bcel.BcelField.getField(BcelField.java:233) + at org.aspectj.weaver.bcel.LazyClassGen.writeBack(LazyClassGen.java:522) + at org.aspectj.weaver.bcel.LazyClassGen.getJavaClassBytesIncludingReweavable(LazyClassGen.java:697) + at org.aspectj.weaver.bcel.BcelWeaver.getClassFilesFor(BcelWeaver.java:1440) + at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1402) + at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1155) + at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.weaveQueuedEntries(AjPipeliningCompilerAdapter.java:514) + at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.queueForWeaving(AjPipeliningCompilerAdapter.java:447) + at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.afterProcessing(AjPipeliningCompilerAdapter.java:432) + at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$after$org_aspectj_ajdt_internal_compiler_CompilerAdapter$5$6b855184(CompilerAdapter.aj:103) + at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:902) + at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.processCompiledUnits(Compiler.java:545) + at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:458) + at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:1036) + at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:272) + at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:185) + at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:114) + at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60) + at org.aspectj.tools.ajc.Main.run(Main.java:371) + at org.aspectj.tools.ajc.Main.runMain(Main.java:248) + at org.aspectj.tools.ajc.Main.main(Main.java:84) +---- System Properties --- +java.runtime.name=Java(TM) SE Runtime Environment +sun.boot.library.path=/Users/aclement/jvms/jdk180u60/Home/jre/lib +java.vm.version=25.60-b23 +gopherProxySet=false +java.vm.vendor=Oracle Corporation +java.vendor.url=http://java.oracle.com/ +path.separator=: +java.vm.name=Java HotSpot(TM) 64-Bit Server VM +file.encoding.pkg=sun.io +user.country=US +sun.java.launcher=SUN_STANDARD +sun.os.patch.level=unknown +java.vm.specification.name=Java Virtual Machine Specification +user.dir=/Users/aclement/gits/org.aspectj/tests/bugs188/485055 +java.runtime.version=1.8.0_60-b27 +java.awt.graphicsenv=sun.awt.CGraphicsEnvironment +java.endorsed.dirs=/Users/aclement/jvms/jdk180u60/Home/jre/lib/endorsed +os.arch=x86_64 +java.io.tmpdir=/var/folders/cn/p3n4rh_n6z7gm6zwk53mtfc80000gp/T/ +line.separator= + +java.vm.specification.vendor=Oracle Corporation +os.name=Mac OS X +sun.jnu.encoding=UTF-8 +java.library.path=/Users/aclement/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:. +java.specification.name=Java Platform API Specification +java.class.version=52.0 +sun.management.compiler=HotSpot 64-Bit Tiered Compilers +os.version=10.11.1 +http.nonProxyHosts=local|*.local|169.254/16|*.169.254/16 +user.home=/Users/aclement +user.timezone=America/Vancouver +java.awt.printerjob=sun.lwawt.macosx.CPrinterJob +file.encoding=UTF-8 +java.specification.version=1.8 +java.class.path=/Users/aclement/installs/aspectj187/lib/aspectjtools.jar:/Users/aclement/jvms/jdk180u60/Home/lib/tools.jar:.:/Users/aclement/.m2/repository/org/springframework/spring-test/4.2.3.RELEASE/spring-test-4.2.3.RELEASE.jar:/Users/aclement/.m2/repository/org/springframework/spring-context/4.2.3.RELEASE/spring-context-4.2.3.RELEASE.jar:/Users/aclement/installs/aspectj187/lib/aspectjrt.jar +user.name=aclement +java.vm.specification.version=1.8 +sun.java.command=org.aspectj.tools.ajc.Main -1.5 AspectWithConstant.aj +java.home=/Users/aclement/jvms/jdk180u60/Home/jre +sun.arch.data.model=64 +user.language=en +java.specification.vendor=Oracle Corporation +awt.toolkit=sun.lwawt.macosx.LWCToolkit +java.vm.info=mixed mode +java.version=1.8.0_60 +java.ext.dirs=/Users/aclement/Library/Java/Extensions:/Users/aclement/jvms/jdk180u60/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java +sun.boot.class.path=/Users/aclement/jvms/jdk180u60/Home/jre/lib/resources.jar:/Users/aclement/jvms/jdk180u60/Home/jre/lib/rt.jar:/Users/aclement/jvms/jdk180u60/Home/jre/lib/sunrsasign.jar:/Users/aclement/jvms/jdk180u60/Home/jre/lib/jsse.jar:/Users/aclement/jvms/jdk180u60/Home/jre/lib/jce.jar:/Users/aclement/jvms/jdk180u60/Home/jre/lib/charsets.jar:/Users/aclement/jvms/jdk180u60/Home/jre/lib/jfr.jar:/Users/aclement/jvms/jdk180u60/Home/jre/classes +java.vendor=Oracle Corporation +file.separator=/ +java.vendor.url.bug=http://bugreport.sun.com/bugreport/ +sun.io.unicode.encoding=UnicodeBig +sun.cpu.endian=little +socksNonProxyHosts=local|*.local|169.254/16|*.169.254/16 +ftp.nonProxyHosts=local|*.local|169.254/16|*.169.254/16 +sun.cpu.isalist= +---- Command Line --- +-1.5 +AspectWithConstant.aj +---- Full Classpath --- +/Users/aclement/jvms/jdk180u60/Home/jre/lib/resources.jar(3501583 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/rt.jar(66555254 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/sunrsasign.jar(missing) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/jsse.jar(625764 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/jce.jar(114730 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/charsets.jar(3133473 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/jfr.jar(555268 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/classes(missing) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/ext/cldrdata.jar(3860522 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/ext/dnsns.jar(8286 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/ext/jaccess.jar(44516 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/ext/jfxrt.jar(18570861 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/ext/localedata.jar(1178935 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/ext/nashorn.jar(2014239 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/ext/sunec.jar(39771 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/ext/sunjce_provider.jar(278680 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/ext/sunpkcs11.jar(250826 bytes) +/Users/aclement/jvms/jdk180u60/Home/jre/lib/ext/zipfs.jar(68848 bytes) +/System/Library/Java/Extensions/AppleScriptEngine.jar(6476 bytes) +/System/Library/Java/Extensions/dns_sd.jar(17780 bytes) +/System/Library/Java/Extensions/j3daudio.jar(1223496 bytes) +/System/Library/Java/Extensions/j3dcore.jar(1157355 bytes) +/System/Library/Java/Extensions/j3dutils.jar(685308 bytes) +/System/Library/Java/Extensions/jai_codec.jar(275499 bytes) +/System/Library/Java/Extensions/jai_core.jar(1544542 bytes) +/System/Library/Java/Extensions/mlibwrapper_jai.jar(41239 bytes) +/System/Library/Java/Extensions/MRJToolkit.jar(12847 bytes) +/System/Library/Java/Extensions/vecmath.jar(127640 bytes) +/Users/aclement/jvms/jdk180u60/Home/lib/tools.jar(18194868 bytes) +/Users/aclement/gits/org.aspectj/tests/bugs188/485055/.(2 entries) +/Users/aclement/.m2/repository/org/springframework/spring-test/4.2.3.RELEASE/spring-test-4.2.3.RELEASE.jar(562284 bytes) +/Users/aclement/.m2/repository/org/springframework/spring-context/4.2.3.RELEASE/spring-context-4.2.3.RELEASE.jar(1088916 bytes) +/Users/aclement/installs/aspectj187/lib/aspectjrt.jar(116927 bytes) +---- Compiler Messages --- +error at (no source information available) +/Users/aclement/gits/org.aspectj/tests/bugs188/485055/AspectWithConstant.aj:0::0 Internal compiler error: java.lang.ClassCastException: org.aspectj.apache.bcel.classfile.ConstantString cannot be cast to org.aspectj.apache.bcel.classfile.ConstantObject at org.aspectj.apache.bcel.generic.FieldGen.setValue(FieldGen.java:142) +abort ABORT -- (ClassCastException) org.aspectj.apache.bcel.classfile.ConstantString cannot be cast to org.aspectj.apache.bcel.classfile.ConstantObject +org.aspectj.apache.bcel.classfile.ConstantString cannot be cast to org.aspectj.apache.bcel.classfile.ConstantObject +java.lang.ClassCastException: org.aspectj.apache.bcel.classfile.ConstantString cannot be cast to org.aspectj.apache.bcel.classfile.ConstantObject + at org.aspectj.apache.bcel.generic.FieldGen.setValue(FieldGen.java:142) + at org.aspectj.apache.bcel.generic.FieldGen.(FieldGen.java:115) + at org.aspectj.weaver.bcel.BcelField.getField(BcelField.java:233) + at org.aspectj.weaver.bcel.LazyClassGen.writeBack(LazyClassGen.java:522) + at org.aspectj.weaver.bcel.LazyClassGen.getJavaClassBytesIncludingReweavable(LazyClassGen.java:697) + at org.aspectj.weaver.bcel.BcelWeaver.getClassFilesFor(BcelWeaver.java:1440) + at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1402) + at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1155) + at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.weaveQueuedEntries(AjPipeliningCompilerAdapter.java:514) + at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.queueForWeaving(AjPipeliningCompilerAdapter.java:447) + at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.afterProcessing(AjPipeliningCompilerAdapter.java:432) + at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$after$org_aspectj_ajdt_internal_compiler_CompilerAdapter$5$6b855184(CompilerAdapter.aj:103) + at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:902) + at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.processCompiledUnits(Compiler.java:545) + at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:458) + at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:1036) + at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:272) + at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:185) + at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:114) + at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60) + at org.aspectj.tools.ajc.Main.run(Main.java:371) + at org.aspectj.tools.ajc.Main.runMain(Main.java:248) + at org.aspectj.tools.ajc.Main.main(Main.java:84) + diff --git a/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java b/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java index 1a5f5a465..c2f5e888c 100644 --- a/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc188/Ajc188Tests.java @@ -21,6 +21,10 @@ import org.aspectj.testing.XMLBasedAjcTestCase; */ public class Ajc188Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + public void testClassCast() throws Exception { + runTest("classcast"); + } + public void testAnnotationDiscoveryNpe() throws Exception { runTest("annotation discovery npe"); } diff --git a/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml b/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml index a9844f79f..685b50240 100644 --- a/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml +++ b/tests/src/org/aspectj/systemtest/ajc188/ajc188.xml @@ -2,6 +2,16 @@ + + + + + + + + + + -- cgit v1.2.3 From 448dc83571dc16c8b087e2d5e2242474c02ff819 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Mon, 18 Jan 2016 16:08:03 -0800 Subject: Fix 486203: NPE in IntelliJ since 1.8.7 --- org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip | Bin 4562055 -> 4562083 bytes org.eclipse.jdt.core/jdtcore-for-aspectj.jar | Bin 8499628 -> 8499708 bytes tests/bugs189/486203/While.java | 14 ++++++++ tests/src/org/aspectj/systemtest/AllTests18.java | 10 +++--- .../org/aspectj/systemtest/ajc189/Ajc189Tests.java | 39 +++++++++++++++++++++ .../systemtest/ajc189/AllTestsAspectJ189.java | 26 ++++++++++++++ tests/src/org/aspectj/systemtest/ajc189/ajc189.xml | 9 +++++ 7 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 tests/bugs189/486203/While.java create mode 100644 tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java create mode 100644 tests/src/org/aspectj/systemtest/ajc189/AllTestsAspectJ189.java create mode 100644 tests/src/org/aspectj/systemtest/ajc189/ajc189.xml (limited to 'tests') diff --git a/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip b/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip index 244c9b589..8b6a18cb1 100644 Binary files a/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip and b/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip differ diff --git a/org.eclipse.jdt.core/jdtcore-for-aspectj.jar b/org.eclipse.jdt.core/jdtcore-for-aspectj.jar index 5fcb28e34..24913c717 100644 Binary files a/org.eclipse.jdt.core/jdtcore-for-aspectj.jar and b/org.eclipse.jdt.core/jdtcore-for-aspectj.jar differ diff --git a/tests/bugs189/486203/While.java b/tests/bugs189/486203/While.java new file mode 100644 index 000000000..f41e74aa8 --- /dev/null +++ b/tests/bugs189/486203/While.java @@ -0,0 +1,14 @@ +import java.util.function.Consumer; + +class While { + void m() { + t(Long.class, value -> { + int x = 1; + while (--x >= 0) + ; + }); + } + + void t(Class clazz, Consumer object) { + } +} diff --git a/tests/src/org/aspectj/systemtest/AllTests18.java b/tests/src/org/aspectj/systemtest/AllTests18.java index 030bcfd45..a5382792b 100644 --- a/tests/src/org/aspectj/systemtest/AllTests18.java +++ b/tests/src/org/aspectj/systemtest/AllTests18.java @@ -10,24 +10,26 @@ *******************************************************************************/ package org.aspectj.systemtest; -import junit.framework.Test; -import junit.framework.TestSuite; - import org.aspectj.systemtest.ajc180.AllTestsAspectJ180; import org.aspectj.systemtest.ajc181.AllTestsAspectJ181; -import org.aspectj.systemtest.ajc182.AllTestsAspectJ182; +import org.aspectj.systemtest.ajc182.AllTestsAspectJ182; import org.aspectj.systemtest.ajc183.AllTestsAspectJ183; import org.aspectj.systemtest.ajc184.AllTestsAspectJ184; import org.aspectj.systemtest.ajc185.AllTestsAspectJ185; import org.aspectj.systemtest.ajc186.AllTestsAspectJ186; import org.aspectj.systemtest.ajc187.AllTestsAspectJ187; import org.aspectj.systemtest.ajc188.AllTestsAspectJ188; +import org.aspectj.systemtest.ajc189.AllTestsAspectJ189; + +import junit.framework.Test; +import junit.framework.TestSuite; public class AllTests18 { public static Test suite() { TestSuite suite = new TestSuite("AspectJ System Test Suite - 1.8"); // $JUnit-BEGIN$ + suite.addTest(AllTestsAspectJ189.suite()); suite.addTest(AllTestsAspectJ188.suite()); suite.addTest(AllTestsAspectJ187.suite()); suite.addTest(AllTestsAspectJ186.suite()); diff --git a/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java b/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java new file mode 100644 index 000000000..ac3ceb984 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright (c) 2016 Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andy Clement - initial API and implementation + *******************************************************************************/ +package org.aspectj.systemtest.ajc189; + +import java.io.File; + +import junit.framework.Test; + +import org.aspectj.testing.XMLBasedAjcTestCase; + +/** + * @author Andy Clement + */ +public class Ajc189Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public void testWhileNPE_486203() throws Exception { + runTest("while npe"); + } + + // --- + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(Ajc189Tests.class); + } + + @Override + protected File getSpecFile() { + return getClassResource("ajc189.xml"); + } + +} diff --git a/tests/src/org/aspectj/systemtest/ajc189/AllTestsAspectJ189.java b/tests/src/org/aspectj/systemtest/ajc189/AllTestsAspectJ189.java new file mode 100644 index 000000000..0ccf75cf2 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc189/AllTestsAspectJ189.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2016 Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andy Clement - initial API and implementation + *******************************************************************************/ +package org.aspectj.systemtest.ajc189; + +import junit.framework.Test; +import junit.framework.TestSuite; +import org.aspectj.systemtest.apt.AptTests; + +public class AllTestsAspectJ189 { + + public static Test suite() { + TestSuite suite = new TestSuite("AspectJ 1.8.9 tests"); + // $JUnit-BEGIN$ + suite.addTest(Ajc189Tests.suite()); + // $JUnit-END$ + return suite; + } +} diff --git a/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml b/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml new file mode 100644 index 000000000..f64438a25 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml @@ -0,0 +1,9 @@ + + + + + + + + + -- cgit v1.2.3 From 9be47cc3a9ead4208d6247fcc5da7216c231278a Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Wed, 20 Jan 2016 12:58:09 -0800 Subject: Fixes for compile time overweaving In writing a testcase for 352389 I discovered overweaving just wasn't working for a compile time series of test steps. This was due to a guard preventing secondary calls to addOrReplaceAspect. Without the secondary call the crosscutting collector for the aspect had recorded no mungers from the original aspect because it was still using an EclipseSourceType delegate. Later when it was using the binary BcelObjectType delegate and mungers were available, they weren't collected because of that missing addOrReplaceAspect call. --- tests/bugs189/352389/A.java | 3 ++ tests/bugs189/352389/B.java | 3 ++ tests/bugs189/352389/C.java | 3 ++ tests/bugs189/352389/Code.java | 7 +++ .../org/aspectj/systemtest/ajc189/Ajc189Tests.java | 4 ++ tests/src/org/aspectj/systemtest/ajc189/ajc189.xml | 53 ++++++++++++++++++++++ weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java | 6 ++- 7 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 tests/bugs189/352389/A.java create mode 100644 tests/bugs189/352389/B.java create mode 100644 tests/bugs189/352389/C.java create mode 100644 tests/bugs189/352389/Code.java (limited to 'tests') diff --git a/tests/bugs189/352389/A.java b/tests/bugs189/352389/A.java new file mode 100644 index 000000000..d82598fa1 --- /dev/null +++ b/tests/bugs189/352389/A.java @@ -0,0 +1,3 @@ +public aspect A { +before(): execution(* m(..)) { System.out.println("a"); } +} diff --git a/tests/bugs189/352389/B.java b/tests/bugs189/352389/B.java new file mode 100644 index 000000000..950dfae0a --- /dev/null +++ b/tests/bugs189/352389/B.java @@ -0,0 +1,3 @@ +public aspect B { +before(): execution(* m(..)) { System.out.println("b"); } +} diff --git a/tests/bugs189/352389/C.java b/tests/bugs189/352389/C.java new file mode 100644 index 000000000..f86644d3b --- /dev/null +++ b/tests/bugs189/352389/C.java @@ -0,0 +1,3 @@ +public aspect C { +before(): execution(* m(..)) { System.out.println("c"); } +} diff --git a/tests/bugs189/352389/Code.java b/tests/bugs189/352389/Code.java new file mode 100644 index 000000000..c7c4e64ff --- /dev/null +++ b/tests/bugs189/352389/Code.java @@ -0,0 +1,7 @@ +public class Code { +public static void main(String []argv) { + new Code().m(); +} + +public void m() {} +} diff --git a/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java b/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java index ac3ceb984..9d5206c4b 100644 --- a/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java @@ -25,6 +25,10 @@ public class Ajc189Tests extends org.aspectj.testing.XMLBasedAjcTestCase { runTest("while npe"); } + public void testOverweaving_352389() throws Exception { + runTest("overweaving"); + } + // --- public static Test suite() { diff --git a/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml b/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml index f64438a25..d9b2b4226 100644 --- a/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml +++ b/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml @@ -6,4 +6,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java b/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java index 815becde0..5e524549e 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java @@ -503,7 +503,11 @@ public class BcelWeaver { UnwovenClassFile jc = i.next(); String name = jc.getClassName(); ResolvedType type = world.resolve(name); - if (type.isAspect() && !world.isOverWeaving()) { + // No overweaving guard. If you have one then when overweaving is on the + // addOrReplaceAspect will not be called when the aspect delegate changes from + // EclipseSourceType to BcelObjectType. This will mean the mungers + // are not picked up. + if (type.isAspect()) { needToReweaveWorld |= xcutSet.addOrReplaceAspect(type); } } -- cgit v1.2.3 From 4bee355d22f5dd4bb2120ca725f0c8b9eb904976 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Wed, 27 Jan 2016 11:49:38 -0800 Subject: Fix 486612: Can lose a super type bound when weaving a type using generics in its declaration --- .../src/org/aspectj/weaver/TypeVariable.java | 14 ++++++++------ tests/bugs189/486612/Azpect.java | 7 +++++++ tests/bugs189/486612/Code.java | 17 +++++++++++++++++ .../src/org/aspectj/systemtest/ajc189/Ajc189Tests.java | 16 +++++++++++++--- tests/src/org/aspectj/systemtest/ajc189/ajc189.out.xml | 0 tests/src/org/aspectj/systemtest/ajc189/ajc189.xml | 5 +++++ 6 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 tests/bugs189/486612/Azpect.java create mode 100644 tests/bugs189/486612/Code.java create mode 100644 tests/src/org/aspectj/systemtest/ajc189/ajc189.out.xml (limited to 'tests') diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/TypeVariable.java b/org.aspectj.matcher/src/org/aspectj/weaver/TypeVariable.java index 2e0409bc9..d67bbd8dc 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/TypeVariable.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/TypeVariable.java @@ -151,9 +151,9 @@ public class TypeVariable { if (superclass != null) { ResolvedType rt = superclass.resolve(world); - // if (!superclass.isTypeVariableReference() && rt.isInterface()) { - // throw new IllegalStateException("Why is the type an interface? " + rt); - // } +// if (!superclass.isTypeVariableReference() && rt.isInterface()) { +// throw new IllegalStateException("Why is the type an interface? " + rt); +// } superclass = rt; } firstbound = getFirstBound().resolve(world); @@ -254,7 +254,9 @@ public class TypeVariable { StringBuffer sb = new StringBuffer(); sb.append(name); sb.append(":"); - sb.append(superclass.getSignature()); + if (superInterfaces.length == 0 || !superclass.getSignature().equals(UnresolvedType.OBJECT.getSignature())) { + sb.append(superclass.getSignature()); + } if (superInterfaces.length != 0) { for (int i = 0; i < superInterfaces.length; i++) { sb.append(":"); @@ -272,8 +274,8 @@ public class TypeVariable { StringBuffer sb = new StringBuffer(); sb.append(name); sb.append(":"); - if (superInterfaces.length == 0) { - sb.append(((ResolvedType) superclass).getSignatureForAttribute()); + if (superInterfaces.length == 0 || !superclass.getSignature().equals(UnresolvedType.OBJECT.getSignature())) { + sb.append(((ReferenceType)superclass).getSignatureForAttribute()); } if (superInterfaces.length != 0) { for (int i = 0; i < superInterfaces.length; i++) { diff --git a/tests/bugs189/486612/Azpect.java b/tests/bugs189/486612/Azpect.java new file mode 100644 index 000000000..e5a1ba3e5 --- /dev/null +++ b/tests/bugs189/486612/Azpect.java @@ -0,0 +1,7 @@ +aspect Azpect { + declare parents: B implements I; + declare parents: D implements I; + before(): staticinitialization(!Azpect){} +} + +interface I {} diff --git a/tests/bugs189/486612/Code.java b/tests/bugs189/486612/Code.java new file mode 100644 index 000000000..089d93244 --- /dev/null +++ b/tests/bugs189/486612/Code.java @@ -0,0 +1,17 @@ +import java.io.*; + +public class Code { + public static void main(String []argv) { + } +} + +class B extends C implements Serializable { +} + +class C {} + +class SomeClass {} +interface SomeInterface {} +interface SomeOtherInterface {} + +class D {} diff --git a/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java b/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java index 9d5206c4b..138787853 100644 --- a/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java @@ -14,6 +14,7 @@ import java.io.File; import junit.framework.Test; +import org.aspectj.apache.bcel.classfile.JavaClass; import org.aspectj.testing.XMLBasedAjcTestCase; /** @@ -21,13 +22,22 @@ import org.aspectj.testing.XMLBasedAjcTestCase; */ public class Ajc189Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + public void testLostBounds() throws Exception { + runTest("lost bounds"); + // This type has I added via declare parents + JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "B"); + assertEquals("LC;Ljava/io/Serializable;LI;",jc.getGenericSignature()); + jc = getClassFrom(ajc.getSandboxDirectory(), "D"); + assertEquals("Ljava/lang/Object;LI;",jc.getGenericSignature()); + } + public void testWhileNPE_486203() throws Exception { runTest("while npe"); } - public void testOverweaving_352389() throws Exception { - runTest("overweaving"); - } +// public void testOverweaving_352389() throws Exception { +// runTest("overweaving"); +// } // --- diff --git a/tests/src/org/aspectj/systemtest/ajc189/ajc189.out.xml b/tests/src/org/aspectj/systemtest/ajc189/ajc189.out.xml new file mode 100644 index 000000000..e69de29bb diff --git a/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml b/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml index d9b2b4226..594f7f11d 100644 --- a/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml +++ b/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml @@ -2,6 +2,11 @@ + + + + + -- cgit v1.2.3 From b54540d9a4843a46d6c2a25f6d2e7470648ef7c7 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Wed, 10 Feb 2016 15:46:53 -0800 Subject: Fix 485583: NullPointerException in org.aspectj.ajdt.internal.compiler.ast.PointcutDeclaration --- .../internal/compiler/ast/PointcutDeclaration.java | 31 +++++++++++++--------- .../compiler/lookup/EclipseSourceType.java | 4 +-- tests/bugs189/485583/Bar.aj | 8 ++++++ tests/bugs189/485583/Foo.aj | 4 +++ .../org/aspectj/systemtest/ajc189/Ajc189Tests.java | 4 +++ tests/src/org/aspectj/systemtest/ajc189/ajc189.xml | 6 +++++ 6 files changed, 42 insertions(+), 15 deletions(-) create mode 100644 tests/bugs189/485583/Bar.aj create mode 100644 tests/bugs189/485583/Foo.aj (limited to 'tests') diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/PointcutDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/PointcutDeclaration.java index 3d9990ad1..087e87d6c 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/PointcutDeclaration.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/PointcutDeclaration.java @@ -26,9 +26,11 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclarat import org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeReference; import org.aspectj.org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; +import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding; import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ClassScope; import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ExtraCompilerModifiers; import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding; +import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding; import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TagBits; import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding; import org.aspectj.org.eclipse.jdt.internal.compiler.parser.Parser; @@ -89,17 +91,7 @@ public class PointcutDeclaration extends AjMethodDeclaration { // } if (Modifier.isAbstract(this.declaredModifiers)) { - if (!(typeDec instanceof AspectDeclaration)) { - // check for @Aspect - if (isAtAspectJ(typeDec)) { - // no need to check abstract class as JDT does that - } else { - typeDec.scope.problemReporter().signalError(sourceStart, sourceEnd, - "The abstract pointcut " + new String(declaredName) + " can only be defined in an aspect"); - ignoreFurtherInvestigation = true; - return; - } - } else if (!Modifier.isAbstract(typeDec.modifiers)) { + if ((typeDec instanceof AspectDeclaration) && !Modifier.isAbstract(typeDec.modifiers)) { typeDec.scope.problemReporter().signalError(sourceStart, sourceEnd, "The abstract pointcut " + new String(declaredName) + " can only be defined in an abstract aspect"); @@ -116,10 +108,9 @@ public class PointcutDeclaration extends AjMethodDeclaration { private boolean isAtAspectJ(TypeDeclaration typeDec) { if (typeDec.annotations == null) return false; - for (int i = 0; i < typeDec.annotations.length; i++) { Annotation annotation = typeDec.annotations[i]; - if ("Lorg/aspectj/lang/annotation/Aspect;".equals(new String(annotation.resolvedType.signature()))) { + if (CharOperation.equals(annotation.resolvedType.signature(),ASPECT_CHARS)) { return true; } } @@ -174,6 +165,8 @@ public class PointcutDeclaration extends AjMethodDeclaration { generateSyntheticPointcutMethod = true; // mangleSelector = false; } + + private static char[] ASPECT_CHARS = "Lorg/aspectj/lang/annotation/Aspect;".toCharArray(); public void resolve(ClassScope upperScope) { // we attempted to resolve annotations below, but that was too early, so we do it again @@ -181,6 +174,18 @@ public class PointcutDeclaration extends AjMethodDeclaration { if (binding != null) { binding.tagBits -= TagBits.AnnotationResolved; resolveAnnotations(scope, this.annotations, this.binding); + + TypeDeclaration typeDec = upperScope.referenceContext; + if (Modifier.isAbstract(this.declaredModifiers)) { + if (!(typeDec instanceof AspectDeclaration)) { + if (!isAtAspectJ(typeDec)) { + typeDec.scope.problemReporter().signalError(sourceStart, sourceEnd, + "The abstract pointcut " + new String(declaredName) + " can only be defined in an aspect"); + ignoreFurtherInvestigation = true; + return; + } + } + } } // for the rest of the resolution process, this method should do nothing, use the entry point below... } diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java index dc82d4aac..174f27215 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java @@ -465,11 +465,11 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate { } if (pointcuts[i].isAbstract()) { if (!this.isAspect()) { - eclipseWorld().showMessage(IMessage.ERROR, "abstract pointcut only allowed in aspect" + pointcuts[i].getName(), + eclipseWorld().showMessage(IMessage.ERROR, "The abstract pointcut " + pointcuts[i].getName()+ " can only be defined in an aspect", pointcuts[i].getSourceLocation(), null); sawError = true; } else if (!binding.isAbstract()) { - eclipseWorld().showMessage(IMessage.ERROR, "abstract pointcut in concrete aspect" + pointcuts[i], + eclipseWorld().showMessage(IMessage.ERROR, "abstract pointcut in concrete aspect: " + pointcuts[i], pointcuts[i].getSourceLocation(), null); sawError = true; } diff --git a/tests/bugs189/485583/Bar.aj b/tests/bugs189/485583/Bar.aj new file mode 100644 index 000000000..aa69e37f0 --- /dev/null +++ b/tests/bugs189/485583/Bar.aj @@ -0,0 +1,8 @@ +//import org.aspectj.lang.annotation.*; +// +//@SuppressLoggerWarning +@org.aspectj.lang.annotation.Aspect +public abstract class Bar { + public abstract pointcut applicationCode(); +} + diff --git a/tests/bugs189/485583/Foo.aj b/tests/bugs189/485583/Foo.aj new file mode 100644 index 000000000..3997385f7 --- /dev/null +++ b/tests/bugs189/485583/Foo.aj @@ -0,0 +1,4 @@ + +public abstract class Foo { + public abstract pointcut deprecatedCode(); +} diff --git a/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java b/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java index 138787853..a3a191a61 100644 --- a/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java @@ -22,6 +22,10 @@ import org.aspectj.testing.XMLBasedAjcTestCase; */ public class Ajc189Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + public void testNPEAtAspectJ() throws Exception { + runTest("NPE at aspectj"); + } + public void testLostBounds() throws Exception { runTest("lost bounds"); // This type has I added via declare parents diff --git a/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml b/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml index 594f7f11d..586ff771e 100644 --- a/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml +++ b/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml @@ -2,6 +2,12 @@ + + + + + + -- cgit v1.2.3 From f4c8433cb046e343b8491d04f0a10bd150924507 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Thu, 18 Feb 2016 12:08:06 -0800 Subject: Fix 433351: Declare parents fails on interfaces on the inpath depending on directory structure --- .../src/org/aspectj/weaver/ReferenceType.java | 3 ++- .../src/org/aspectj/weaver/ResolvedType.java | 10 +++++++- tests/bugs181/433351/Extender.aj | 10 -------- tests/bugs181/433351/InterfaceProj1.java | 7 ------ tests/bugs181/433351/InterfaceProj2.java | 7 ------ tests/bugs189/433351/ClassProj1.java | 8 ++++++ tests/bugs189/433351/ClassProj2.java | 9 +++++++ tests/bugs189/433351/Extender.aj | 10 ++++++++ tests/bugs189/433351/Extender2.aj | 10 ++++++++ tests/bugs189/433351/Extender3.aj | 10 ++++++++ tests/bugs189/433351/InterfaceProj1.java | 7 ++++++ tests/bugs189/433351/InterfaceProj2.java | 7 ++++++ .../org/aspectj/systemtest/ajc181/Ajc181Tests.java | 4 --- tests/src/org/aspectj/systemtest/ajc181/ajc181.xml | 7 ------ .../org/aspectj/systemtest/ajc189/Ajc189Tests.java | 16 ++++++++++++ .../systemtest/ajc189/AllTestsAspectJ189.java | 1 - tests/src/org/aspectj/systemtest/ajc189/ajc189.xml | 29 ++++++++++++++++++++++ weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java | 6 ++++- 18 files changed, 122 insertions(+), 39 deletions(-) delete mode 100644 tests/bugs181/433351/Extender.aj delete mode 100644 tests/bugs181/433351/InterfaceProj1.java delete mode 100644 tests/bugs181/433351/InterfaceProj2.java create mode 100644 tests/bugs189/433351/ClassProj1.java create mode 100644 tests/bugs189/433351/ClassProj2.java create mode 100644 tests/bugs189/433351/Extender.aj create mode 100644 tests/bugs189/433351/Extender2.aj create mode 100644 tests/bugs189/433351/Extender3.aj create mode 100644 tests/bugs189/433351/InterfaceProj1.java create mode 100644 tests/bugs189/433351/InterfaceProj2.java (limited to 'tests') diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java b/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java index 9791b8083..65fdf3a95 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java @@ -1161,6 +1161,7 @@ public class ReferenceType extends ResolvedType { annotations = null; annotationTypes = null; newSuperclass = null; + bits = 0; // clears the hierarchy complete tag (amongst other things) newInterfaces = null; typeVariables = null; parameterizedInterfaces.clear(); @@ -1168,7 +1169,7 @@ public class ReferenceType extends ResolvedType { if (getDelegate() != null) { delegate.ensureConsistent(); } - if (isRawType()) { + if (isParameterizedOrRawType()) { ReferenceType genericType = getGenericType(); if (genericType != null) { genericType.ensureConsistent(); diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/ResolvedType.java b/org.aspectj.matcher/src/org/aspectj/weaver/ResolvedType.java index c053f5119..5985e4b6d 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/ResolvedType.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/ResolvedType.java @@ -50,7 +50,7 @@ public abstract class ResolvedType extends UnresolvedType implements AnnotatedEl protected World world; - private int bits; + protected int bits; private static int AnnotationBitsInitialized = 0x0001; private static int AnnotationMarkedInherited = 0x0002; @@ -2803,10 +2803,18 @@ public abstract class ResolvedType extends UnresolvedType implements AnnotatedEl } public void tagAsTypeHierarchyComplete() { + if (isParameterizedOrRawType()) { + ReferenceType genericType = this.getGenericType(); + genericType.tagAsTypeHierarchyComplete(); + return; + } bits |= TypeHierarchyCompleteBit; } public boolean isTypeHierarchyComplete() { + if (isParameterizedOrRawType()) { + return this.getGenericType().isTypeHierarchyComplete(); + } return (bits & TypeHierarchyCompleteBit) != 0; } diff --git a/tests/bugs181/433351/Extender.aj b/tests/bugs181/433351/Extender.aj deleted file mode 100644 index 433275660..000000000 --- a/tests/bugs181/433351/Extender.aj +++ /dev/null @@ -1,10 +0,0 @@ -package test.extender; -import test.*; - -public aspect Extender { - - declare parents: InterfaceProj1 extends InterfaceProj2; - -// declare parents: test.ClassProj1 extends ClassProj2; - -} diff --git a/tests/bugs181/433351/InterfaceProj1.java b/tests/bugs181/433351/InterfaceProj1.java deleted file mode 100644 index 7d90bef54..000000000 --- a/tests/bugs181/433351/InterfaceProj1.java +++ /dev/null @@ -1,7 +0,0 @@ -package test; - -public interface InterfaceProj1 { - - public abstract int aMethod(); - -} diff --git a/tests/bugs181/433351/InterfaceProj2.java b/tests/bugs181/433351/InterfaceProj2.java deleted file mode 100644 index b6846f54c..000000000 --- a/tests/bugs181/433351/InterfaceProj2.java +++ /dev/null @@ -1,7 +0,0 @@ -package test.extender; - -public interface InterfaceProj2 { - - public abstract int bMethod(); - -} \ No newline at end of file diff --git a/tests/bugs189/433351/ClassProj1.java b/tests/bugs189/433351/ClassProj1.java new file mode 100644 index 000000000..ce06e88ab --- /dev/null +++ b/tests/bugs189/433351/ClassProj1.java @@ -0,0 +1,8 @@ +package test; + +public abstract class ClassProj1 implements InterfaceProj1 { + + public int aMethod() { + return 1; + } +} diff --git a/tests/bugs189/433351/ClassProj2.java b/tests/bugs189/433351/ClassProj2.java new file mode 100644 index 000000000..2aca8b08e --- /dev/null +++ b/tests/bugs189/433351/ClassProj2.java @@ -0,0 +1,9 @@ +package test.extender; + +public abstract class ClassProj2 implements InterfaceProj2 { + + public int bMethod() { + return 2; + } + +} diff --git a/tests/bugs189/433351/Extender.aj b/tests/bugs189/433351/Extender.aj new file mode 100644 index 000000000..433275660 --- /dev/null +++ b/tests/bugs189/433351/Extender.aj @@ -0,0 +1,10 @@ +package test.extender; +import test.*; + +public aspect Extender { + + declare parents: InterfaceProj1 extends InterfaceProj2; + +// declare parents: test.ClassProj1 extends ClassProj2; + +} diff --git a/tests/bugs189/433351/Extender2.aj b/tests/bugs189/433351/Extender2.aj new file mode 100644 index 000000000..351c70eeb --- /dev/null +++ b/tests/bugs189/433351/Extender2.aj @@ -0,0 +1,10 @@ +package test.extender; +import test.*; + +public aspect Extender2 { + + declare parents: InterfaceProj1 extends java.io.Serializable; + +// declare parents: test.ClassProj1 extends ClassProj2; + +} diff --git a/tests/bugs189/433351/Extender3.aj b/tests/bugs189/433351/Extender3.aj new file mode 100644 index 000000000..9fcda9e52 --- /dev/null +++ b/tests/bugs189/433351/Extender3.aj @@ -0,0 +1,10 @@ +package test.extender; +import test.*; + +public aspect Extender3 { + + declare parents: InterfaceProj1 extends InterfaceProj2; + + declare parents: test.ClassProj1 extends ClassProj2; + +} diff --git a/tests/bugs189/433351/InterfaceProj1.java b/tests/bugs189/433351/InterfaceProj1.java new file mode 100644 index 000000000..7d90bef54 --- /dev/null +++ b/tests/bugs189/433351/InterfaceProj1.java @@ -0,0 +1,7 @@ +package test; + +public interface InterfaceProj1 { + + public abstract int aMethod(); + +} diff --git a/tests/bugs189/433351/InterfaceProj2.java b/tests/bugs189/433351/InterfaceProj2.java new file mode 100644 index 000000000..b6846f54c --- /dev/null +++ b/tests/bugs189/433351/InterfaceProj2.java @@ -0,0 +1,7 @@ +package test.extender; + +public interface InterfaceProj2 { + + public abstract int bMethod(); + +} \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java b/tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java index a15231dcf..3aa41837e 100644 --- a/tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java @@ -21,10 +21,6 @@ import org.aspectj.testing.XMLBasedAjcTestCase; * @author Andy Clement */ public class Ajc181Tests extends org.aspectj.testing.XMLBasedAjcTestCase { - - public void testJarWeaving_433351() { - runTest("jar weaving"); - } public void testParameterNamesAttribute_436531() { runTest("parameter names attribute"); diff --git a/tests/src/org/aspectj/systemtest/ajc181/ajc181.xml b/tests/src/org/aspectj/systemtest/ajc181/ajc181.xml index 314aaf712..1a8b1acfc 100644 --- a/tests/src/org/aspectj/systemtest/ajc181/ajc181.xml +++ b/tests/src/org/aspectj/systemtest/ajc181/ajc181.xml @@ -2,13 +2,6 @@ - - - - - - - diff --git a/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java b/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java index a3a191a61..456c4a41f 100644 --- a/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc189/Ajc189Tests.java @@ -22,6 +22,22 @@ import org.aspectj.testing.XMLBasedAjcTestCase; */ public class Ajc189Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + public void testJarWeaving_433351() { + runTest("jar weaving"); + } + + public void testJarWeaving_433351_4() { + runTest("jar weaving 4"); + } + + public void testJarWeaving_433351_3() { + runTest("jar weaving 3"); + } + + public void testJarWeaving_433351_2() { + runTest("jar weaving 2"); + } + public void testNPEAtAspectJ() throws Exception { runTest("NPE at aspectj"); } diff --git a/tests/src/org/aspectj/systemtest/ajc189/AllTestsAspectJ189.java b/tests/src/org/aspectj/systemtest/ajc189/AllTestsAspectJ189.java index 0ccf75cf2..546ef02de 100644 --- a/tests/src/org/aspectj/systemtest/ajc189/AllTestsAspectJ189.java +++ b/tests/src/org/aspectj/systemtest/ajc189/AllTestsAspectJ189.java @@ -12,7 +12,6 @@ package org.aspectj.systemtest.ajc189; import junit.framework.Test; import junit.framework.TestSuite; -import org.aspectj.systemtest.apt.AptTests; public class AllTestsAspectJ189 { diff --git a/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml b/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml index 586ff771e..8693c1e24 100644 --- a/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml +++ b/tests/src/org/aspectj/systemtest/ajc189/ajc189.xml @@ -2,6 +2,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java b/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java index 5e524549e..e3e97517a 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java @@ -1323,7 +1323,11 @@ public class BcelWeaver { } ContextToken tok = CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.PROCESSING_DECLARE_PARENTS, resolvedTypeToWeave.getName()); - weaveParentTypeMungers(resolvedTypeToWeave); + // If A was processed before B (and was declared 'class A implements B') then there is no need to complete B again, it + // will have been done whilst processing A. + if (!resolvedTypeToWeave.isTypeHierarchyComplete()) { + weaveParentTypeMungers(resolvedTypeToWeave); + } CompilationAndWeavingContext.leavingPhase(tok); typesForWeaving.remove(typeToWeave); resolvedTypeToWeave.tagAsTypeHierarchyComplete(); -- cgit v1.2.3 From 9eae797dd9c96826c7ab23f1ed9d3c26552c5c88 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Tue, 29 Mar 2016 10:01:01 -0700 Subject: Fix 490315 - InvokeDynamic.java:126 there is no classname for invokedynamic --- .../src/org/aspectj/ajdt/ajc/messages.properties | 2 +- .../internal/core/builder/AsmHierarchyBuilder.java | 7 +++- tests/bugs1810/490315/FailingAspect.java | 27 +++++++++++++ tests/bugs1810/490315/SomeAnno.java | 4 ++ tests/bugs1810/490315/SomeContext.java | 13 +++++++ tests/bugs1810/490315/SomeCriteria.java | 7 ++++ tests/bugs1810/490315/SomeDTO.java | 10 +++++ tests/bugs1810/490315/SomeEnum.java | 5 +++ tests/bugs1810/490315/SomePiece.java | 30 +++++++++++++++ tests/bugs1810/490315/SomePropertyDTO.java | 17 +++++++++ tests/bugs1810/490315/SomeService.java | 8 ++++ tests/bugs1810/490315/SomeServiceImpl.java | 16 ++++++++ tests/src/org/aspectj/systemtest/AllTests18.java | 2 + .../aspectj/systemtest/ajc1810/Ajc1810Tests.java | 44 ++++++++++++++++++++++ .../systemtest/ajc1810/AllTestsAspectJ1810.java | 25 ++++++++++++ .../src/org/aspectj/systemtest/ajc1810/ajc1810.xml | 9 +++++ .../weaver/bcel/BcelAccessForInlineMunger.java | 5 +++ 17 files changed, 229 insertions(+), 2 deletions(-) create mode 100755 tests/bugs1810/490315/FailingAspect.java create mode 100755 tests/bugs1810/490315/SomeAnno.java create mode 100755 tests/bugs1810/490315/SomeContext.java create mode 100755 tests/bugs1810/490315/SomeCriteria.java create mode 100755 tests/bugs1810/490315/SomeDTO.java create mode 100755 tests/bugs1810/490315/SomeEnum.java create mode 100755 tests/bugs1810/490315/SomePiece.java create mode 100755 tests/bugs1810/490315/SomePropertyDTO.java create mode 100755 tests/bugs1810/490315/SomeService.java create mode 100755 tests/bugs1810/490315/SomeServiceImpl.java create mode 100644 tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java create mode 100644 tests/src/org/aspectj/systemtest/ajc1810/AllTestsAspectJ1810.java create mode 100644 tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml (limited to 'tests') diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties index 9218ada88..185ab046c 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties @@ -4,7 +4,7 @@ The -Xlintfile:lint.properties allows fine-grained control. In tools.jar, see org/aspectj/weaver/XlintDefault.properties for the default behavior and a template to copy. ### AspectJ-specific messages -compiler.name = AspectJ Compiler 1.8.9 +compiler.name = AspectJ Compiler 1.8.10 compiler.version = Eclipse Compiler Mars.2 #A7BBA8B1, 3.12 compiler.copyright = diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmHierarchyBuilder.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmHierarchyBuilder.java index dd38f7750..7da62b87c 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmHierarchyBuilder.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmHierarchyBuilder.java @@ -485,7 +485,12 @@ public class AsmHierarchyBuilder extends ASTVisitor { } } - ((IProgramElement) stack.peek()).addChild(peNode); + IProgramElement ipe = (IProgramElement)stack.peek(); + if (ipe!=null) { + // With AspectJ 1.8.9 the type structure must be slightly different as the guard + // is required (the null is due to a default constructor). + ((IProgramElement) stack.peek()).addChild(peNode); + } stack.push(peNode); return true; } diff --git a/tests/bugs1810/490315/FailingAspect.java b/tests/bugs1810/490315/FailingAspect.java new file mode 100755 index 000000000..4da191447 --- /dev/null +++ b/tests/bugs1810/490315/FailingAspect.java @@ -0,0 +1,27 @@ +package test; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; + +@Aspect +public class FailingAspect { + + SomeContext authenticationContext; + + @SuppressWarnings("unchecked") + @Around("execution(* test..SomeServiceImpl.someMethod(test.SomeCriteria))" + + "&& @annotation(test.SomeAnno)") + public SomePiece> interceptSomeMethod(ProceedingJoinPoint pjp) throws Throwable { + SomePiece> piece = (SomePiece>) pjp.proceed(); + List filteredResult = piece.getData().stream().filter(item -> + authenticationContext.getPermissionDetails().checkAccess( + item.getTag(), SomeEnum.R)).collect(Collectors.toList()); + return new SomePiece<>(filteredResult, piece.isLast()); + } + +} diff --git a/tests/bugs1810/490315/SomeAnno.java b/tests/bugs1810/490315/SomeAnno.java new file mode 100755 index 000000000..112d3be17 --- /dev/null +++ b/tests/bugs1810/490315/SomeAnno.java @@ -0,0 +1,4 @@ +package test; + +public @interface SomeAnno { +} diff --git a/tests/bugs1810/490315/SomeContext.java b/tests/bugs1810/490315/SomeContext.java new file mode 100755 index 000000000..4eeb7a66a --- /dev/null +++ b/tests/bugs1810/490315/SomeContext.java @@ -0,0 +1,13 @@ +package test; + +public class SomeContext +{ + public SomeContext getPermissionDetails() + { + return this; + } + + public boolean checkAccess(String tag, SomeEnum accessType) { + return false; + } +} diff --git a/tests/bugs1810/490315/SomeCriteria.java b/tests/bugs1810/490315/SomeCriteria.java new file mode 100755 index 000000000..0a0a90090 --- /dev/null +++ b/tests/bugs1810/490315/SomeCriteria.java @@ -0,0 +1,7 @@ +package test; + +/** + */ +public final class SomeCriteria { + +} diff --git a/tests/bugs1810/490315/SomeDTO.java b/tests/bugs1810/490315/SomeDTO.java new file mode 100755 index 000000000..d7bc67f30 --- /dev/null +++ b/tests/bugs1810/490315/SomeDTO.java @@ -0,0 +1,10 @@ +package test; + +import java.io.Serializable; + +public class SomeDTO implements Serializable { + + public String getTag() { + return "tag"; + } +} diff --git a/tests/bugs1810/490315/SomeEnum.java b/tests/bugs1810/490315/SomeEnum.java new file mode 100755 index 000000000..1ec35b7b6 --- /dev/null +++ b/tests/bugs1810/490315/SomeEnum.java @@ -0,0 +1,5 @@ +package test; + +public enum SomeEnum { + R; +} diff --git a/tests/bugs1810/490315/SomePiece.java b/tests/bugs1810/490315/SomePiece.java new file mode 100755 index 000000000..d12548b3d --- /dev/null +++ b/tests/bugs1810/490315/SomePiece.java @@ -0,0 +1,30 @@ +package test; + +public class SomePiece { + + private T data; + private boolean last; + private Long totalCount; + + public SomePiece(T data, boolean last) { + this.data = data; + this.last = last; + } + + public T getData() { + return data; + } + + public boolean isLast() { + return last; + } + + public Long getTotalCount() { + return totalCount; + } + + public void setTotalCount(Long totalCount) { + this.totalCount = totalCount; + } + +} diff --git a/tests/bugs1810/490315/SomePropertyDTO.java b/tests/bugs1810/490315/SomePropertyDTO.java new file mode 100755 index 000000000..0f2a835fc --- /dev/null +++ b/tests/bugs1810/490315/SomePropertyDTO.java @@ -0,0 +1,17 @@ +package test; + +import java.io.Serializable; + +public class SomePropertyDTO implements Serializable, Comparable { + + /* (non-Javadoc) + * @see java.lang.Comparable#compareTo(java.lang.Object) + */ + @Override + public int compareTo(SomePropertyDTO o) + { + // TODO Auto-generated method stub + return 0; + } + +} diff --git a/tests/bugs1810/490315/SomeService.java b/tests/bugs1810/490315/SomeService.java new file mode 100755 index 000000000..b24dea2e9 --- /dev/null +++ b/tests/bugs1810/490315/SomeService.java @@ -0,0 +1,8 @@ +package test; + +import java.util.Collection; + +public interface SomeService { + + SomePiece> someMethod(SomeCriteria criteria); +} \ No newline at end of file diff --git a/tests/bugs1810/490315/SomeServiceImpl.java b/tests/bugs1810/490315/SomeServiceImpl.java new file mode 100755 index 000000000..98a9978ad --- /dev/null +++ b/tests/bugs1810/490315/SomeServiceImpl.java @@ -0,0 +1,16 @@ +package test; + +import java.util.Collection; + +/** + */ +public class SomeServiceImpl implements SomeService { + + @Override + @SomeAnno + public SomePiece> someMethod(SomeCriteria criteria) { + System.out.println("stuff"); + + return null; + } +} \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/AllTests18.java b/tests/src/org/aspectj/systemtest/AllTests18.java index a5382792b..2eadcb823 100644 --- a/tests/src/org/aspectj/systemtest/AllTests18.java +++ b/tests/src/org/aspectj/systemtest/AllTests18.java @@ -12,6 +12,7 @@ package org.aspectj.systemtest; import org.aspectj.systemtest.ajc180.AllTestsAspectJ180; import org.aspectj.systemtest.ajc181.AllTestsAspectJ181; +import org.aspectj.systemtest.ajc1810.AllTestsAspectJ1810; import org.aspectj.systemtest.ajc182.AllTestsAspectJ182; import org.aspectj.systemtest.ajc183.AllTestsAspectJ183; import org.aspectj.systemtest.ajc184.AllTestsAspectJ184; @@ -29,6 +30,7 @@ public class AllTests18 { public static Test suite() { TestSuite suite = new TestSuite("AspectJ System Test Suite - 1.8"); // $JUnit-BEGIN$ + suite.addTest(AllTestsAspectJ1810.suite()); suite.addTest(AllTestsAspectJ189.suite()); suite.addTest(AllTestsAspectJ188.suite()); suite.addTest(AllTestsAspectJ187.suite()); diff --git a/tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java b/tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java new file mode 100644 index 000000000..2cdf148db --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright (c) 2016 Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andy Clement - initial API and implementation + *******************************************************************************/ +package org.aspectj.systemtest.ajc1810; + +import java.io.File; + +import junit.framework.Test; + +import org.aspectj.apache.bcel.classfile.JavaClass; +import org.aspectj.testing.XMLBasedAjcTestCase; + +/** + * @author Andy Clement + */ +public class Ajc1810Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public void testInvokeDynamic_490315() { + runTest("indy"); + } + +// public void testOverweaving_352389() throws Exception { +// runTest("overweaving"); +// } + + // --- + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(Ajc1810Tests.class); + } + + @Override + protected File getSpecFile() { + return getClassResource("ajc1810.xml"); + } + +} diff --git a/tests/src/org/aspectj/systemtest/ajc1810/AllTestsAspectJ1810.java b/tests/src/org/aspectj/systemtest/ajc1810/AllTestsAspectJ1810.java new file mode 100644 index 000000000..b4fe6a8f3 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc1810/AllTestsAspectJ1810.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2016 Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andy Clement - initial API and implementation + *******************************************************************************/ +package org.aspectj.systemtest.ajc1810; + +import junit.framework.Test; +import junit.framework.TestSuite; + +public class AllTestsAspectJ1810 { + + public static Test suite() { + TestSuite suite = new TestSuite("AspectJ 1.8.10 tests"); + // $JUnit-BEGIN$ + suite.addTest(Ajc1810Tests.suite()); + // $JUnit-END$ + return suite; + } +} diff --git a/tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml b/tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml new file mode 100644 index 000000000..be1c3d5f4 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelAccessForInlineMunger.java b/weaver/src/org/aspectj/weaver/bcel/BcelAccessForInlineMunger.java index 9f84596f0..b81f7ffb1 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelAccessForInlineMunger.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelAccessForInlineMunger.java @@ -27,6 +27,7 @@ import org.aspectj.apache.bcel.generic.InstructionConstants; import org.aspectj.apache.bcel.generic.InstructionFactory; import org.aspectj.apache.bcel.generic.InstructionHandle; import org.aspectj.apache.bcel.generic.InstructionList; +import org.aspectj.apache.bcel.generic.InvokeDynamic; import org.aspectj.apache.bcel.generic.InvokeInstruction; import org.aspectj.apache.bcel.generic.Type; import org.aspectj.weaver.AjAttribute; @@ -138,6 +139,10 @@ public class BcelAccessForInlineMunger extends BcelTypeMunger { // open-up method call if ((inst instanceof InvokeInstruction)) { InvokeInstruction invoke = (InvokeInstruction) inst; + if (invoke instanceof InvokeDynamic) { + realizedCannotInline = true; + break; + } ResolvedType callee = aspectGen.getWorld().resolve(UnresolvedType.forName(invoke.getClassName(cpg))); // look in the whole method list and not just declared for super calls and alike -- cgit v1.2.3 From d8ccdb732982e855a9d1a17c844a9d85a3a82866 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Thu, 12 May 2016 15:27:22 -0700 Subject: Fix 493554 - Missing InnerClasses attribute for nested interfaces created by AspectJ --- .../compiler/lookup/HelperInterfaceBinding.java | 60 +++++------- tests/bugs1810/493554/Cmd.java | 10 ++ tests/bugs1810/493554/Cmd.kt | 9 ++ tests/bugs1810/493554/Code.java | 5 + tests/bugs1810/493554/Dep.java | 14 +++ tests/bugs1810/493554/FooAspect.aj | 17 ++++ tests/bugs1810/493554/FooAspect.java | 25 +++++ .../aspectj/systemtest/ajc1810/Ajc1810Tests.java | 103 +++++++++++++++++++++ .../src/org/aspectj/systemtest/ajc1810/ajc1810.xml | 6 ++ 9 files changed, 214 insertions(+), 35 deletions(-) create mode 100644 tests/bugs1810/493554/Cmd.java create mode 100644 tests/bugs1810/493554/Cmd.kt create mode 100644 tests/bugs1810/493554/Code.java create mode 100644 tests/bugs1810/493554/Dep.java create mode 100644 tests/bugs1810/493554/FooAspect.aj create mode 100644 tests/bugs1810/493554/FooAspect.java (limited to 'tests') diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/HelperInterfaceBinding.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/HelperInterfaceBinding.java index 4abbc51ba..a9c4bd532 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/HelperInterfaceBinding.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/HelperInterfaceBinding.java @@ -9,12 +9,9 @@ * Contributors: * PARC initial implementation * ******************************************************************/ - - - package org.aspectj.ajdt.internal.compiler.lookup; +package org.aspectj.ajdt.internal.compiler.lookup; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import org.aspectj.org.eclipse.jdt.internal.compiler.ClassFile; @@ -33,28 +30,26 @@ import org.aspectj.weaver.UnresolvedType; public class HelperInterfaceBinding extends SourceTypeBinding { private UnresolvedType typeX; SourceTypeBinding enclosingType; - List methods = new ArrayList(); - + List methods = new ArrayList(); + public HelperInterfaceBinding(SourceTypeBinding enclosingType, UnresolvedType typeX) { super(); this.fPackage = enclosingType.fPackage; - //this.fileName = scope.referenceCompilationUnit().getFileName(); - this.modifiers = ClassFileConstants.AccPublic | ClassFileConstants.AccInterface | ClassFileConstants.AccAbstract; + // this.fileName = scope.referenceCompilationUnit().getFileName(); + this.modifiers = ClassFileConstants.AccPublic | ClassFileConstants.AccInterface + | ClassFileConstants.AccAbstract; this.sourceName = enclosingType.scope.referenceContext.name; this.enclosingType = enclosingType; this.typeX = typeX; this.typeVariables = Binding.NO_TYPE_VARIABLES; - this.scope =enclosingType.scope; + this.scope = enclosingType.scope; this.superInterfaces = new ReferenceBinding[0]; } - public HelperInterfaceBinding( - char[][] compoundName, - PackageBinding fPackage, - ClassScope scope) { + public HelperInterfaceBinding(char[][] compoundName, PackageBinding fPackage, ClassScope scope) { super(compoundName, fPackage, scope); } - + public char[] getFileName() { return enclosingType.getFileName(); } @@ -62,51 +57,46 @@ public class HelperInterfaceBinding extends SourceTypeBinding { public UnresolvedType getTypeX() { return typeX; } - - public void addMethod(EclipseFactory world , ResolvedMember member) { + + public void addMethod(EclipseFactory world, ResolvedMember member) { MethodBinding binding = world.makeMethodBinding(member); this.methods.add(binding); } - - public FieldBinding[] fields() { return new FieldBinding[0]; } - - public MethodBinding[] methods() { return new MethodBinding[0]; } - + + public FieldBinding[] fields() { + return new FieldBinding[0]; + } + + public MethodBinding[] methods() { + return new MethodBinding[0]; + } public char[] constantPoolName() { String sig = typeX.getSignature(); - return sig.substring(1, sig.length()-1).toCharArray(); + return sig.substring(1, sig.length() - 1).toCharArray(); } public void generateClass(CompilationResult result, ClassFile enclosingClassFile) { ClassFile classFile = new ClassFile(this); classFile.initialize(this, enclosingClassFile, false); - classFile.recordInnerClasses(this); - - //classFile.addFieldInfos(); +// classFile.recordInnerClasses(this); + // classFile.addFieldInfos(); classFile.contents[classFile.contentsOffset++] = (byte) 0; classFile.contents[classFile.contentsOffset++] = (byte) 0; - classFile.setForMethodInfos(); - for (Iterator i = methods.iterator(); i.hasNext(); ) { - MethodBinding b = (MethodBinding)i.next(); + for (MethodBinding b: methods) { generateMethod(classFile, b); } - classFile.addAttributes(); - result.record(this.constantPoolName(), classFile); } - - + private void generateMethod(ClassFile classFile, MethodBinding binding) { classFile.generateMethodInfoHeader(binding); int methodAttributeOffset = classFile.contentsOffset; int attributeNumber = classFile.generateMethodInfoAttributes(binding); - classFile.completeMethodInfo(binding,methodAttributeOffset, attributeNumber); + classFile.completeMethodInfo(binding, methodAttributeOffset, attributeNumber); } - - public ReferenceBinding[] superInterfaces() { return new ReferenceBinding[0]; diff --git a/tests/bugs1810/493554/Cmd.java b/tests/bugs1810/493554/Cmd.java new file mode 100644 index 000000000..8954d08af --- /dev/null +++ b/tests/bugs1810/493554/Cmd.java @@ -0,0 +1,10 @@ +package example.kusedep; + +import example.dep.Dep; + +public class Cmd { + public static void main(String[] args) { + Dep dep = new Dep(); + System.out.println(dep); + } +} diff --git a/tests/bugs1810/493554/Cmd.kt b/tests/bugs1810/493554/Cmd.kt new file mode 100644 index 000000000..a9a0238eb --- /dev/null +++ b/tests/bugs1810/493554/Cmd.kt @@ -0,0 +1,9 @@ +package example.kusedep; + +import example.dep.Dep; + +fun main(args: Array) { + val dep = Dep() + println(dep) + System.exit(0) +} diff --git a/tests/bugs1810/493554/Code.java b/tests/bugs1810/493554/Code.java new file mode 100644 index 000000000..16a6a642b --- /dev/null +++ b/tests/bugs1810/493554/Code.java @@ -0,0 +1,5 @@ +public class Code { + public static void main(String []argv) { + new Runnable() { public void run() {}}; + } +} diff --git a/tests/bugs1810/493554/Dep.java b/tests/bugs1810/493554/Dep.java new file mode 100644 index 000000000..8ed5c1500 --- /dev/null +++ b/tests/bugs1810/493554/Dep.java @@ -0,0 +1,14 @@ +package example.dep; + +public class Dep { + private int a, b, c; + + public Dep() { + a = 5; + } + + public String toString() { + + return "Dep"; + } +} diff --git a/tests/bugs1810/493554/FooAspect.aj b/tests/bugs1810/493554/FooAspect.aj new file mode 100644 index 000000000..4ad4c22cc --- /dev/null +++ b/tests/bugs1810/493554/FooAspect.aj @@ -0,0 +1,17 @@ +package example.aspect; + +import example.dep.Dep; + +public aspect FooAspect pertarget(setFieldValue(Dep)) { + + // interface ajcMightHaveAspect { } + + pointcut setFieldValue(Dep dep) : + set(private * Dep.*) && target(dep); + + void around(Dep dep) : setFieldValue(dep) { +System.out.println("advised"); + proceed(dep); + } + +} diff --git a/tests/bugs1810/493554/FooAspect.java b/tests/bugs1810/493554/FooAspect.java new file mode 100644 index 000000000..87406db94 --- /dev/null +++ b/tests/bugs1810/493554/FooAspect.java @@ -0,0 +1,25 @@ + +package example.aspect; + +import org.aspectj.lang.*; +import org.aspectj.lang.annotation.*; + +import example.dep.Dep; + +@Aspect("pertarget(setFieldValue(example.dep.Dep))") +public class FooAspect { + + // interface ajcMightHaveAspect { } + + @Pointcut("set(private * example.dep.Dep.*) && target(dep)") + public void setFieldValue(Dep dep) {} + //pointcut setFieldValue(Dep dep) : set(private * Dep.*) && target(dep); + + @Around("setFieldValue(dep)") + public void foo(Dep dep, ProceedingJoinPoint pjp) { + //void around(Dep dep) : setFieldValue(dep) { +System.out.println("advised"); + pjp.proceed(new Object[]{dep}); + } + +} diff --git a/tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java b/tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java index 2cdf148db..cff7a3b7b 100644 --- a/tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java @@ -14,6 +14,14 @@ import java.io.File; import junit.framework.Test; +import org.aspectj.apache.bcel.Constants; +import org.aspectj.apache.bcel.classfile.Attribute; +import org.aspectj.apache.bcel.classfile.Constant; +import org.aspectj.apache.bcel.classfile.ConstantClass; +import org.aspectj.apache.bcel.classfile.ConstantPool; +import org.aspectj.apache.bcel.classfile.ConstantUtf8; +import org.aspectj.apache.bcel.classfile.InnerClass; +import org.aspectj.apache.bcel.classfile.InnerClasses; import org.aspectj.apache.bcel.classfile.JavaClass; import org.aspectj.testing.XMLBasedAjcTestCase; @@ -25,6 +33,101 @@ public class Ajc1810Tests extends org.aspectj.testing.XMLBasedAjcTestCase { public void testInvokeDynamic_490315() { runTest("indy"); } + + // http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.6 + public void testInnerClassesAttributeStructure_493554() throws Exception { + runTest("pertarget"); + + // Testcode commented out below is for full analysis of the inner class attribute but under + // 493554 we are going to remove that attribute for this class + JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "example/aspect/FooAspect$ajcMightHaveAspect"); + assertNotNull(jc); + assertEquals(Constants.ACC_PUBLIC | Constants.ACC_INTERFACE | Constants.ACC_ABSTRACT,jc.getModifiers()); + Attribute[] attributes = jc.getAttributes(); + for (Attribute attribute: attributes) { + if (attribute.getName().equals("InnerClasses")) { + fail("Did not expect to find InnerClasses attribute"); + } + } + +// // Is InnerClasses attribute well formed for the pertarget interface? +// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "example/aspect/FooAspect$ajcMightHaveAspect"); +// assertNotNull(jc); +// assertEquals(Constants.ACC_PUBLIC | Constants.ACC_INTERFACE | Constants.ACC_ABSTRACT,jc.getModifiers()); +// Attribute attr = getAttributeStartsWith(jc.getAttributes(), "InnerClasses"); +// assertNotNull(attr); +// InnerClasses innerClasses = (InnerClasses)attr; +// InnerClass[] innerClassArray = innerClasses.getInnerClasses(); +// assertEquals(1,innerClassArray.length); +// InnerClass innerClass = innerClassArray[0]; +// ConstantPool cp = jc.getConstantPool(); +// +// // The value of the inner_class_info_index item must be a valid index into the +// // constant_pool table. The constant_pool entry at that index must be a CONSTANT_Class_info +// // structure representing C. +// int innerClassIndex = innerClass.getInnerClassIndex(); +// ConstantClass cc = (ConstantClass)cp.getConstant(innerClassIndex); +// ConstantUtf8 utf8 = cp.getConstantUtf8(cc.getNameIndex()); +// assertEquals("example/aspect/FooAspect$ajcMightHaveAspect",utf8.getStringValue()); +// +// // The remaining items in the classes array entry give information about C. +// // The value of the outer_class_info_index item must be a valid index into the +// // constant_pool table, and the entry at that index must be a CONSTANT_Class_info +// // structure representing the class or interface of which C is a member. +// int outerClassIndex = innerClass.getOuterClassIndex(); +// cc = (ConstantClass)cp.getConstant(outerClassIndex); +// utf8 = cp.getConstantUtf8(cc.getNameIndex()); +// assertEquals("example/aspect/FooAspect",utf8.getStringValue()); +// +// // The value of the inner_name_index item must be a valid index into the constant_pool table, +// // and the entry at that index must be a CONSTANT_Utf8_info structure (§4.4.7) that represents +// // the original simple name of C, as given in the source code from which this class file was compiled. +// int innerNameIndex = innerClass.getInnerNameIndex(); +// utf8 = cp.getConstantUtf8(innerNameIndex); +// assertEquals("ajcMightHaveAspect",utf8.getStringValue()); +// +// int innerAccessFlags = innerClass.getInnerAccessFlags(); +// assertEquals(Constants.ACC_PUBLIC | Constants.ACC_ABSTRACT | Constants.ACC_INTERFACE | Constants.ACC_STATIC,innerAccessFlags); +// +// // Is InnerClasses attribute well formed for the containing type? +// jc = getClassFrom(ajc.getSandboxDirectory(), "example/aspect/FooAspect"); +// assertNotNull(jc); +// attr = getAttributeStartsWith(jc.getAttributes(), "InnerClasses"); +// assertNotNull(attr); +// innerClasses = (InnerClasses)attr; +// innerClassArray = innerClasses.getInnerClasses(); +// assertEquals(1,innerClassArray.length); +// innerClass = innerClassArray[0]; +// cp = jc.getConstantPool(); +// System.out.println(innerClass); +// +// // inner class name +// innerClassIndex = innerClass.getInnerClassIndex(); +// cc = (ConstantClass)cp.getConstant(innerClassIndex); +// utf8 = cp.getConstantUtf8(cc.getNameIndex()); +// assertEquals("example/aspect/FooAspect$ajcMightHaveAspect",utf8.getStringValue()); +// +// // outer class name +// outerClassIndex = innerClass.getOuterClassIndex(); +// cc = (ConstantClass)cp.getConstant(outerClassIndex); +// utf8 = cp.getConstantUtf8(cc.getNameIndex()); +// assertEquals("example/aspect/FooAspect",utf8.getStringValue()); +// +// // Simple name +// innerNameIndex = innerClass.getInnerNameIndex(); +// utf8 = cp.getConstantUtf8(innerNameIndex); +// assertEquals("ajcMightHaveAspect",utf8.getStringValue()); +// +// // inner modifiers +// innerAccessFlags = innerClass.getInnerAccessFlags(); +// assertEquals(Constants.ACC_ABSTRACT | Constants.ACC_INTERFACE | Constants.ACC_STATIC,innerAccessFlags); +// +// // Reflection work getDeclaredClasses? +// +// // What about other interfaces? + } + + // public void testOverweaving_352389() throws Exception { // runTest("overweaving"); diff --git a/tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml b/tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml index be1c3d5f4..dd4237d22 100644 --- a/tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml +++ b/tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml @@ -6,4 +6,10 @@ + + + + + + -- cgit v1.2.3