public final class com.google.gson.Gson
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.gson.Gson
  super_class: java.lang.Object
{
  static final boolean DEFAULT_JSON_NON_EXECUTABLE;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final boolean DEFAULT_LENIENT;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final boolean DEFAULT_PRETTY_PRINT;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final boolean DEFAULT_ESCAPE_HTML;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final boolean DEFAULT_SERIALIZE_NULLS;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final boolean DEFAULT_COMPLEX_MAP_KEYS;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final boolean DEFAULT_SPECIALIZE_FLOAT_VALUES;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final com.google.gson.reflect.TypeToken<?> NULL_KEY_SURROGATE;
    descriptor: Lcom/google/gson/reflect/TypeToken;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lcom/google/gson/reflect/TypeToken<*>;

  private static final java.lang.String JSON_NON_EXECUTABLE_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ")]}'\n"

  private final java.lang.ThreadLocal<java.util.Map<com.google.gson.reflect.TypeToken<?>, com.google.gson.Gson$FutureTypeAdapter<?>>> calls;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ljava/util/Map<Lcom/google/gson/reflect/TypeToken<*>;Lcom/google/gson/Gson$FutureTypeAdapter<*>;>;>;

  private final java.util.Map<com.google.gson.reflect.TypeToken<?>, com.google.gson.TypeAdapter<?>> typeTokenCache;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/google/gson/reflect/TypeToken<*>;Lcom/google/gson/TypeAdapter<*>;>;

  private final com.google.gson.internal.ConstructorConstructor constructorConstructor;
    descriptor: Lcom/google/gson/internal/ConstructorConstructor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory jsonAdapterFactory;
    descriptor: Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final java.util.List<com.google.gson.TypeAdapterFactory> factories;
    descriptor: Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;

  final com.google.gson.internal.Excluder excluder;
    descriptor: Lcom/google/gson/internal/Excluder;
    flags: (0x0010) ACC_FINAL

  final com.google.gson.FieldNamingStrategy fieldNamingStrategy;
    descriptor: Lcom/google/gson/FieldNamingStrategy;
    flags: (0x0010) ACC_FINAL

  final java.util.Map<java.lang.reflect.Type, com.google.gson.InstanceCreator<?>> instanceCreators;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/reflect/Type;Lcom/google/gson/InstanceCreator<*>;>;

  final boolean serializeNulls;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final boolean complexMapKeySerialization;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final boolean generateNonExecutableJson;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final boolean htmlSafe;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final boolean prettyPrinting;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final boolean lenient;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final boolean serializeSpecialFloatingPointValues;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final java.lang.String datePattern;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final int dateStyle;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int timeStyle;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final com.google.gson.LongSerializationPolicy longSerializationPolicy;
    descriptor: Lcom/google/gson/LongSerializationPolicy;
    flags: (0x0010) ACC_FINAL

  final java.util.List<com.google.gson.TypeAdapterFactory> builderFactories;
    descriptor: Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;

  final java.util.List<com.google.gson.TypeAdapterFactory> builderHierarchyFactories;
    descriptor: Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 114
            ldc Ljava/lang/Object;
            invokestatic com.google.gson.reflect.TypeToken.get:(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken;
            putstatic com.google.gson.Gson.NULL_KEY_SURROGATE:Lcom/google/gson/reflect/TypeToken;
         1: .line 115
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=18, locals=1, args_size=1
        start local 0 // com.google.gson.Gson this
         0: .line 186
            aload 0 /* this */
            getstatic com.google.gson.internal.Excluder.DEFAULT:Lcom/google/gson/internal/Excluder;
            getstatic com.google.gson.FieldNamingPolicy.IDENTITY:Lcom/google/gson/FieldNamingPolicy;
         1: .line 187
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            iconst_0
         2: .line 188
            iconst_0
            iconst_0
            iconst_1
         3: .line 189
            iconst_0
            iconst_0
            iconst_0
         4: .line 190
            getstatic com.google.gson.LongSerializationPolicy.DEFAULT:Lcom/google/gson/LongSerializationPolicy;
            aconst_null
            iconst_2
            iconst_2
         5: .line 191
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
         6: .line 192
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokespecial com.google.gson.Gson.<init>:(Lcom/google/gson/internal/Excluder;Lcom/google/gson/FieldNamingStrategy;Ljava/util/Map;ZZZZZZZLcom/google/gson/LongSerializationPolicy;Ljava/lang/String;IILjava/util/List;Ljava/util/List;Ljava/util/List;)V
         7: .line 193
            return
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/google/gson/Gson;

  void <init>(com.google.gson.internal.Excluder, com.google.gson.FieldNamingStrategy, java.util.Map<java.lang.reflect.Type, com.google.gson.InstanceCreator<?>>, boolean, boolean, boolean, boolean, boolean, boolean, boolean, com.google.gson.LongSerializationPolicy, java.lang.String, int, int, java.util.List<com.google.gson.TypeAdapterFactory>, java.util.List<com.google.gson.TypeAdapterFactory>, java.util.List<com.google.gson.TypeAdapterFactory>);
    descriptor: (Lcom/google/gson/internal/Excluder;Lcom/google/gson/FieldNamingStrategy;Ljava/util/Map;ZZZZZZZLcom/google/gson/LongSerializationPolicy;Ljava/lang/String;IILjava/util/List;Ljava/util/List;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=20, args_size=18
        start local 0 // com.google.gson.Gson this
        start local 1 // com.google.gson.internal.Excluder excluder
        start local 2 // com.google.gson.FieldNamingStrategy fieldNamingStrategy
        start local 3 // java.util.Map instanceCreators
        start local 4 // boolean serializeNulls
        start local 5 // boolean complexMapKeySerialization
        start local 6 // boolean generateNonExecutableGson
        start local 7 // boolean htmlSafe
        start local 8 // boolean prettyPrinting
        start local 9 // boolean lenient
        start local 10 // boolean serializeSpecialFloatingPointValues
        start local 11 // com.google.gson.LongSerializationPolicy longSerializationPolicy
        start local 12 // java.lang.String datePattern
        start local 13 // int dateStyle
        start local 14 // int timeStyle
        start local 15 // java.util.List builderFactories
        start local 16 // java.util.List builderHierarchyFactories
        start local 17 // java.util.List factoriesToBeAdded
         0: .line 195
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 124
            aload 0 /* this */
         2: .line 125
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putfield com.google.gson.Gson.calls:Ljava/lang/ThreadLocal;
         3: .line 127
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.google.gson.Gson.typeTokenCache:Ljava/util/Map;
         4: .line 203
            aload 0 /* this */
            aload 1 /* excluder */
            putfield com.google.gson.Gson.excluder:Lcom/google/gson/internal/Excluder;
         5: .line 204
            aload 0 /* this */
            aload 2 /* fieldNamingStrategy */
            putfield com.google.gson.Gson.fieldNamingStrategy:Lcom/google/gson/FieldNamingStrategy;
         6: .line 205
            aload 0 /* this */
            aload 3 /* instanceCreators */
            putfield com.google.gson.Gson.instanceCreators:Ljava/util/Map;
         7: .line 206
            aload 0 /* this */
            new com.google.gson.internal.ConstructorConstructor
            dup
            aload 3 /* instanceCreators */
            invokespecial com.google.gson.internal.ConstructorConstructor.<init>:(Ljava/util/Map;)V
            putfield com.google.gson.Gson.constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
         8: .line 207
            aload 0 /* this */
            iload 4 /* serializeNulls */
            putfield com.google.gson.Gson.serializeNulls:Z
         9: .line 208
            aload 0 /* this */
            iload 5 /* complexMapKeySerialization */
            putfield com.google.gson.Gson.complexMapKeySerialization:Z
        10: .line 209
            aload 0 /* this */
            iload 6 /* generateNonExecutableGson */
            putfield com.google.gson.Gson.generateNonExecutableJson:Z
        11: .line 210
            aload 0 /* this */
            iload 7 /* htmlSafe */
            putfield com.google.gson.Gson.htmlSafe:Z
        12: .line 211
            aload 0 /* this */
            iload 8 /* prettyPrinting */
            putfield com.google.gson.Gson.prettyPrinting:Z
        13: .line 212
            aload 0 /* this */
            iload 9 /* lenient */
            putfield com.google.gson.Gson.lenient:Z
        14: .line 213
            aload 0 /* this */
            iload 10 /* serializeSpecialFloatingPointValues */
            putfield com.google.gson.Gson.serializeSpecialFloatingPointValues:Z
        15: .line 214
            aload 0 /* this */
            aload 11 /* longSerializationPolicy */
            putfield com.google.gson.Gson.longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy;
        16: .line 215
            aload 0 /* this */
            aload 12 /* datePattern */
            putfield com.google.gson.Gson.datePattern:Ljava/lang/String;
        17: .line 216
            aload 0 /* this */
            iload 13 /* dateStyle */
            putfield com.google.gson.Gson.dateStyle:I
        18: .line 217
            aload 0 /* this */
            iload 14 /* timeStyle */
            putfield com.google.gson.Gson.timeStyle:I
        19: .line 218
            aload 0 /* this */
            aload 15 /* builderFactories */
            putfield com.google.gson.Gson.builderFactories:Ljava/util/List;
        20: .line 219
            aload 0 /* this */
            aload 16 /* builderHierarchyFactories */
            putfield com.google.gson.Gson.builderHierarchyFactories:Ljava/util/List;
        21: .line 221
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 18 /* factories */
        start local 18 // java.util.List factories
        22: .line 224
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.JSON_ELEMENT_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        23: .line 225
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.ObjectTypeAdapter.FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        24: .line 228
            aload 18 /* factories */
            aload 1 /* excluder */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 231
            aload 18 /* factories */
            aload 17 /* factoriesToBeAdded */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        26: .line 234
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.STRING_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        27: .line 235
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.INTEGER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        28: .line 236
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.BOOLEAN_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        29: .line 237
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.BYTE_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        30: .line 238
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.SHORT_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        31: .line 239
            aload 11 /* longSerializationPolicy */
            invokestatic com.google.gson.Gson.longAdapter:(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter;
            astore 19 /* longAdapter */
        start local 19 // com.google.gson.TypeAdapter longAdapter
        32: .line 240
            aload 18 /* factories */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            ldc Ljava/lang/Long;
            aload 19 /* longAdapter */
            invokestatic com.google.gson.internal.bind.TypeAdapters.newFactory:(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        33: .line 241
            aload 18 /* factories */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            ldc Ljava/lang/Double;
        34: .line 242
            aload 0 /* this */
            iload 10 /* serializeSpecialFloatingPointValues */
            invokevirtual com.google.gson.Gson.doubleAdapter:(Z)Lcom/google/gson/TypeAdapter;
        35: .line 241
            invokestatic com.google.gson.internal.bind.TypeAdapters.newFactory:(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        36: .line 243
            aload 18 /* factories */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            ldc Ljava/lang/Float;
        37: .line 244
            aload 0 /* this */
            iload 10 /* serializeSpecialFloatingPointValues */
            invokevirtual com.google.gson.Gson.floatAdapter:(Z)Lcom/google/gson/TypeAdapter;
        38: .line 243
            invokestatic com.google.gson.internal.bind.TypeAdapters.newFactory:(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        39: .line 245
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.NUMBER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        40: .line 246
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.ATOMIC_INTEGER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        41: .line 247
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.ATOMIC_BOOLEAN_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        42: .line 248
            aload 18 /* factories */
            ldc Ljava/util/concurrent/atomic/AtomicLong;
            aload 19 /* longAdapter */
            invokestatic com.google.gson.Gson.atomicLongAdapter:(Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter;
            invokestatic com.google.gson.internal.bind.TypeAdapters.newFactory:(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        43: .line 249
            aload 18 /* factories */
            ldc Ljava/util/concurrent/atomic/AtomicLongArray;
            aload 19 /* longAdapter */
            invokestatic com.google.gson.Gson.atomicLongArrayAdapter:(Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter;
            invokestatic com.google.gson.internal.bind.TypeAdapters.newFactory:(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        44: .line 250
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.ATOMIC_INTEGER_ARRAY_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        45: .line 251
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.CHARACTER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        46: .line 252
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.STRING_BUILDER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        47: .line 253
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.STRING_BUFFER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        48: .line 254
            aload 18 /* factories */
            ldc Ljava/math/BigDecimal;
            getstatic com.google.gson.internal.bind.TypeAdapters.BIG_DECIMAL:Lcom/google/gson/TypeAdapter;
            invokestatic com.google.gson.internal.bind.TypeAdapters.newFactory:(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        49: .line 255
            aload 18 /* factories */
            ldc Ljava/math/BigInteger;
            getstatic com.google.gson.internal.bind.TypeAdapters.BIG_INTEGER:Lcom/google/gson/TypeAdapter;
            invokestatic com.google.gson.internal.bind.TypeAdapters.newFactory:(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        50: .line 256
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.URL_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        51: .line 257
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.URI_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        52: .line 258
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.UUID_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        53: .line 259
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.CURRENCY_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        54: .line 260
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.LOCALE_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        55: .line 261
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.INET_ADDRESS_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        56: .line 262
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.BIT_SET_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        57: .line 263
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.DateTypeAdapter.FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        58: .line 264
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.CALENDAR_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        59: .line 265
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TimeTypeAdapter.FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        60: .line 266
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.SqlDateTypeAdapter.FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        61: .line 267
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.TIMESTAMP_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        62: .line 268
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.ArrayTypeAdapter.FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        63: .line 269
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.CLASS_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        64: .line 272
            aload 18 /* factories */
            new com.google.gson.internal.bind.CollectionTypeAdapterFactory
            dup
            aload 0 /* this */
            getfield com.google.gson.Gson.constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
            invokespecial com.google.gson.internal.bind.CollectionTypeAdapterFactory.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        65: .line 273
            aload 18 /* factories */
            new com.google.gson.internal.bind.MapTypeAdapterFactory
            dup
            aload 0 /* this */
            getfield com.google.gson.Gson.constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
            iload 5 /* complexMapKeySerialization */
            invokespecial com.google.gson.internal.bind.MapTypeAdapterFactory.<init>:(Lcom/google/gson/internal/ConstructorConstructor;Z)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        66: .line 274
            aload 0 /* this */
            new com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory
            dup
            aload 0 /* this */
            getfield com.google.gson.Gson.constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
            invokespecial com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
            putfield com.google.gson.Gson.jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;
        67: .line 275
            aload 18 /* factories */
            aload 0 /* this */
            getfield com.google.gson.Gson.jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        68: .line 276
            aload 18 /* factories */
            getstatic com.google.gson.internal.bind.TypeAdapters.ENUM_FACTORY:Lcom/google/gson/TypeAdapterFactory;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        69: .line 277
            aload 18 /* factories */
            new com.google.gson.internal.bind.ReflectiveTypeAdapterFactory
            dup
        70: .line 278
            aload 0 /* this */
            getfield com.google.gson.Gson.constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
            aload 2 /* fieldNamingStrategy */
            aload 1 /* excluder */
            aload 0 /* this */
            getfield com.google.gson.Gson.jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;
            invokespecial com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.<init>:(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/FieldNamingStrategy;Lcom/google/gson/internal/Excluder;Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;)V
        71: .line 277
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        72: .line 280
            aload 0 /* this */
            aload 18 /* factories */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putfield com.google.gson.Gson.factories:Ljava/util/List;
        73: .line 281
            return
        end local 19 // com.google.gson.TypeAdapter longAdapter
        end local 18 // java.util.List factories
        end local 17 // java.util.List factoriesToBeAdded
        end local 16 // java.util.List builderHierarchyFactories
        end local 15 // java.util.List builderFactories
        end local 14 // int timeStyle
        end local 13 // int dateStyle
        end local 12 // java.lang.String datePattern
        end local 11 // com.google.gson.LongSerializationPolicy longSerializationPolicy
        end local 10 // boolean serializeSpecialFloatingPointValues
        end local 9 // boolean lenient
        end local 8 // boolean prettyPrinting
        end local 7 // boolean htmlSafe
        end local 6 // boolean generateNonExecutableGson
        end local 5 // boolean complexMapKeySerialization
        end local 4 // boolean serializeNulls
        end local 3 // java.util.Map instanceCreators
        end local 2 // com.google.gson.FieldNamingStrategy fieldNamingStrategy
        end local 1 // com.google.gson.internal.Excluder excluder
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot                                 Name  Signature
            0   74     0                                 this  Lcom/google/gson/Gson;
            0   74     1                             excluder  Lcom/google/gson/internal/Excluder;
            0   74     2                  fieldNamingStrategy  Lcom/google/gson/FieldNamingStrategy;
            0   74     3                     instanceCreators  Ljava/util/Map<Ljava/lang/reflect/Type;Lcom/google/gson/InstanceCreator<*>;>;
            0   74     4                       serializeNulls  Z
            0   74     5           complexMapKeySerialization  Z
            0   74     6            generateNonExecutableGson  Z
            0   74     7                             htmlSafe  Z
            0   74     8                       prettyPrinting  Z
            0   74     9                              lenient  Z
            0   74    10  serializeSpecialFloatingPointValues  Z
            0   74    11              longSerializationPolicy  Lcom/google/gson/LongSerializationPolicy;
            0   74    12                          datePattern  Ljava/lang/String;
            0   74    13                            dateStyle  I
            0   74    14                            timeStyle  I
            0   74    15                     builderFactories  Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;
            0   74    16            builderHierarchyFactories  Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;
            0   74    17                   factoriesToBeAdded  Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;
           22   74    18                            factories  Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;
           32   74    19                          longAdapter  Lcom/google/gson/TypeAdapter<Ljava/lang/Number;>;
    Signature: (Lcom/google/gson/internal/Excluder;Lcom/google/gson/FieldNamingStrategy;Ljava/util/Map<Ljava/lang/reflect/Type;Lcom/google/gson/InstanceCreator<*>;>;ZZZZZZZLcom/google/gson/LongSerializationPolicy;Ljava/lang/String;IILjava/util/List<Lcom/google/gson/TypeAdapterFactory;>;Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;)V
    MethodParameters:
                                     Name  Flags
      excluder                             
      fieldNamingStrategy                  
      instanceCreators                     
      serializeNulls                       
      complexMapKeySerialization           
      generateNonExecutableGson            
      htmlSafe                             
      prettyPrinting                       
      lenient                              
      serializeSpecialFloatingPointValues  
      longSerializationPolicy              
      datePattern                          
      dateStyle                            
      timeStyle                            
      builderFactories                     
      builderHierarchyFactories            
      factoriesToBeAdded                   

  public com.google.gson.GsonBuilder newBuilder();
    descriptor: ()Lcom/google/gson/GsonBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.google.gson.Gson this
         0: .line 290
            new com.google.gson.GsonBuilder
            dup
            aload 0 /* this */
            invokespecial com.google.gson.GsonBuilder.<init>:(Lcom/google/gson/Gson;)V
            areturn
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/gson/Gson;

  public com.google.gson.internal.Excluder excluder();
    descriptor: ()Lcom/google/gson/internal/Excluder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.gson.Gson this
         0: .line 294
            aload 0 /* this */
            getfield com.google.gson.Gson.excluder:Lcom/google/gson/internal/Excluder;
            areturn
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/gson/Gson;

  public com.google.gson.FieldNamingStrategy fieldNamingStrategy();
    descriptor: ()Lcom/google/gson/FieldNamingStrategy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.gson.Gson this
         0: .line 298
            aload 0 /* this */
            getfield com.google.gson.Gson.fieldNamingStrategy:Lcom/google/gson/FieldNamingStrategy;
            areturn
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/gson/Gson;

  public boolean serializeNulls();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.gson.Gson this
         0: .line 302
            aload 0 /* this */
            getfield com.google.gson.Gson.serializeNulls:Z
            ireturn
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/gson/Gson;

  public boolean htmlSafe();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.gson.Gson this
         0: .line 306
            aload 0 /* this */
            getfield com.google.gson.Gson.htmlSafe:Z
            ireturn
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/gson/Gson;

  private com.google.gson.TypeAdapter<java.lang.Number> doubleAdapter(boolean);
    descriptor: (Z)Lcom/google/gson/TypeAdapter;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.gson.Gson this
        start local 1 // boolean serializeSpecialFloatingPointValues
         0: .line 310
            iload 1 /* serializeSpecialFloatingPointValues */
            ifeq 2
         1: .line 311
            getstatic com.google.gson.internal.bind.TypeAdapters.DOUBLE:Lcom/google/gson/TypeAdapter;
            areturn
         2: .line 313
      StackMap locals:
      StackMap stack:
            new com.google.gson.Gson$1
            dup
            aload 0 /* this */
            invokespecial com.google.gson.Gson$1.<init>:(Lcom/google/gson/Gson;)V
            areturn
        end local 1 // boolean serializeSpecialFloatingPointValues
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot                                 Name  Signature
            0    3     0                                 this  Lcom/google/gson/Gson;
            0    3     1  serializeSpecialFloatingPointValues  Z
    Signature: (Z)Lcom/google/gson/TypeAdapter<Ljava/lang/Number;>;
    MethodParameters:
                                     Name  Flags
      serializeSpecialFloatingPointValues  

  private com.google.gson.TypeAdapter<java.lang.Number> floatAdapter(boolean);
    descriptor: (Z)Lcom/google/gson/TypeAdapter;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.gson.Gson this
        start local 1 // boolean serializeSpecialFloatingPointValues
         0: .line 334
            iload 1 /* serializeSpecialFloatingPointValues */
            ifeq 2
         1: .line 335
            getstatic com.google.gson.internal.bind.TypeAdapters.FLOAT:Lcom/google/gson/TypeAdapter;
            areturn
         2: .line 337
      StackMap locals:
      StackMap stack:
            new com.google.gson.Gson$2
            dup
            aload 0 /* this */
            invokespecial com.google.gson.Gson$2.<init>:(Lcom/google/gson/Gson;)V
            areturn
        end local 1 // boolean serializeSpecialFloatingPointValues
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot                                 Name  Signature
            0    3     0                                 this  Lcom/google/gson/Gson;
            0    3     1  serializeSpecialFloatingPointValues  Z
    Signature: (Z)Lcom/google/gson/TypeAdapter<Ljava/lang/Number;>;
    MethodParameters:
                                     Name  Flags
      serializeSpecialFloatingPointValues  

  static void checkValidFloatingPoint(double);
    descriptor: (D)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // double value
         0: .line 358
            dload 0 /* value */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifne 1
            dload 0 /* value */
            invokestatic java.lang.Double.isInfinite:(D)Z
            ifeq 5
         1: .line 359
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            dload 0 /* value */
            invokestatic java.lang.String.valueOf:(D)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 360
            ldc " is not a valid double value as per JSON specification. To override this"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 361
            ldc " behavior, use GsonBuilder.serializeSpecialFloatingPointValues() method."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 359
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 363
      StackMap locals:
      StackMap stack:
            return
        end local 0 // double value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  value  D
    MethodParameters:
       Name  Flags
      value  

  private static com.google.gson.TypeAdapter<java.lang.Number> longAdapter(com.google.gson.LongSerializationPolicy);
    descriptor: (Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.gson.LongSerializationPolicy longSerializationPolicy
         0: .line 366
            aload 0 /* longSerializationPolicy */
            getstatic com.google.gson.LongSerializationPolicy.DEFAULT:Lcom/google/gson/LongSerializationPolicy;
            if_acmpne 2
         1: .line 367
            getstatic com.google.gson.internal.bind.TypeAdapters.LONG:Lcom/google/gson/TypeAdapter;
            areturn
         2: .line 369
      StackMap locals:
      StackMap stack:
            new com.google.gson.Gson$3
            dup
            invokespecial com.google.gson.Gson$3.<init>:()V
            areturn
        end local 0 // com.google.gson.LongSerializationPolicy longSerializationPolicy
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    3     0  longSerializationPolicy  Lcom/google/gson/LongSerializationPolicy;
    Signature: (Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter<Ljava/lang/Number;>;
    MethodParameters:
                         Name  Flags
      longSerializationPolicy  

  private static com.google.gson.TypeAdapter<java.util.concurrent.atomic.AtomicLong> atomicLongAdapter(com.google.gson.TypeAdapter<java.lang.Number>);
    descriptor: (Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.google.gson.TypeAdapter longAdapter
         0: .line 388
            new com.google.gson.Gson$4
            dup
            aload 0 /* longAdapter */
            invokespecial com.google.gson.Gson$4.<init>:(Lcom/google/gson/TypeAdapter;)V
         1: .line 396
            invokevirtual com.google.gson.Gson$4.nullSafe:()Lcom/google/gson/TypeAdapter;
         2: .line 388
            areturn
        end local 0 // com.google.gson.TypeAdapter longAdapter
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  longAdapter  Lcom/google/gson/TypeAdapter<Ljava/lang/Number;>;
    Signature: (Lcom/google/gson/TypeAdapter<Ljava/lang/Number;>;)Lcom/google/gson/TypeAdapter<Ljava/util/concurrent/atomic/AtomicLong;>;
    MethodParameters:
             Name  Flags
      longAdapter  final

  private static com.google.gson.TypeAdapter<java.util.concurrent.atomic.AtomicLongArray> atomicLongArrayAdapter(com.google.gson.TypeAdapter<java.lang.Number>);
    descriptor: (Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.google.gson.TypeAdapter longAdapter
         0: .line 400
            new com.google.gson.Gson$5
            dup
            aload 0 /* longAdapter */
            invokespecial com.google.gson.Gson$5.<init>:(Lcom/google/gson/TypeAdapter;)V
         1: .line 423
            invokevirtual com.google.gson.Gson$5.nullSafe:()Lcom/google/gson/TypeAdapter;
         2: .line 400
            areturn
        end local 0 // com.google.gson.TypeAdapter longAdapter
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  longAdapter  Lcom/google/gson/TypeAdapter<Ljava/lang/Number;>;
    Signature: (Lcom/google/gson/TypeAdapter<Ljava/lang/Number;>;)Lcom/google/gson/TypeAdapter<Ljava/util/concurrent/atomic/AtomicLongArray;>;
    MethodParameters:
             Name  Flags
      longAdapter  final

  public <T> com.google.gson.TypeAdapter<T> getAdapter(com.google.gson.reflect.TypeToken<T>);
    descriptor: (Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // com.google.gson.Gson this
        start local 1 // com.google.gson.reflect.TypeToken type
         0: .line 434
            aload 0 /* this */
            getfield com.google.gson.Gson.typeTokenCache:Ljava/util/Map;
            aload 1 /* type */
            ifnonnull 1
            getstatic com.google.gson.Gson.NULL_KEY_SURROGATE:Lcom/google/gson/reflect/TypeToken;
            goto 2
      StackMap locals:
      StackMap stack: java.util.Map
         1: aload 1 /* type */
      StackMap locals: com.google.gson.Gson com.google.gson.reflect.TypeToken
      StackMap stack: java.util.Map com.google.gson.reflect.TypeToken
         2: invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.gson.TypeAdapter
            astore 2 /* cached */
        start local 2 // com.google.gson.TypeAdapter cached
         3: .line 435
            aload 2 /* cached */
            ifnull 5
         4: .line 436
            aload 2 /* cached */
            areturn
         5: .line 439
      StackMap locals: com.google.gson.TypeAdapter
      StackMap stack:
            aload 0 /* this */
            getfield com.google.gson.Gson.calls:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast java.util.Map
            astore 3 /* threadCalls */
        start local 3 // java.util.Map threadCalls
         6: .line 440
            iconst_0
            istore 4 /* requiresThreadLocalCleanup */
        start local 4 // boolean requiresThreadLocalCleanup
         7: .line 441
            aload 3 /* threadCalls */
            ifnonnull 11
         8: .line 442
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* threadCalls */
         9: .line 443
            aload 0 /* this */
            getfield com.google.gson.Gson.calls:Ljava/lang/ThreadLocal;
            aload 3 /* threadCalls */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
        10: .line 444
            iconst_1
            istore 4 /* requiresThreadLocalCleanup */
        11: .line 448
      StackMap locals: java.util.Map int
      StackMap stack:
            aload 3 /* threadCalls */
            aload 1 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.gson.Gson$FutureTypeAdapter
            astore 5 /* ongoingCall */
        start local 5 // com.google.gson.Gson$FutureTypeAdapter ongoingCall
        12: .line 449
            aload 5 /* ongoingCall */
            ifnull 14
        13: .line 450
            aload 5 /* ongoingCall */
            areturn
        14: .line 454
      StackMap locals: com.google.gson.Gson$FutureTypeAdapter
      StackMap stack:
            new com.google.gson.Gson$FutureTypeAdapter
            dup
            invokespecial com.google.gson.Gson$FutureTypeAdapter.<init>:()V
            astore 6 /* call */
        start local 6 // com.google.gson.Gson$FutureTypeAdapter call
        15: .line 455
            aload 3 /* threadCalls */
            aload 1 /* type */
            aload 6 /* call */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 457
            aload 0 /* this */
            getfield com.google.gson.Gson.factories:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 27
      StackMap locals: com.google.gson.Gson com.google.gson.reflect.TypeToken com.google.gson.TypeAdapter java.util.Map int com.google.gson.Gson$FutureTypeAdapter com.google.gson.Gson$FutureTypeAdapter top java.util.Iterator
      StackMap stack:
        17: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.google.gson.TypeAdapterFactory
            astore 7 /* factory */
        start local 7 // com.google.gson.TypeAdapterFactory factory
        18: .line 458
            aload 7 /* factory */
            aload 0 /* this */
            aload 1 /* type */
            invokeinterface com.google.gson.TypeAdapterFactory.create:(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
            astore 9 /* candidate */
        start local 9 // com.google.gson.TypeAdapter candidate
        19: .line 459
            aload 9 /* candidate */
            ifnull 27
        20: .line 460
            aload 6 /* call */
            aload 9 /* candidate */
            invokevirtual com.google.gson.Gson$FutureTypeAdapter.setDelegate:(Lcom/google/gson/TypeAdapter;)V
        21: .line 461
            aload 0 /* this */
            getfield com.google.gson.Gson.typeTokenCache:Ljava/util/Map;
            aload 1 /* type */
            aload 9 /* candidate */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 462
            aload 9 /* candidate */
            astore 11
        23: .line 467
            aload 3 /* threadCalls */
            aload 1 /* type */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 469
            iload 4 /* requiresThreadLocalCleanup */
            ifeq 26
        25: .line 470
            aload 0 /* this */
            getfield com.google.gson.Gson.calls:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
        26: .line 462
      StackMap locals: com.google.gson.Gson com.google.gson.reflect.TypeToken com.google.gson.TypeAdapter java.util.Map int com.google.gson.Gson$FutureTypeAdapter com.google.gson.Gson$FutureTypeAdapter com.google.gson.TypeAdapterFactory java.util.Iterator com.google.gson.TypeAdapter top com.google.gson.TypeAdapter
      StackMap stack:
            aload 11
            areturn
        end local 9 // com.google.gson.TypeAdapter candidate
        end local 7 // com.google.gson.TypeAdapterFactory factory
        27: .line 457
      StackMap locals: com.google.gson.Gson com.google.gson.reflect.TypeToken com.google.gson.TypeAdapter java.util.Map int com.google.gson.Gson$FutureTypeAdapter com.google.gson.Gson$FutureTypeAdapter top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        28: .line 465
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "GSON (2.8.6) cannot handle "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // com.google.gson.Gson$FutureTypeAdapter call
        29: .line 466
      StackMap locals: com.google.gson.Gson com.google.gson.reflect.TypeToken com.google.gson.TypeAdapter java.util.Map int com.google.gson.Gson$FutureTypeAdapter
      StackMap stack: java.lang.Throwable
            astore 10
        30: .line 467
            aload 3 /* threadCalls */
            aload 1 /* type */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 469
            iload 4 /* requiresThreadLocalCleanup */
            ifeq 33
        32: .line 470
            aload 0 /* this */
            getfield com.google.gson.Gson.calls:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
        33: .line 472
      StackMap locals: com.google.gson.Gson com.google.gson.reflect.TypeToken com.google.gson.TypeAdapter java.util.Map int com.google.gson.Gson$FutureTypeAdapter top top top top java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        end local 5 // com.google.gson.Gson$FutureTypeAdapter ongoingCall
        end local 4 // boolean requiresThreadLocalCleanup
        end local 3 // java.util.Map threadCalls
        end local 2 // com.google.gson.TypeAdapter cached
        end local 1 // com.google.gson.reflect.TypeToken type
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   34     0                        this  Lcom/google/gson/Gson;
            0   34     1                        type  Lcom/google/gson/reflect/TypeToken<TT;>;
            3   34     2                      cached  Lcom/google/gson/TypeAdapter<*>;
            6   34     3                 threadCalls  Ljava/util/Map<Lcom/google/gson/reflect/TypeToken<*>;Lcom/google/gson/Gson$FutureTypeAdapter<*>;>;
            7   34     4  requiresThreadLocalCleanup  Z
           12   34     5                 ongoingCall  Lcom/google/gson/Gson$FutureTypeAdapter<TT;>;
           15   29     6                        call  Lcom/google/gson/Gson$FutureTypeAdapter<TT;>;
           18   27     7                     factory  Lcom/google/gson/TypeAdapterFactory;
           19   27     9                   candidate  Lcom/google/gson/TypeAdapter<TT;>;
      Exception table:
        from    to  target  type
          14    23      29  any
          27    29      29  any
    Signature: <T:Ljava/lang/Object;>(Lcom/google/gson/reflect/TypeToken<TT;>;)Lcom/google/gson/TypeAdapter<TT;>;
    MethodParameters:
      Name  Flags
      type  

  public <T> com.google.gson.TypeAdapter<T> getDelegateAdapter(com.google.gson.TypeAdapterFactory, com.google.gson.reflect.TypeToken<T>);
    descriptor: (Lcom/google/gson/TypeAdapterFactory;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // com.google.gson.TypeAdapterFactory skipPast
        start local 2 // com.google.gson.reflect.TypeToken type
         0: .line 528
            aload 0 /* this */
            getfield com.google.gson.Gson.factories:Ljava/util/List;
            aload 1 /* skipPast */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 529
            aload 0 /* this */
            getfield com.google.gson.Gson.jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;
            astore 1 /* skipPast */
         2: .line 532
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* skipPastFound */
        start local 3 // boolean skipPastFound
         3: .line 533
            aload 0 /* this */
            getfield com.google.gson.Gson.factories:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 12
      StackMap locals: com.google.gson.Gson com.google.gson.TypeAdapterFactory com.google.gson.reflect.TypeToken int top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.google.gson.TypeAdapterFactory
            astore 4 /* factory */
        start local 4 // com.google.gson.TypeAdapterFactory factory
         5: .line 534
            iload 3 /* skipPastFound */
            ifne 9
         6: .line 535
            aload 4 /* factory */
            aload 1 /* skipPast */
            if_acmpne 12
         7: .line 536
            iconst_1
            istore 3 /* skipPastFound */
         8: .line 538
            goto 12
         9: .line 541
      StackMap locals: com.google.gson.Gson com.google.gson.TypeAdapterFactory com.google.gson.reflect.TypeToken int com.google.gson.TypeAdapterFactory java.util.Iterator
      StackMap stack:
            aload 4 /* factory */
            aload 0 /* this */
            aload 2 /* type */
            invokeinterface com.google.gson.TypeAdapterFactory.create:(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
            astore 6 /* candidate */
        start local 6 // com.google.gson.TypeAdapter candidate
        10: .line 542
            aload 6 /* candidate */
            ifnull 12
        11: .line 543
            aload 6 /* candidate */
            areturn
        end local 6 // com.google.gson.TypeAdapter candidate
        end local 4 // com.google.gson.TypeAdapterFactory factory
        12: .line 533
      StackMap locals: com.google.gson.Gson com.google.gson.TypeAdapterFactory com.google.gson.reflect.TypeToken int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        13: .line 546
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "GSON cannot serialize "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // boolean skipPastFound
        end local 2 // com.google.gson.reflect.TypeToken type
        end local 1 // com.google.gson.TypeAdapterFactory skipPast
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lcom/google/gson/Gson;
            0   14     1       skipPast  Lcom/google/gson/TypeAdapterFactory;
            0   14     2           type  Lcom/google/gson/reflect/TypeToken<TT;>;
            3   14     3  skipPastFound  Z
            5   12     4        factory  Lcom/google/gson/TypeAdapterFactory;
           10   12     6      candidate  Lcom/google/gson/TypeAdapter<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/google/gson/TypeAdapterFactory;Lcom/google/gson/reflect/TypeToken<TT;>;)Lcom/google/gson/TypeAdapter<TT;>;
    MethodParameters:
          Name  Flags
      skipPast  
      type      

  public <T> com.google.gson.TypeAdapter<T> getAdapter(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lcom/google/gson/TypeAdapter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.gson.Gson this
        start local 1 // java.lang.Class type
         0: .line 556
            aload 0 /* this */
            aload 1 /* type */
            invokestatic com.google.gson.reflect.TypeToken.get:(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken;
            invokevirtual com.google.gson.Gson.getAdapter:(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
            areturn
        end local 1 // java.lang.Class type
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/gson/Gson;
            0    1     1  type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lcom/google/gson/TypeAdapter<TT;>;
    MethodParameters:
      Name  Flags
      type  

  public com.google.gson.JsonElement toJsonTree(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/google/gson/JsonElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.gson.Gson this
        start local 1 // java.lang.Object src
         0: .line 573
            aload 1 /* src */
            ifnonnull 2
         1: .line 574
            getstatic com.google.gson.JsonNull.INSTANCE:Lcom/google/gson/JsonNull;
            areturn
         2: .line 576
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* src */
            aload 1 /* src */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual com.google.gson.Gson.toJsonTree:(Ljava/lang/Object;Ljava/lang/reflect/Type;)Lcom/google/gson/JsonElement;
            areturn
        end local 1 // java.lang.Object src
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/google/gson/Gson;
            0    3     1   src  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      src   

  public com.google.gson.JsonElement toJsonTree(java.lang.Object, java.lang.reflect.Type);
    descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Type;)Lcom/google/gson/JsonElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // java.lang.Object src
        start local 2 // java.lang.reflect.Type typeOfSrc
         0: .line 596
            new com.google.gson.internal.bind.JsonTreeWriter
            dup
            invokespecial com.google.gson.internal.bind.JsonTreeWriter.<init>:()V
            astore 3 /* writer */
        start local 3 // com.google.gson.internal.bind.JsonTreeWriter writer
         1: .line 597
            aload 0 /* this */
            aload 1 /* src */
            aload 2 /* typeOfSrc */
            aload 3 /* writer */
            invokevirtual com.google.gson.Gson.toJson:(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/stream/JsonWriter;)V
         2: .line 598
            aload 3 /* writer */
            invokevirtual com.google.gson.internal.bind.JsonTreeWriter.get:()Lcom/google/gson/JsonElement;
            areturn
        end local 3 // com.google.gson.internal.bind.JsonTreeWriter writer
        end local 2 // java.lang.reflect.Type typeOfSrc
        end local 1 // java.lang.Object src
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/google/gson/Gson;
            0    3     1        src  Ljava/lang/Object;
            0    3     2  typeOfSrc  Ljava/lang/reflect/Type;
            1    3     3     writer  Lcom/google/gson/internal/bind/JsonTreeWriter;
    MethodParameters:
           Name  Flags
      src        
      typeOfSrc  

  public java.lang.String toJson(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.gson.Gson this
        start local 1 // java.lang.Object src
         0: .line 615
            aload 1 /* src */
            ifnonnull 2
         1: .line 616
            aload 0 /* this */
            getstatic com.google.gson.JsonNull.INSTANCE:Lcom/google/gson/JsonNull;
            invokevirtual com.google.gson.Gson.toJson:(Lcom/google/gson/JsonElement;)Ljava/lang/String;
            areturn
         2: .line 618
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* src */
            aload 1 /* src */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual com.google.gson.Gson.toJson:(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object src
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/google/gson/Gson;
            0    3     1   src  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      src   

  public java.lang.String toJson(java.lang.Object, java.lang.reflect.Type);
    descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // java.lang.Object src
        start local 2 // java.lang.reflect.Type typeOfSrc
         0: .line 637
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 3 /* writer */
        start local 3 // java.io.StringWriter writer
         1: .line 638
            aload 0 /* this */
            aload 1 /* src */
            aload 2 /* typeOfSrc */
            aload 3 /* writer */
            invokevirtual com.google.gson.Gson.toJson:(Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/Appendable;)V
         2: .line 639
            aload 3 /* writer */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.io.StringWriter writer
        end local 2 // java.lang.reflect.Type typeOfSrc
        end local 1 // java.lang.Object src
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/google/gson/Gson;
            0    3     1        src  Ljava/lang/Object;
            0    3     2  typeOfSrc  Ljava/lang/reflect/Type;
            1    3     3     writer  Ljava/io/StringWriter;
    MethodParameters:
           Name  Flags
      src        
      typeOfSrc  

  public void toJson(java.lang.Object, java.lang.Appendable);
    descriptor: (Ljava/lang/Object;Ljava/lang/Appendable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // java.lang.Object src
        start local 2 // java.lang.Appendable writer
         0: .line 657
            aload 1 /* src */
            ifnull 3
         1: .line 658
            aload 0 /* this */
            aload 1 /* src */
            aload 1 /* src */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* writer */
            invokevirtual com.google.gson.Gson.toJson:(Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/Appendable;)V
         2: .line 659
            goto 4
         3: .line 660
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.google.gson.JsonNull.INSTANCE:Lcom/google/gson/JsonNull;
            aload 2 /* writer */
            invokevirtual com.google.gson.Gson.toJson:(Lcom/google/gson/JsonElement;Ljava/lang/Appendable;)V
         4: .line 662
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Appendable writer
        end local 1 // java.lang.Object src
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/google/gson/Gson;
            0    5     1     src  Ljava/lang/Object;
            0    5     2  writer  Ljava/lang/Appendable;
    Exceptions:
      throws com.google.gson.JsonIOException
    MethodParameters:
        Name  Flags
      src     
      writer  

  public void toJson(java.lang.Object, java.lang.reflect.Type, java.lang.Appendable);
    descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/Appendable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.google.gson.Gson this
        start local 1 // java.lang.Object src
        start local 2 // java.lang.reflect.Type typeOfSrc
        start local 3 // java.lang.Appendable writer
         0: .line 682
            aload 0 /* this */
            aload 3 /* writer */
            invokestatic com.google.gson.internal.Streams.writerForAppendable:(Ljava/lang/Appendable;)Ljava/io/Writer;
            invokevirtual com.google.gson.Gson.newJsonWriter:(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter;
            astore 4 /* jsonWriter */
        start local 4 // com.google.gson.stream.JsonWriter jsonWriter
         1: .line 683
            aload 0 /* this */
            aload 1 /* src */
            aload 2 /* typeOfSrc */
            aload 4 /* jsonWriter */
            invokevirtual com.google.gson.Gson.toJson:(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/stream/JsonWriter;)V
        end local 4 // com.google.gson.stream.JsonWriter jsonWriter
         2: .line 684
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 4 /* e */
        start local 4 // java.io.IOException e
         4: .line 685
            new com.google.gson.JsonIOException
            dup
            aload 4 /* e */
            invokespecial com.google.gson.JsonIOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
         5: .line 687
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Appendable writer
        end local 2 // java.lang.reflect.Type typeOfSrc
        end local 1 // java.lang.Object src
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/google/gson/Gson;
            0    6     1         src  Ljava/lang/Object;
            0    6     2   typeOfSrc  Ljava/lang/reflect/Type;
            0    6     3      writer  Ljava/lang/Appendable;
            1    2     4  jsonWriter  Lcom/google/gson/stream/JsonWriter;
            4    5     4           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.io.IOException
    Exceptions:
      throws com.google.gson.JsonIOException
    MethodParameters:
           Name  Flags
      src        
      typeOfSrc  
      writer     

  public void toJson(java.lang.Object, java.lang.reflect.Type, com.google.gson.stream.JsonWriter);
    descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/stream/JsonWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // com.google.gson.Gson this
        start local 1 // java.lang.Object src
        start local 2 // java.lang.reflect.Type typeOfSrc
        start local 3 // com.google.gson.stream.JsonWriter writer
         0: .line 696
            aload 0 /* this */
            aload 2 /* typeOfSrc */
            invokestatic com.google.gson.reflect.TypeToken.get:(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
            invokevirtual com.google.gson.Gson.getAdapter:(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
            astore 4 /* adapter */
        start local 4 // com.google.gson.TypeAdapter adapter
         1: .line 697
            aload 3 /* writer */
            invokevirtual com.google.gson.stream.JsonWriter.isLenient:()Z
            istore 5 /* oldLenient */
        start local 5 // boolean oldLenient
         2: .line 698
            aload 3 /* writer */
            iconst_1
            invokevirtual com.google.gson.stream.JsonWriter.setLenient:(Z)V
         3: .line 699
            aload 3 /* writer */
            invokevirtual com.google.gson.stream.JsonWriter.isHtmlSafe:()Z
            istore 6 /* oldHtmlSafe */
        start local 6 // boolean oldHtmlSafe
         4: .line 700
            aload 3 /* writer */
            aload 0 /* this */
            getfield com.google.gson.Gson.htmlSafe:Z
            invokevirtual com.google.gson.stream.JsonWriter.setHtmlSafe:(Z)V
         5: .line 701
            aload 3 /* writer */
            invokevirtual com.google.gson.stream.JsonWriter.getSerializeNulls:()Z
            istore 7 /* oldSerializeNulls */
        start local 7 // boolean oldSerializeNulls
         6: .line 702
            aload 3 /* writer */
            aload 0 /* this */
            getfield com.google.gson.Gson.serializeNulls:Z
            invokevirtual com.google.gson.stream.JsonWriter.setSerializeNulls:(Z)V
         7: .line 704
            aload 4 /* adapter */
            aload 3 /* writer */
            aload 1 /* src */
            invokevirtual com.google.gson.TypeAdapter.write:(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V
         8: .line 705
            goto 20
      StackMap locals: com.google.gson.Gson java.lang.Object java.lang.reflect.Type com.google.gson.stream.JsonWriter com.google.gson.TypeAdapter int int int
      StackMap stack: java.io.IOException
         9: astore 8 /* e */
        start local 8 // java.io.IOException e
        10: .line 706
            new com.google.gson.JsonIOException
            dup
            aload 8 /* e */
            invokespecial com.google.gson.JsonIOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.io.IOException e
        11: .line 707
      StackMap locals:
      StackMap stack: java.lang.AssertionError
            astore 8 /* e */
        start local 8 // java.lang.AssertionError e
        12: .line 708
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "AssertionError (GSON 2.8.6): "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* e */
            invokevirtual java.lang.AssertionError.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            astore 9 /* error */
        start local 9 // java.lang.AssertionError error
        13: .line 709
            aload 9 /* error */
            aload 8 /* e */
            invokevirtual java.lang.AssertionError.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        14: .line 710
            aload 9 /* error */
            athrow
        end local 9 // java.lang.AssertionError error
        end local 8 // java.lang.AssertionError e
        15: .line 711
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        16: .line 712
            aload 3 /* writer */
            iload 5 /* oldLenient */
            invokevirtual com.google.gson.stream.JsonWriter.setLenient:(Z)V
        17: .line 713
            aload 3 /* writer */
            iload 6 /* oldHtmlSafe */
            invokevirtual com.google.gson.stream.JsonWriter.setHtmlSafe:(Z)V
        18: .line 714
            aload 3 /* writer */
            iload 7 /* oldSerializeNulls */
            invokevirtual com.google.gson.stream.JsonWriter.setSerializeNulls:(Z)V
        19: .line 715
            aload 10
            athrow
        20: .line 712
      StackMap locals:
      StackMap stack:
            aload 3 /* writer */
            iload 5 /* oldLenient */
            invokevirtual com.google.gson.stream.JsonWriter.setLenient:(Z)V
        21: .line 713
            aload 3 /* writer */
            iload 6 /* oldHtmlSafe */
            invokevirtual com.google.gson.stream.JsonWriter.setHtmlSafe:(Z)V
        22: .line 714
            aload 3 /* writer */
            iload 7 /* oldSerializeNulls */
            invokevirtual com.google.gson.stream.JsonWriter.setSerializeNulls:(Z)V
        23: .line 716
            return
        end local 7 // boolean oldSerializeNulls
        end local 6 // boolean oldHtmlSafe
        end local 5 // boolean oldLenient
        end local 4 // com.google.gson.TypeAdapter adapter
        end local 3 // com.google.gson.stream.JsonWriter writer
        end local 2 // java.lang.reflect.Type typeOfSrc
        end local 1 // java.lang.Object src
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   24     0               this  Lcom/google/gson/Gson;
            0   24     1                src  Ljava/lang/Object;
            0   24     2          typeOfSrc  Ljava/lang/reflect/Type;
            0   24     3             writer  Lcom/google/gson/stream/JsonWriter;
            1   24     4            adapter  Lcom/google/gson/TypeAdapter<*>;
            2   24     5         oldLenient  Z
            4   24     6        oldHtmlSafe  Z
            6   24     7  oldSerializeNulls  Z
           10   11     8                  e  Ljava/io/IOException;
           12   15     8                  e  Ljava/lang/AssertionError;
           13   15     9              error  Ljava/lang/AssertionError;
      Exception table:
        from    to  target  type
           7     8       9  Class java.io.IOException
           7     8      11  Class java.lang.AssertionError
           7    15      15  any
    Exceptions:
      throws com.google.gson.JsonIOException
    MethodParameters:
           Name  Flags
      src        
      typeOfSrc  
      writer     

  public java.lang.String toJson(com.google.gson.JsonElement);
    descriptor: (Lcom/google/gson/JsonElement;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.google.gson.Gson this
        start local 1 // com.google.gson.JsonElement jsonElement
         0: .line 726
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 2 /* writer */
        start local 2 // java.io.StringWriter writer
         1: .line 727
            aload 0 /* this */
            aload 1 /* jsonElement */
            aload 2 /* writer */
            invokevirtual com.google.gson.Gson.toJson:(Lcom/google/gson/JsonElement;Ljava/lang/Appendable;)V
         2: .line 728
            aload 2 /* writer */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.io.StringWriter writer
        end local 1 // com.google.gson.JsonElement jsonElement
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/google/gson/Gson;
            0    3     1  jsonElement  Lcom/google/gson/JsonElement;
            1    3     2       writer  Ljava/io/StringWriter;
    MethodParameters:
             Name  Flags
      jsonElement  

  public void toJson(com.google.gson.JsonElement, java.lang.Appendable);
    descriptor: (Lcom/google/gson/JsonElement;Ljava/lang/Appendable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // com.google.gson.JsonElement jsonElement
        start local 2 // java.lang.Appendable writer
         0: .line 741
            aload 0 /* this */
            aload 2 /* writer */
            invokestatic com.google.gson.internal.Streams.writerForAppendable:(Ljava/lang/Appendable;)Ljava/io/Writer;
            invokevirtual com.google.gson.Gson.newJsonWriter:(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter;
            astore 3 /* jsonWriter */
        start local 3 // com.google.gson.stream.JsonWriter jsonWriter
         1: .line 742
            aload 0 /* this */
            aload 1 /* jsonElement */
            aload 3 /* jsonWriter */
            invokevirtual com.google.gson.Gson.toJson:(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V
        end local 3 // com.google.gson.stream.JsonWriter jsonWriter
         2: .line 743
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 3 /* e */
        start local 3 // java.io.IOException e
         4: .line 744
            new com.google.gson.JsonIOException
            dup
            aload 3 /* e */
            invokespecial com.google.gson.JsonIOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException e
         5: .line 746
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Appendable writer
        end local 1 // com.google.gson.JsonElement jsonElement
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/google/gson/Gson;
            0    6     1  jsonElement  Lcom/google/gson/JsonElement;
            0    6     2       writer  Ljava/lang/Appendable;
            1    2     3   jsonWriter  Lcom/google/gson/stream/JsonWriter;
            4    5     3            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.io.IOException
    Exceptions:
      throws com.google.gson.JsonIOException
    MethodParameters:
             Name  Flags
      jsonElement  
      writer       

  public com.google.gson.stream.JsonWriter newJsonWriter(java.io.Writer);
    descriptor: (Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.google.gson.Gson this
        start local 1 // java.io.Writer writer
         0: .line 752
            aload 0 /* this */
            getfield com.google.gson.Gson.generateNonExecutableJson:Z
            ifeq 2
         1: .line 753
            aload 1 /* writer */
            ldc ")]}'\n"
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
         2: .line 755
      StackMap locals:
      StackMap stack:
            new com.google.gson.stream.JsonWriter
            dup
            aload 1 /* writer */
            invokespecial com.google.gson.stream.JsonWriter.<init>:(Ljava/io/Writer;)V
            astore 2 /* jsonWriter */
        start local 2 // com.google.gson.stream.JsonWriter jsonWriter
         3: .line 756
            aload 0 /* this */
            getfield com.google.gson.Gson.prettyPrinting:Z
            ifeq 5
         4: .line 757
            aload 2 /* jsonWriter */
            ldc "  "
            invokevirtual com.google.gson.stream.JsonWriter.setIndent:(Ljava/lang/String;)V
         5: .line 759
      StackMap locals: com.google.gson.stream.JsonWriter
      StackMap stack:
            aload 2 /* jsonWriter */
            aload 0 /* this */
            getfield com.google.gson.Gson.serializeNulls:Z
            invokevirtual com.google.gson.stream.JsonWriter.setSerializeNulls:(Z)V
         6: .line 760
            aload 2 /* jsonWriter */
            areturn
        end local 2 // com.google.gson.stream.JsonWriter jsonWriter
        end local 1 // java.io.Writer writer
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/google/gson/Gson;
            0    7     1      writer  Ljava/io/Writer;
            3    7     2  jsonWriter  Lcom/google/gson/stream/JsonWriter;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      writer  

  public com.google.gson.stream.JsonReader newJsonReader(java.io.Reader);
    descriptor: (Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.google.gson.Gson this
        start local 1 // java.io.Reader reader
         0: .line 767
            new com.google.gson.stream.JsonReader
            dup
            aload 1 /* reader */
            invokespecial com.google.gson.stream.JsonReader.<init>:(Ljava/io/Reader;)V
            astore 2 /* jsonReader */
        start local 2 // com.google.gson.stream.JsonReader jsonReader
         1: .line 768
            aload 2 /* jsonReader */
            aload 0 /* this */
            getfield com.google.gson.Gson.lenient:Z
            invokevirtual com.google.gson.stream.JsonReader.setLenient:(Z)V
         2: .line 769
            aload 2 /* jsonReader */
            areturn
        end local 2 // com.google.gson.stream.JsonReader jsonReader
        end local 1 // java.io.Reader reader
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/google/gson/Gson;
            0    3     1      reader  Ljava/io/Reader;
            1    3     2  jsonReader  Lcom/google/gson/stream/JsonReader;
    MethodParameters:
        Name  Flags
      reader  

  public void toJson(com.google.gson.JsonElement, com.google.gson.stream.JsonWriter);
    descriptor: (Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // com.google.gson.JsonElement jsonElement
        start local 2 // com.google.gson.stream.JsonWriter writer
         0: .line 777
            aload 2 /* writer */
            invokevirtual com.google.gson.stream.JsonWriter.isLenient:()Z
            istore 3 /* oldLenient */
        start local 3 // boolean oldLenient
         1: .line 778
            aload 2 /* writer */
            iconst_1
            invokevirtual com.google.gson.stream.JsonWriter.setLenient:(Z)V
         2: .line 779
            aload 2 /* writer */
            invokevirtual com.google.gson.stream.JsonWriter.isHtmlSafe:()Z
            istore 4 /* oldHtmlSafe */
        start local 4 // boolean oldHtmlSafe
         3: .line 780
            aload 2 /* writer */
            aload 0 /* this */
            getfield com.google.gson.Gson.htmlSafe:Z
            invokevirtual com.google.gson.stream.JsonWriter.setHtmlSafe:(Z)V
         4: .line 781
            aload 2 /* writer */
            invokevirtual com.google.gson.stream.JsonWriter.getSerializeNulls:()Z
            istore 5 /* oldSerializeNulls */
        start local 5 // boolean oldSerializeNulls
         5: .line 782
            aload 2 /* writer */
            aload 0 /* this */
            getfield com.google.gson.Gson.serializeNulls:Z
            invokevirtual com.google.gson.stream.JsonWriter.setSerializeNulls:(Z)V
         6: .line 784
            aload 1 /* jsonElement */
            aload 2 /* writer */
            invokestatic com.google.gson.internal.Streams.write:(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V
         7: .line 785
            goto 19
      StackMap locals: com.google.gson.Gson com.google.gson.JsonElement com.google.gson.stream.JsonWriter int int int
      StackMap stack: java.io.IOException
         8: astore 6 /* e */
        start local 6 // java.io.IOException e
         9: .line 786
            new com.google.gson.JsonIOException
            dup
            aload 6 /* e */
            invokespecial com.google.gson.JsonIOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.io.IOException e
        10: .line 787
      StackMap locals:
      StackMap stack: java.lang.AssertionError
            astore 6 /* e */
        start local 6 // java.lang.AssertionError e
        11: .line 788
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "AssertionError (GSON 2.8.6): "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* e */
            invokevirtual java.lang.AssertionError.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            astore 7 /* error */
        start local 7 // java.lang.AssertionError error
        12: .line 789
            aload 7 /* error */
            aload 6 /* e */
            invokevirtual java.lang.AssertionError.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        13: .line 790
            aload 7 /* error */
            athrow
        end local 7 // java.lang.AssertionError error
        end local 6 // java.lang.AssertionError e
        14: .line 791
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        15: .line 792
            aload 2 /* writer */
            iload 3 /* oldLenient */
            invokevirtual com.google.gson.stream.JsonWriter.setLenient:(Z)V
        16: .line 793
            aload 2 /* writer */
            iload 4 /* oldHtmlSafe */
            invokevirtual com.google.gson.stream.JsonWriter.setHtmlSafe:(Z)V
        17: .line 794
            aload 2 /* writer */
            iload 5 /* oldSerializeNulls */
            invokevirtual com.google.gson.stream.JsonWriter.setSerializeNulls:(Z)V
        18: .line 795
            aload 8
            athrow
        19: .line 792
      StackMap locals:
      StackMap stack:
            aload 2 /* writer */
            iload 3 /* oldLenient */
            invokevirtual com.google.gson.stream.JsonWriter.setLenient:(Z)V
        20: .line 793
            aload 2 /* writer */
            iload 4 /* oldHtmlSafe */
            invokevirtual com.google.gson.stream.JsonWriter.setHtmlSafe:(Z)V
        21: .line 794
            aload 2 /* writer */
            iload 5 /* oldSerializeNulls */
            invokevirtual com.google.gson.stream.JsonWriter.setSerializeNulls:(Z)V
        22: .line 796
            return
        end local 5 // boolean oldSerializeNulls
        end local 4 // boolean oldHtmlSafe
        end local 3 // boolean oldLenient
        end local 2 // com.google.gson.stream.JsonWriter writer
        end local 1 // com.google.gson.JsonElement jsonElement
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   23     0               this  Lcom/google/gson/Gson;
            0   23     1        jsonElement  Lcom/google/gson/JsonElement;
            0   23     2             writer  Lcom/google/gson/stream/JsonWriter;
            1   23     3         oldLenient  Z
            3   23     4        oldHtmlSafe  Z
            5   23     5  oldSerializeNulls  Z
            9   10     6                  e  Ljava/io/IOException;
           11   14     6                  e  Ljava/lang/AssertionError;
           12   14     7              error  Ljava/lang/AssertionError;
      Exception table:
        from    to  target  type
           6     7       8  Class java.io.IOException
           6     7      10  Class java.lang.AssertionError
           6    14      14  any
    Exceptions:
      throws com.google.gson.JsonIOException
    MethodParameters:
             Name  Flags
      jsonElement  
      writer       

  public <T> T fromJson(java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // java.lang.String json
        start local 2 // java.lang.Class classOfT
         0: .line 817
            aload 0 /* this */
            aload 1 /* json */
            aload 2 /* classOfT */
            invokevirtual com.google.gson.Gson.fromJson:(Ljava/lang/String;Ljava/lang/reflect/Type;)Ljava/lang/Object;
            astore 3 /* object */
        start local 3 // java.lang.Object object
         1: .line 818
            aload 2 /* classOfT */
            invokestatic com.google.gson.internal.Primitives.wrap:(Ljava/lang/Class;)Ljava/lang/Class;
            aload 3 /* object */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object object
        end local 2 // java.lang.Class classOfT
        end local 1 // java.lang.String json
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/google/gson/Gson;
            0    2     1      json  Ljava/lang/String;
            0    2     2  classOfT  Ljava/lang/Class<TT;>;
            1    2     3    object  Ljava/lang/Object;
    Exceptions:
      throws com.google.gson.JsonSyntaxException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
          Name  Flags
      json      
      classOfT  

  public <T> T fromJson(java.lang.String, java.lang.reflect.Type);
    descriptor: (Ljava/lang/String;Ljava/lang/reflect/Type;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // java.lang.String json
        start local 2 // java.lang.reflect.Type typeOfT
         0: .line 842
            aload 1 /* json */
            ifnonnull 2
         1: .line 843
            aconst_null
            areturn
         2: .line 845
      StackMap locals:
      StackMap stack:
            new java.io.StringReader
            dup
            aload 1 /* json */
            invokespecial java.io.StringReader.<init>:(Ljava/lang/String;)V
            astore 3 /* reader */
        start local 3 // java.io.StringReader reader
         3: .line 846
            aload 0 /* this */
            aload 3 /* reader */
            aload 2 /* typeOfT */
            invokevirtual com.google.gson.Gson.fromJson:(Ljava/io/Reader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
            astore 4 /* target */
        start local 4 // java.lang.Object target
         4: .line 847
            aload 4 /* target */
            areturn
        end local 4 // java.lang.Object target
        end local 3 // java.io.StringReader reader
        end local 2 // java.lang.reflect.Type typeOfT
        end local 1 // java.lang.String json
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/google/gson/Gson;
            0    5     1     json  Ljava/lang/String;
            0    5     2  typeOfT  Ljava/lang/reflect/Type;
            3    5     3   reader  Ljava/io/StringReader;
            4    5     4   target  TT;
    Exceptions:
      throws com.google.gson.JsonSyntaxException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/reflect/Type;)TT;
    MethodParameters:
         Name  Flags
      json     
      typeOfT  

  public <T> T fromJson(java.io.Reader, java.lang.Class<T>);
    descriptor: (Ljava/io/Reader;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // java.io.Reader json
        start local 2 // java.lang.Class classOfT
         0: .line 869
            aload 0 /* this */
            aload 1 /* json */
            invokevirtual com.google.gson.Gson.newJsonReader:(Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader;
            astore 3 /* jsonReader */
        start local 3 // com.google.gson.stream.JsonReader jsonReader
         1: .line 870
            aload 0 /* this */
            aload 3 /* jsonReader */
            aload 2 /* classOfT */
            invokevirtual com.google.gson.Gson.fromJson:(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
            astore 4 /* object */
        start local 4 // java.lang.Object object
         2: .line 871
            aload 4 /* object */
            aload 3 /* jsonReader */
            invokestatic com.google.gson.Gson.assertFullConsumption:(Ljava/lang/Object;Lcom/google/gson/stream/JsonReader;)V
         3: .line 872
            aload 2 /* classOfT */
            invokestatic com.google.gson.internal.Primitives.wrap:(Ljava/lang/Class;)Ljava/lang/Class;
            aload 4 /* object */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Object object
        end local 3 // com.google.gson.stream.JsonReader jsonReader
        end local 2 // java.lang.Class classOfT
        end local 1 // java.io.Reader json
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/google/gson/Gson;
            0    4     1        json  Ljava/io/Reader;
            0    4     2    classOfT  Ljava/lang/Class<TT;>;
            1    4     3  jsonReader  Lcom/google/gson/stream/JsonReader;
            2    4     4      object  Ljava/lang/Object;
    Exceptions:
      throws com.google.gson.JsonSyntaxException, com.google.gson.JsonIOException
    Signature: <T:Ljava/lang/Object;>(Ljava/io/Reader;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
          Name  Flags
      json      
      classOfT  

  public <T> T fromJson(java.io.Reader, java.lang.reflect.Type);
    descriptor: (Ljava/io/Reader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // java.io.Reader json
        start local 2 // java.lang.reflect.Type typeOfT
         0: .line 896
            aload 0 /* this */
            aload 1 /* json */
            invokevirtual com.google.gson.Gson.newJsonReader:(Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader;
            astore 3 /* jsonReader */
        start local 3 // com.google.gson.stream.JsonReader jsonReader
         1: .line 897
            aload 0 /* this */
            aload 3 /* jsonReader */
            aload 2 /* typeOfT */
            invokevirtual com.google.gson.Gson.fromJson:(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
            astore 4 /* object */
        start local 4 // java.lang.Object object
         2: .line 898
            aload 4 /* object */
            aload 3 /* jsonReader */
            invokestatic com.google.gson.Gson.assertFullConsumption:(Ljava/lang/Object;Lcom/google/gson/stream/JsonReader;)V
         3: .line 899
            aload 4 /* object */
            areturn
        end local 4 // java.lang.Object object
        end local 3 // com.google.gson.stream.JsonReader jsonReader
        end local 2 // java.lang.reflect.Type typeOfT
        end local 1 // java.io.Reader json
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/google/gson/Gson;
            0    4     1        json  Ljava/io/Reader;
            0    4     2     typeOfT  Ljava/lang/reflect/Type;
            1    4     3  jsonReader  Lcom/google/gson/stream/JsonReader;
            2    4     4      object  TT;
    Exceptions:
      throws com.google.gson.JsonIOException, com.google.gson.JsonSyntaxException
    Signature: <T:Ljava/lang/Object;>(Ljava/io/Reader;Ljava/lang/reflect/Type;)TT;
    MethodParameters:
         Name  Flags
      json     
      typeOfT  

  private static void assertFullConsumption(java.lang.Object, com.google.gson.stream.JsonReader);
    descriptor: (Ljava/lang/Object;Lcom/google/gson/stream/JsonReader;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Object obj
        start local 1 // com.google.gson.stream.JsonReader reader
         0: .line 904
            aload 0 /* obj */
            ifnull 6
            aload 1 /* reader */
            invokevirtual com.google.gson.stream.JsonReader.peek:()Lcom/google/gson/stream/JsonToken;
            getstatic com.google.gson.stream.JsonToken.END_DOCUMENT:Lcom/google/gson/stream/JsonToken;
            if_acmpeq 6
         1: .line 905
            new com.google.gson.JsonIOException
            dup
            ldc "JSON document was not fully consumed."
            invokespecial com.google.gson.JsonIOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 907
      StackMap locals:
      StackMap stack: com.google.gson.stream.MalformedJsonException
            astore 2 /* e */
        start local 2 // com.google.gson.stream.MalformedJsonException e
         3: .line 908
            new com.google.gson.JsonSyntaxException
            dup
            aload 2 /* e */
            invokespecial com.google.gson.JsonSyntaxException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // com.google.gson.stream.MalformedJsonException e
         4: .line 909
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         5: .line 910
            new com.google.gson.JsonIOException
            dup
            aload 2 /* e */
            invokespecial com.google.gson.JsonIOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
         6: .line 912
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.google.gson.stream.JsonReader reader
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0     obj  Ljava/lang/Object;
            0    7     1  reader  Lcom/google/gson/stream/JsonReader;
            3    4     2       e  Lcom/google/gson/stream/MalformedJsonException;
            5    6     2       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     2       2  Class com.google.gson.stream.MalformedJsonException
           0     2       4  Class java.io.IOException
    MethodParameters:
        Name  Flags
      obj     
      reader  

  public <T> T fromJson(com.google.gson.stream.JsonReader, java.lang.reflect.Type);
    descriptor: (Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // com.google.gson.stream.JsonReader reader
        start local 2 // java.lang.reflect.Type typeOfT
         0: .line 924
            iconst_1
            istore 3 /* isEmpty */
        start local 3 // boolean isEmpty
         1: .line 925
            aload 1 /* reader */
            invokevirtual com.google.gson.stream.JsonReader.isLenient:()Z
            istore 4 /* oldLenient */
        start local 4 // boolean oldLenient
         2: .line 926
            aload 1 /* reader */
            iconst_1
            invokevirtual com.google.gson.stream.JsonReader.setLenient:(Z)V
         3: .line 928
            aload 1 /* reader */
            invokevirtual com.google.gson.stream.JsonReader.peek:()Lcom/google/gson/stream/JsonToken;
            pop
         4: .line 929
            iconst_0
            istore 3 /* isEmpty */
         5: .line 930
            aload 2 /* typeOfT */
            invokestatic com.google.gson.reflect.TypeToken.get:(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
            astore 5 /* typeToken */
        start local 5 // com.google.gson.reflect.TypeToken typeToken
         6: .line 931
            aload 0 /* this */
            aload 5 /* typeToken */
            invokevirtual com.google.gson.Gson.getAdapter:(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
            astore 6 /* typeAdapter */
        start local 6 // com.google.gson.TypeAdapter typeAdapter
         7: .line 932
            aload 6 /* typeAdapter */
            aload 1 /* reader */
            invokevirtual com.google.gson.TypeAdapter.read:(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object;
            astore 7 /* object */
        start local 7 // java.lang.Object object
         8: .line 933
            aload 7 /* object */
            astore 9
         9: .line 953
            aload 1 /* reader */
            iload 4 /* oldLenient */
            invokevirtual com.google.gson.stream.JsonReader.setLenient:(Z)V
        10: .line 933
            aload 9
            areturn
        end local 7 // java.lang.Object object
        end local 6 // com.google.gson.TypeAdapter typeAdapter
        end local 5 // com.google.gson.reflect.TypeToken typeToken
        11: .line 934
      StackMap locals: com.google.gson.Gson com.google.gson.stream.JsonReader java.lang.reflect.Type int int
      StackMap stack: java.io.EOFException
            astore 5 /* e */
        start local 5 // java.io.EOFException e
        12: .line 939
            iload 3 /* isEmpty */
            ifeq 15
        13: .line 953
            aload 1 /* reader */
            iload 4 /* oldLenient */
            invokevirtual com.google.gson.stream.JsonReader.setLenient:(Z)V
        14: .line 940
            aconst_null
            areturn
        15: .line 942
      StackMap locals: java.io.EOFException
      StackMap stack:
            new com.google.gson.JsonSyntaxException
            dup
            aload 5 /* e */
            invokespecial com.google.gson.JsonSyntaxException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.io.EOFException e
        16: .line 943
      StackMap locals: com.google.gson.Gson com.google.gson.stream.JsonReader java.lang.reflect.Type int int
      StackMap stack: java.lang.IllegalStateException
            astore 5 /* e */
        start local 5 // java.lang.IllegalStateException e
        17: .line 944
            new com.google.gson.JsonSyntaxException
            dup
            aload 5 /* e */
            invokespecial com.google.gson.JsonSyntaxException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.IllegalStateException e
        18: .line 945
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        19: .line 947
            new com.google.gson.JsonSyntaxException
            dup
            aload 5 /* e */
            invokespecial com.google.gson.JsonSyntaxException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.io.IOException e
        20: .line 948
      StackMap locals:
      StackMap stack: java.lang.AssertionError
            astore 5 /* e */
        start local 5 // java.lang.AssertionError e
        21: .line 949
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "AssertionError (GSON 2.8.6): "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* e */
            invokevirtual java.lang.AssertionError.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            astore 6 /* error */
        start local 6 // java.lang.AssertionError error
        22: .line 950
            aload 6 /* error */
            aload 5 /* e */
            invokevirtual java.lang.AssertionError.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        23: .line 951
            aload 6 /* error */
            athrow
        end local 6 // java.lang.AssertionError error
        end local 5 // java.lang.AssertionError e
        24: .line 952
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        25: .line 953
            aload 1 /* reader */
            iload 4 /* oldLenient */
            invokevirtual com.google.gson.stream.JsonReader.setLenient:(Z)V
        26: .line 954
            aload 8
            athrow
        end local 4 // boolean oldLenient
        end local 3 // boolean isEmpty
        end local 2 // java.lang.reflect.Type typeOfT
        end local 1 // com.google.gson.stream.JsonReader reader
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   27     0         this  Lcom/google/gson/Gson;
            0   27     1       reader  Lcom/google/gson/stream/JsonReader;
            0   27     2      typeOfT  Ljava/lang/reflect/Type;
            1   27     3      isEmpty  Z
            2   27     4   oldLenient  Z
            6   11     5    typeToken  Lcom/google/gson/reflect/TypeToken<TT;>;
            7   11     6  typeAdapter  Lcom/google/gson/TypeAdapter<TT;>;
            8   11     7       object  TT;
           12   16     5            e  Ljava/io/EOFException;
           17   18     5            e  Ljava/lang/IllegalStateException;
           19   20     5            e  Ljava/io/IOException;
           21   24     5            e  Ljava/lang/AssertionError;
           22   24     6        error  Ljava/lang/AssertionError;
      Exception table:
        from    to  target  type
           3     9      11  Class java.io.EOFException
           3     9      16  Class java.lang.IllegalStateException
           3     9      18  Class java.io.IOException
           3     9      20  Class java.lang.AssertionError
           3     9      24  any
          11    13      24  any
          15    24      24  any
    Exceptions:
      throws com.google.gson.JsonIOException, com.google.gson.JsonSyntaxException
    Signature: <T:Ljava/lang/Object;>(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)TT;
    MethodParameters:
         Name  Flags
      reader   
      typeOfT  

  public <T> T fromJson(com.google.gson.JsonElement, java.lang.Class<T>);
    descriptor: (Lcom/google/gson/JsonElement;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // com.google.gson.JsonElement json
        start local 2 // java.lang.Class classOfT
         0: .line 975
            aload 0 /* this */
            aload 1 /* json */
            aload 2 /* classOfT */
            invokevirtual com.google.gson.Gson.fromJson:(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;)Ljava/lang/Object;
            astore 3 /* object */
        start local 3 // java.lang.Object object
         1: .line 976
            aload 2 /* classOfT */
            invokestatic com.google.gson.internal.Primitives.wrap:(Ljava/lang/Class;)Ljava/lang/Class;
            aload 3 /* object */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object object
        end local 2 // java.lang.Class classOfT
        end local 1 // com.google.gson.JsonElement json
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/google/gson/Gson;
            0    2     1      json  Lcom/google/gson/JsonElement;
            0    2     2  classOfT  Ljava/lang/Class<TT;>;
            1    2     3    object  Ljava/lang/Object;
    Exceptions:
      throws com.google.gson.JsonSyntaxException
    Signature: <T:Ljava/lang/Object;>(Lcom/google/gson/JsonElement;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
          Name  Flags
      json      
      classOfT  

  public <T> T fromJson(com.google.gson.JsonElement, java.lang.reflect.Type);
    descriptor: (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.google.gson.Gson this
        start local 1 // com.google.gson.JsonElement json
        start local 2 // java.lang.reflect.Type typeOfT
         0: .line 1000
            aload 1 /* json */
            ifnonnull 2
         1: .line 1001
            aconst_null
            areturn
         2: .line 1003
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.google.gson.internal.bind.JsonTreeReader
            dup
            aload 1 /* json */
            invokespecial com.google.gson.internal.bind.JsonTreeReader.<init>:(Lcom/google/gson/JsonElement;)V
            aload 2 /* typeOfT */
            invokevirtual com.google.gson.Gson.fromJson:(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.reflect.Type typeOfT
        end local 1 // com.google.gson.JsonElement json
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/google/gson/Gson;
            0    3     1     json  Lcom/google/gson/JsonElement;
            0    3     2  typeOfT  Ljava/lang/reflect/Type;
    Exceptions:
      throws com.google.gson.JsonSyntaxException
    Signature: <T:Ljava/lang/Object;>(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;)TT;
    MethodParameters:
         Name  Flags
      json     
      typeOfT  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.google.gson.Gson this
         0: .line 1033
            new java.lang.StringBuilder
            dup
            ldc "{serializeNulls:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 1034
            aload 0 /* this */
            getfield com.google.gson.Gson.serializeNulls:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
         2: .line 1035
            ldc ",factories:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.google.gson.Gson.factories:Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 1036
            ldc ",instanceCreators:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.google.gson.Gson.constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         4: .line 1037
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1038
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 1033
            areturn
        end local 0 // com.google.gson.Gson this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/google/gson/Gson;
}
SourceFile: "Gson.java"
NestMembers:
  com.google.gson.Gson$1  com.google.gson.Gson$2  com.google.gson.Gson$3  com.google.gson.Gson$4  com.google.gson.Gson$5  com.google.gson.Gson$FutureTypeAdapter
InnerClasses:
  com.google.gson.Gson$1
  com.google.gson.Gson$2
  com.google.gson.Gson$3
  com.google.gson.Gson$4
  com.google.gson.Gson$5
  FutureTypeAdapter = com.google.gson.Gson$FutureTypeAdapter of com.google.gson.Gson