JavaBeanDeserializer.smali

.class public Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;
.super Ljava/lang/Object;

# interfaces
.implements Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;


# instance fields
.field protected final a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

.field protected final b:Ljava/lang/Class;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/lang/Class<",
            "*>;"
        }
    .end annotation
.end field

.field public final beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

.field private final c:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

.field private d:Ljava/util/concurrent/ConcurrentMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/concurrent/ConcurrentMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;"
        }
    .end annotation
.end field

.field private final e:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;",
            ">;"
        }
    .end annotation
.end field

.field private f:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;",
            ">;"
        }
    .end annotation
.end field

.field private transient g:[J

.field private transient h:[S

.field private transient i:[J

.field private transient j:[S

.field private final k:Lcom/tradplus/ads/common/serialization/parser/ParserConfig$AutoTypeCheckHandler;


# direct methods
.method public constructor <init>(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;)V
    .registers 12

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    iget-object v0, p2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->clazz:Ljava/lang/Class;

    iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->b:Ljava/lang/Class;

    iput-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v0, p2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->jsonType:Lcom/tradplus/ads/common/serialization/annotation/JSONType;

    const/4 v1, 0x0

    if-eqz v0, :cond_23

    invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/annotation/JSONType;->autoTypeCheckHandler()Ljava/lang/Class;

    move-result-object v0

    const-class v2, Lcom/tradplus/ads/common/serialization/parser/ParserConfig$AutoTypeCheckHandler;

    if-eq v0, v2, :cond_23

    :try_start_16
    iget-object v0, p2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->jsonType:Lcom/tradplus/ads/common/serialization/annotation/JSONType;

    invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/annotation/JSONType;->autoTypeCheckHandler()Ljava/lang/Class;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig$AutoTypeCheckHandler;
    :try_end_22
    .catch Ljava/lang/Exception; {:try_start_16 .. :try_end_22} :catch_23

    goto :goto_24

    :catch_23
    :cond_23
    move-object v0, v1

    :goto_24
    iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->k:Lcom/tradplus/ads/common/serialization/parser/ParserConfig$AutoTypeCheckHandler;

    iget-object v0, p2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->sortedFields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    array-length v2, v0

    new-array v2, v2, [Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    iput-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v0, v0

    const/4 v2, 0x0

    move-object v3, v1

    const/4 v1, 0x0

    :goto_31
    if-ge v1, v0, :cond_6f

    iget-object v4, p2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->sortedFields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    aget-object v4, v4, v1

    invoke-virtual {p1, p1, p2, v4}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->createFieldDeserializer(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;Lcom/tradplus/ads/common/serialization/util/FieldInfo;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object v5

    iget-object v6, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    aput-object v5, v6, v1

    const/16 v6, 0x80

    if-le v0, v6, :cond_55

    iget-object v6, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->f:Ljava/util/Map;

    if-nez v6, :cond_4e

    new-instance v6, Ljava/util/HashMap;

    invoke-direct {v6}, Ljava/util/HashMap;-><init>()V

    iput-object v6, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->f:Ljava/util/Map;

    :cond_4e
    iget-object v6, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->f:Ljava/util/Map;

    iget-object v7, v4, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->name:Ljava/lang/String;

    invoke-interface {v6, v7, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    :cond_55
    iget-object v4, v4, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->alternateNames:[Ljava/lang/String;

    array-length v6, v4

    move-object v7, v3

    const/4 v3, 0x0

    :goto_5a
    if-ge v3, v6, :cond_6b

    aget-object v8, v4, v3

    if-nez v7, :cond_65

    new-instance v7, Ljava/util/HashMap;

    invoke-direct {v7}, Ljava/util/HashMap;-><init>()V

    :cond_65
    invoke-interface {v7, v8, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    add-int/lit8 v3, v3, 0x1

    goto :goto_5a

    :cond_6b
    add-int/lit8 v1, v1, 0x1

    move-object v3, v7

    goto :goto_31

    :cond_6f
    iput-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->e:Ljava/util/Map;

    iget-object p1, p2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    array-length v0, p1

    new-array v0, v0, [Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->c:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length p1, p1

    :goto_79
    if-ge v2, p1, :cond_8c

    iget-object v0, p2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    aget-object v0, v0, v2

    iget-object v0, v0, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->name:Ljava/lang/String;

    invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object v0

    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->c:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    aput-object v0, v1, v2

    add-int/lit8 v2, v2, 0x1

    goto :goto_79

    :cond_8c
    return-void
.end method

.method public constructor <init>(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Class;)V
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/tradplus/ads/common/serialization/parser/ParserConfig;",
            "Ljava/lang/Class<",
            "*>;)V"
        }
    .end annotation

    invoke-direct {p0, p1, p2, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Class;Ljava/lang/reflect/Type;)V

    return-void
.end method

.method public constructor <init>(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Class;Ljava/lang/reflect/Type;)V
    .registers 10
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/tradplus/ads/common/serialization/parser/ParserConfig;",
            "Ljava/lang/Class<",
            "*>;",
            "Ljava/lang/reflect/Type;",
            ")V"
        }
    .end annotation

    iget-object v2, p1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->propertyNamingStrategy:Lcom/tradplus/ads/common/serialization/PropertyNamingStrategy;

    iget-boolean v3, p1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->fieldBased:Z

    iget-boolean v4, p1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->compatibleWithJavaBean:Z

    invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->isJacksonCompatible()Z

    move-result v5

    move-object v0, p2

    move-object v1, p3

    invoke-static/range {v0 .. v5}, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->build(Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/PropertyNamingStrategy;ZZZ)Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    move-result-object p2

    invoke-direct {p0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;)V

    return-void
.end method

.method protected static a(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;
    .registers 9

    iget-object p1, p1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->jsonType:Lcom/tradplus/ads/common/serialization/annotation/JSONType;

    const/4 v0, 0x0

    if-nez p1, :cond_6

    return-object v0

    :cond_6
    invoke-interface {p1}, Lcom/tradplus/ads/common/serialization/annotation/JSONType;->seeAlso()[Ljava/lang/Class;

    move-result-object p1

    array-length v1, p1

    const/4 v2, 0x0

    :goto_c
    if-ge v2, v1, :cond_2f

    aget-object v3, p1, v2

    invoke-virtual {p0, v3}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v3

    instance-of v4, v3, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    if-eqz v4, :cond_2c

    check-cast v3, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    iget-object v4, v3, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v5, v4, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->typeName:Ljava/lang/String;

    invoke-virtual {v5, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-eqz v5, :cond_25

    return-object v3

    :cond_25
    invoke-static {p0, v4, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    move-result-object v3

    if-eqz v3, :cond_2c

    return-object v3

    :cond_2c
    add-int/lit8 v2, v2, 0x1

    goto :goto_c

    :cond_2f
    return-object v0
.end method

.method private a(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Object;)Ljava/lang/Object;
    .registers 5

    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object p1, p1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->factoryMethod:Ljava/lang/reflect/Method;

    const/4 v0, 0x1

    new-array v0, v0, [Ljava/lang/Object;

    const/4 v1, 0x0

    aput-object p2, v0, v1

    const/4 p2, 0x0

    invoke-virtual {p1, p2, v0}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1

    return-object p1
.end method

.method static a(I[I)Z
    .registers 5

    const/4 v0, 0x0

    if-nez p1, :cond_4

    return v0

    :cond_4
    div-int/lit8 v1, p0, 0x20

    rem-int/lit8 p0, p0, 0x20

    array-length v2, p1

    if-ge v1, v2, :cond_14

    aget p1, p1, v1

    const/4 v1, 0x1

    shl-int p0, v1, p0

    and-int/2addr p0, p1

    if-eqz p0, :cond_14

    return v1

    :cond_14
    return v0
.end method


# virtual methods
.method protected a(Lcom/tradplus/ads/common/serialization/parser/JSONLexer;C)Ljava/lang/Enum;
    .registers 5
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/tradplus/ads/common/serialization/parser/JSONLexer;",
            "C)",
            "Ljava/lang/Enum<",
            "*>;"
        }
    .end annotation

    new-instance p2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "illegal enum. "

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-interface {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->info()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-direct {p2, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw p2
.end method

.method protected a(Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;[CLcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)Ljava/lang/Enum;
    .registers 10

    instance-of v0, p3, Lcom/tradplus/ads/common/serialization/parser/deserializer/EnumDeserializer;

    const/4 v1, 0x0

    if-eqz v0, :cond_8

    check-cast p3, Lcom/tradplus/ads/common/serialization/parser/deserializer/EnumDeserializer;

    goto :goto_9

    :cond_8
    move-object p3, v1

    :goto_9
    if-nez p3, :cond_f

    const/4 p2, -0x1

    iput p2, p1, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    return-object v1

    :cond_f
    invoke-virtual {p1, p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanEnumSymbol([C)J

    move-result-wide v2

    iget p2, p1, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez p2, :cond_4a

    invoke-virtual {p3, v2, v3}, Lcom/tradplus/ads/common/serialization/parser/deserializer/EnumDeserializer;->getEnumByHashCode(J)Ljava/lang/Enum;

    move-result-object p2

    if-nez p2, :cond_49

    const-wide v4, -0x340d631b7bdddcdbL    # -7.302176725335867E57

    cmp-long v0, v2, v4

    if-nez v0, :cond_27

    return-object v1

    :cond_27
    sget-object v0, Lcom/tradplus/ads/common/serialization/parser/Feature;->ErrorOnEnumNotMatch:Lcom/tradplus/ads/common/serialization/parser/Feature;

    invoke-virtual {p1, v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z

    move-result p1

    if-nez p1, :cond_30

    goto :goto_49

    :cond_30
    new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance p2, Ljava/lang/StringBuilder;

    invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v0, "not match enum value, "

    invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object p3, p3, Lcom/tradplus/ads/common/serialization/parser/deserializer/EnumDeserializer;->a:Ljava/lang/Class;

    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p2

    invoke-direct {p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw p1

    :cond_49
    :goto_49
    return-object p2

    :cond_4a
    return-object v1
.end method

.method protected a(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;Ljava/lang/Object;I[I)Ljava/lang/Object;
    .registers 38
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;",
            "Ljava/lang/reflect/Type;",
            "Ljava/lang/Object;",
            "Ljava/lang/Object;",
            "I[I)TT;"
        }
    .end annotation

    move-object/from16 v8, p0

    move-object/from16 v9, p1

    move-object/from16 v10, p2

    move-object/from16 v11, p3

    const-class v1, Lcom/tradplus/ads/common/serialization/JSON;

    if-eq v10, v1, :cond_9c4

    const-class v1, Lcom/tradplus/ads/common/serialization/JSONObject;

    if-ne v10, v1, :cond_12

    goto/16 :goto_9c4

    :cond_12
    iget-object v1, v9, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;

    move-object v12, v1

    check-cast v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;

    invoke-virtual/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getConfig()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    move-result-object v13

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v1

    const/16 v2, 0x8

    const/16 v14, 0x10

    const/4 v15, 0x0

    if-ne v1, v2, :cond_2a

    invoke-virtual {v12, v14}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken(I)V

    return-object v15

    :cond_2a
    invoke-virtual/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getContext()Lcom/tradplus/ads/common/serialization/parser/ParseContext;

    move-result-object v2

    if-eqz p4, :cond_34

    if-eqz v2, :cond_34

    iget-object v2, v2, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->parent:Lcom/tradplus/ads/common/serialization/parser/ParseContext;

    :cond_34
    move-object v7, v2

    const/16 v6, 0xd

    if-ne v1, v6, :cond_50

    :try_start_39
    invoke-virtual {v12, v14}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken(I)V

    if-nez p4, :cond_43

    invoke-virtual/range {p0 .. p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->createInstance(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;)Ljava/lang/Object;

    move-result-object v1
    :try_end_42
    .catchall {:try_start_39 .. :try_end_42} :catchall_49

    goto :goto_45

    :cond_43
    move-object/from16 v1, p4

    :goto_45
    invoke-virtual {v9, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v1

    :catchall_49
    move-exception v0

    move-object/from16 v5, p4

    move-object v1, v0

    move-object v3, v7

    goto/16 :goto_9bc

    :cond_50
    const/16 v2, 0xe

    if-ne v1, v2, :cond_79

    :try_start_54
    sget-object v3, Lcom/tradplus/ads/common/serialization/parser/Feature;->SupportArrayToBean:Lcom/tradplus/ads/common/serialization/parser/Feature;

    iget v3, v3, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I

    iget-object v6, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget v6, v6, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->parserFeatures:I

    and-int/2addr v6, v3

    if-nez v6, :cond_6e

    sget-object v6, Lcom/tradplus/ads/common/serialization/parser/Feature;->SupportArrayToBean:Lcom/tradplus/ads/common/serialization/parser/Feature;

    invoke-virtual {v12, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z

    move-result v6

    if-nez v6, :cond_6e

    and-int v3, p5, v3

    if-eqz v3, :cond_6c

    goto :goto_6e

    :cond_6c
    const/4 v3, 0x0

    goto :goto_6f

    :cond_6e
    :goto_6e
    const/4 v3, 0x1

    :goto_6f
    if-eqz v3, :cond_79

    invoke-virtual/range {p0 .. p4}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->deserialzeArrayMapping(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1
    :try_end_75
    .catchall {:try_start_54 .. :try_end_75} :catchall_49

    invoke-virtual {v9, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v1

    :cond_79
    const/16 v3, 0xc

    const/4 v6, 0x4

    if-eq v1, v3, :cond_16a

    if-eq v1, v14, :cond_16a

    :try_start_80
    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->isBlankInput()Z

    move-result v3
    :try_end_84
    .catchall {:try_start_80 .. :try_end_84} :catchall_49

    if-eqz v3, :cond_8a

    invoke-virtual {v9, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v15

    :cond_8a
    if-ne v1, v6, :cond_c4

    :try_start_8c
    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->stringVal()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/String;->length()I

    move-result v10

    if-nez v10, :cond_9d

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken()V
    :try_end_99
    .catchall {:try_start_8c .. :try_end_99} :catchall_49

    invoke-virtual {v9, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v15

    :cond_9d
    :try_start_9d
    iget-object v10, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v10, v10, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->jsonType:Lcom/tradplus/ads/common/serialization/annotation/JSONType;

    if-eqz v10, :cond_c4

    iget-object v10, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v10, v10, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->jsonType:Lcom/tradplus/ads/common/serialization/annotation/JSONType;

    invoke-interface {v10}, Lcom/tradplus/ads/common/serialization/annotation/JSONType;->seeAlso()[Ljava/lang/Class;

    move-result-object v10

    array-length v14, v10

    const/4 v6, 0x0

    :goto_ad
    if-ge v6, v14, :cond_c4

    aget-object v5, v10, v6

    const-class v4, Ljava/lang/Enum;

    invoke-virtual {v4, v5}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v4
    :try_end_b7
    .catchall {:try_start_9d .. :try_end_b7} :catchall_49

    if-eqz v4, :cond_c1

    :try_start_b9
    invoke-static {v5, v3}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;

    move-result-object v1
    :try_end_bd
    .catch Ljava/lang/IllegalArgumentException; {:try_start_b9 .. :try_end_bd} :catch_c1
    .catchall {:try_start_b9 .. :try_end_bd} :catchall_49

    invoke-virtual {v9, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v1

    :catch_c1
    :cond_c1
    add-int/lit8 v6, v6, 0x1

    goto :goto_ad

    :cond_c4
    if-ne v1, v2, :cond_d8

    :try_start_c6
    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->getCurrent()C

    move-result v2

    const/16 v3, 0x5d

    if-ne v2, v3, :cond_d8

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->next()C

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken()V
    :try_end_d4
    .catchall {:try_start_c6 .. :try_end_d4} :catchall_49

    invoke-virtual {v9, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v15

    :cond_d8
    :try_start_d8
    iget-object v2, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v2, v2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->factoryMethod:Ljava/lang/reflect/Method;

    if-eqz v2, :cond_12d

    iget-object v2, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v2, v2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    array-length v2, v2
    :try_end_e3
    .catchall {:try_start_d8 .. :try_end_e3} :catchall_49

    const/4 v3, 0x1

    if-ne v2, v3, :cond_12d

    :try_start_e6
    iget-object v2, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v2, v2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    const/4 v3, 0x0

    aget-object v2, v2, v3

    iget-object v3, v2, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    const-class v4, Ljava/lang/Integer;

    if-ne v3, v4, :cond_109

    const/4 v3, 0x2

    if-ne v1, v3, :cond_12d

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->intValue()I

    move-result v1

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken()V

    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    invoke-direct {v8, v13, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1
    :try_end_105
    .catch Ljava/lang/Exception; {:try_start_e6 .. :try_end_105} :catch_121
    .catchall {:try_start_e6 .. :try_end_105} :catchall_49

    invoke-virtual {v9, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v1

    :cond_109
    :try_start_109
    iget-object v2, v2, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    const-class v3, Ljava/lang/String;

    if-ne v2, v3, :cond_12d

    const/4 v2, 0x4

    if-ne v1, v2, :cond_12d

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->stringVal()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken()V

    invoke-direct {v8, v13, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1
    :try_end_11d
    .catch Ljava/lang/Exception; {:try_start_109 .. :try_end_11d} :catch_121
    .catchall {:try_start_109 .. :try_end_11d} :catchall_49

    invoke-virtual {v9, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v1

    :catch_121
    move-exception v0

    move-object v1, v0

    :try_start_123
    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    invoke-virtual {v1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object v3

    invoke-direct {v2, v3, v1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v2

    :cond_12d
    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "syntax error, expect {, actual "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->tokenName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v2, ", pos "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->pos()I

    move-result v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    instance-of v2, v11, Ljava/lang/String;

    if-eqz v2, :cond_156

    const-string v2, ", fieldName "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    :cond_156
    const-string v2, ", fastjson-version "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v2, "1.2.74"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v2, v1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v2
    :try_end_16a
    .catchall {:try_start_123 .. :try_end_16a} :catchall_49

    :cond_16a
    :try_start_16a
    iget v1, v9, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveStatus:I
    :try_end_16c
    .catchall {:try_start_16a .. :try_end_16c} :catchall_9b6

    const/4 v2, 0x2

    if-ne v1, v2, :cond_173

    const/4 v5, 0x0

    :try_start_170
    iput v5, v9, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveStatus:I
    :try_end_172
    .catchall {:try_start_170 .. :try_end_172} :catchall_49

    goto :goto_174

    :cond_173
    const/4 v5, 0x0

    :goto_174
    :try_start_174
    iget-object v1, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v6, v1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->typeKey:Ljava/lang/String;
    :try_end_178
    .catchall {:try_start_174 .. :try_end_178} :catchall_9b6

    move-object/from16 v1, p4

    move-object/from16 v2, p6

    move-object v5, v15

    move-object/from16 v17, v5

    const/4 v3, 0x0

    const/4 v4, 0x0

    :goto_181
    :try_start_181
    iget-object v15, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v15, v15
    :try_end_184
    .catchall {:try_start_181 .. :try_end_184} :catchall_9ae

    if-ge v4, v15, :cond_1b2

    if-ge v3, v14, :cond_1b2

    :try_start_188
    iget-object v15, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    aget-object v15, v15, v4

    iget-object v14, v15, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    move/from16 p4, v4

    iget-object v4, v14, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    invoke-virtual {v14}, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->getAnnotation()Lcom/tradplus/ads/common/serialization/annotation/JSONField;

    move-result-object v21

    if-eqz v21, :cond_1a6

    move-object/from16 p6, v4

    instance-of v4, v15, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;

    if-eqz v4, :cond_1a8

    move-object v4, v15

    check-cast v4, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;

    iget-boolean v4, v4, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;->b:Z
    :try_end_1a3
    .catchall {:try_start_188 .. :try_end_1a3} :catchall_1ac

    move-object/from16 v10, p6

    goto :goto_1ba

    :cond_1a6
    move-object/from16 p6, v4

    :cond_1a8
    move-object/from16 v10, p6

    const/4 v4, 0x0

    goto :goto_1ba

    :catchall_1ac
    move-exception v0

    :goto_1ad
    move-object v15, v5

    move-object v3, v7

    :goto_1af
    move-object v5, v1

    goto/16 :goto_9bb

    :cond_1b2
    move/from16 p4, v4

    const/4 v4, 0x0

    const/4 v10, 0x0

    const/4 v14, 0x0

    const/4 v15, 0x0

    const/16 v21, 0x0

    :goto_1ba
    const-wide/16 v22, 0x0

    const/16 v24, 0x0

    const-wide/16 v25, 0x0

    if-eqz v15, :cond_39f

    move-object/from16 p6, v2

    :try_start_1c4
    iget-object v2, v14, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->name_chars:[C
    :try_end_1c6
    .catchall {:try_start_1c4 .. :try_end_1c6} :catchall_395

    if-eqz v4, :cond_1d6

    :try_start_1c8
    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchField([C)Z

    move-result v4
    :try_end_1cc
    .catchall {:try_start_1c8 .. :try_end_1cc} :catchall_1ac

    if-eqz v4, :cond_1d6

    move-object/from16 v27, v1

    :goto_1d0
    move-object/from16 v29, v10

    const/4 v1, 0x0

    const/4 v2, 0x1

    goto/16 :goto_3a7

    :cond_1d6
    :try_start_1d6
    sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
    :try_end_1d8
    .catchall {:try_start_1d6 .. :try_end_1d8} :catchall_395

    move-object/from16 v27, v1

    const/4 v1, -0x2

    if-eq v10, v4, :cond_36c

    :try_start_1dd
    const-class v4, Ljava/lang/Integer;

    if-ne v10, v4, :cond_1e3

    goto/16 :goto_36c

    :cond_1e3
    sget-object v4, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-eq v10, v4, :cond_34c

    const-class v4, Ljava/lang/Long;

    if-ne v10, v4, :cond_1ed

    goto/16 :goto_34c

    :cond_1ed
    const-class v4, Ljava/lang/String;

    if-ne v10, v4, :cond_20b

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldString([C)Ljava/lang/String;

    move-result-object v2

    iget v4, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v4, :cond_200

    :goto_1f9
    move-object v1, v2

    :goto_1fa
    move-object/from16 v29, v10

    :goto_1fc
    const/4 v2, 0x1

    const/4 v4, 0x1

    goto/16 :goto_3a8

    :cond_200
    iget v4, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-ne v4, v1, :cond_206

    goto/16 :goto_389

    :cond_206
    move-object v1, v2

    :cond_207
    move-object/from16 v29, v10

    goto/16 :goto_3a6

    :cond_20b
    const-class v4, Ljava/util/Date;

    if-ne v10, v4, :cond_222

    iget-object v4, v14, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->format:Ljava/lang/String;

    if-nez v4, :cond_222

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldDate([C)Ljava/util/Date;

    move-result-object v2

    iget v4, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v4, :cond_21c

    goto :goto_1f9

    :cond_21c
    iget v4, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-ne v4, v1, :cond_206

    goto/16 :goto_389

    :cond_222
    const-class v4, Ljava/math/BigDecimal;

    if-ne v10, v4, :cond_235

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldDecimal([C)Ljava/math/BigDecimal;

    move-result-object v2

    iget v4, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v4, :cond_22f

    goto :goto_1f9

    :cond_22f
    iget v4, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-ne v4, v1, :cond_206

    goto/16 :goto_389

    :cond_235
    const-class v4, Ljava/math/BigInteger;

    if-ne v10, v4, :cond_248

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldBigInteger([C)Ljava/math/BigInteger;

    move-result-object v2

    iget v4, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v4, :cond_242

    goto :goto_1f9

    :cond_242
    iget v4, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-ne v4, v1, :cond_206

    goto/16 :goto_389

    :cond_248
    sget-object v4, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    if-eq v10, v4, :cond_330

    const-class v4, Ljava/lang/Boolean;

    if-ne v10, v4, :cond_252

    goto/16 :goto_330

    :cond_252
    sget-object v4, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-eq v10, v4, :cond_310

    const-class v4, Ljava/lang/Float;

    if-ne v10, v4, :cond_25c

    goto/16 :goto_310

    :cond_25c
    sget-object v4, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-eq v10, v4, :cond_2ec

    const-class v4, Ljava/lang/Double;

    if-ne v10, v4, :cond_266

    goto/16 :goto_2ec

    :cond_266
    invoke-virtual {v10}, Ljava/lang/Class;->isEnum()Z

    move-result v4

    if-eqz v4, :cond_2a3

    invoke-virtual/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getConfig()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    move-result-object v4

    invoke-virtual {v4, v10}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v4

    instance-of v4, v4, Lcom/tradplus/ads/common/serialization/parser/deserializer/EnumDeserializer;

    if-eqz v4, :cond_2a3

    if-eqz v21, :cond_282

    invoke-interface/range {v21 .. v21}, Lcom/tradplus/ads/common/serialization/annotation/JSONField;->deserializeUsing()Ljava/lang/Class;

    move-result-object v4

    const-class v1, Ljava/lang/Void;

    if-ne v4, v1, :cond_2a3

    :cond_282
    instance-of v1, v15, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;

    if-eqz v1, :cond_3a3

    move-object v1, v15

    check-cast v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;

    iget-object v1, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;->a:Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    invoke-virtual {v8, v12, v2, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a(Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;[CLcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)Ljava/lang/Enum;

    move-result-object v1

    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v2, :cond_296

    const/4 v2, 0x1

    const/4 v4, 0x1

    goto :goto_29f

    :cond_296
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v4, -0x2

    if-ne v2, v4, :cond_29d

    goto/16 :goto_389

    :cond_29d
    const/4 v2, 0x0

    const/4 v4, 0x0

    :goto_29f
    move-object/from16 v29, v10

    goto/16 :goto_3a8

    :cond_2a3
    const-class v1, [I

    if-ne v10, v1, :cond_2b8

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldIntArray([C)[I

    move-result-object v1

    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v2, :cond_2b1

    :goto_2af
    goto/16 :goto_1fa

    :cond_2b1
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v4, -0x2

    if-ne v2, v4, :cond_207

    goto/16 :goto_389

    :cond_2b8
    const-class v1, [F

    if-ne v10, v1, :cond_2cc

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldFloatArray([C)[F

    move-result-object v1

    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v2, :cond_2c5

    goto :goto_2af

    :cond_2c5
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v4, -0x2

    if-ne v2, v4, :cond_207

    goto/16 :goto_389

    :cond_2cc
    const-class v1, [[F

    if-ne v10, v1, :cond_2e0

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldFloatArray2([C)[[F

    move-result-object v1

    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v2, :cond_2d9

    goto :goto_2af

    :cond_2d9
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v4, -0x2

    if-ne v2, v4, :cond_207

    goto/16 :goto_389

    :cond_2e0
    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchField([C)Z

    move-result v1

    if-eqz v1, :cond_2e8

    goto/16 :goto_1d0

    :cond_2e8
    move/from16 v21, v3

    goto/16 :goto_3d3

    :cond_2ec
    :goto_2ec
    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldDouble([C)D

    move-result-wide v1

    cmpl-double v4, v1, v22

    if-nez v4, :cond_2fd

    iget v4, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    move-object/from16 v29, v10

    const/4 v10, 0x5

    if-ne v4, v10, :cond_2ff

    const/4 v1, 0x0

    goto :goto_303

    :cond_2fd
    move-object/from16 v29, v10

    :cond_2ff
    invoke-static {v1, v2}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;

    move-result-object v1

    :goto_303
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v2, :cond_309

    :goto_307
    goto/16 :goto_1fc

    :cond_309
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v4, -0x2

    if-ne v2, v4, :cond_3a6

    goto/16 :goto_389

    :cond_310
    :goto_310
    move-object/from16 v29, v10

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldFloat([C)F

    move-result v1

    cmpl-float v2, v1, v24

    if-nez v2, :cond_321

    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v4, 0x5

    if-ne v2, v4, :cond_321

    const/4 v1, 0x0

    goto :goto_325

    :cond_321
    invoke-static {v1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;

    move-result-object v1

    :goto_325
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v2, :cond_32a

    goto :goto_307

    :cond_32a
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v4, -0x2

    if-ne v2, v4, :cond_3a6

    goto :goto_389

    :cond_330
    :goto_330
    move-object/from16 v29, v10

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldBoolean([C)Z

    move-result v1

    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v4, 0x5

    if-ne v2, v4, :cond_33d

    const/4 v1, 0x0

    goto :goto_341

    :cond_33d
    invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v1

    :goto_341
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v2, :cond_346

    goto :goto_307

    :cond_346
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v4, -0x2

    if-ne v2, v4, :cond_3a6

    goto :goto_389

    :cond_34c
    :goto_34c
    move-object/from16 v29, v10

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldLong([C)J

    move-result-wide v1

    cmp-long v4, v1, v25

    if-nez v4, :cond_35d

    iget v4, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v10, 0x5

    if-ne v4, v10, :cond_35d

    const/4 v1, 0x0

    goto :goto_361

    :cond_35d
    invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v1

    :goto_361
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v2, :cond_366

    goto :goto_307

    :cond_366
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v4, -0x2

    if-ne v2, v4, :cond_3a6

    goto :goto_389

    :cond_36c
    :goto_36c
    move-object/from16 v29, v10

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldInt([C)I

    move-result v1

    if-nez v1, :cond_37b

    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v4, 0x5

    if-ne v2, v4, :cond_37b

    const/4 v1, 0x0

    goto :goto_37f

    :cond_37b
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    :goto_37f
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    if-lez v2, :cond_384

    goto :goto_307

    :cond_384
    iget v2, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I
    :try_end_386
    .catchall {:try_start_1dd .. :try_end_386} :catchall_3d9

    const/4 v4, -0x2

    if-ne v2, v4, :cond_3a6

    :goto_389
    add-int/lit8 v3, v3, 0x1

    move/from16 v10, p4

    move/from16 v16, v3

    move-object v15, v6

    move-object v3, v7

    move-object/from16 v20, v17

    goto/16 :goto_55d

    :catchall_395
    move-exception v0

    move-object/from16 v27, v1

    :goto_398
    move-object v1, v0

    move-object v15, v5

    move-object v3, v7

    move-object/from16 v5, v27

    goto/16 :goto_9bc

    :cond_39f
    move-object/from16 v27, v1

    move-object/from16 p6, v2

    :cond_3a3
    move-object/from16 v29, v10

    const/4 v1, 0x0

    :cond_3a6
    :goto_3a6
    const/4 v2, 0x0

    :goto_3a7
    const/4 v4, 0x0

    :goto_3a8
    if-nez v2, :cond_57e

    :try_start_3aa
    iget-object v10, v9, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;

    invoke-virtual {v12, v10}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanSymbol(Lcom/tradplus/ads/common/serialization/parser/SymbolTable;)Ljava/lang/String;

    move-result-object v10
    :try_end_3b0
    .catchall {:try_start_3aa .. :try_end_3b0} :catchall_579

    if-nez v10, :cond_3db

    move/from16 v21, v3

    :try_start_3b4
    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v3

    move-object/from16 v28, v1

    const/16 v1, 0xd

    if-ne v3, v1, :cond_3c7

    const/16 v1, 0x10

    invoke-virtual {v12, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken(I)V

    move-object/from16 v1, v27

    goto/16 :goto_54a

    :cond_3c7
    const/16 v1, 0x10

    if-ne v3, v1, :cond_3df

    sget-object v1, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowArbitraryCommas:Lcom/tradplus/ads/common/serialization/parser/Feature;

    invoke-virtual {v12, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z

    move-result v1
    :try_end_3d1
    .catchall {:try_start_3b4 .. :try_end_3d1} :catchall_3d9

    if-eqz v1, :cond_3df

    :goto_3d3
    move-object/from16 v1, v27

    const/16 v3, 0xd

    goto/16 :goto_553

    :catchall_3d9
    move-exception v0

    goto :goto_398

    :cond_3db
    move-object/from16 v28, v1

    move/from16 v21, v3

    :cond_3df
    :try_start_3df
    const-string v1, "$ref"
    :try_end_3e1
    .catchall {:try_start_3df .. :try_end_3e1} :catchall_579

    if-ne v1, v10, :cond_4bb

    if-eqz v7, :cond_4bb

    const/4 v1, 0x4

    :try_start_3e6
    invoke-virtual {v12, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextTokenWithColon(I)V

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v2

    if-ne v2, v1, :cond_4a0

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->stringVal()Ljava/lang/String;

    move-result-object v1

    const-string v2, "@"

    invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_3ff

    iget-object v1, v7, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    goto/16 :goto_47d

    :cond_3ff
    const-string v2, ".."

    invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_420

    iget-object v2, v7, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->parent:Lcom/tradplus/ads/common/serialization/parser/ParseContext;

    iget-object v3, v2, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    if-eqz v3, :cond_412

    iget-object v1, v2, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    :goto_40f
    move-object/from16 v27, v1

    goto :goto_41d

    :cond_412
    new-instance v3, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;

    invoke-direct {v3, v2, v1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParseContext;Ljava/lang/String;)V

    invoke-virtual {v9, v3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->addResolveTask(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;)V

    const/4 v1, 0x1

    :goto_41b
    iput v1, v9, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveStatus:I

    :goto_41d
    move-object/from16 v1, v27

    goto :goto_47d

    :cond_420
    const-string v2, "$"

    invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_441

    move-object v2, v7

    :goto_429
    iget-object v3, v2, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->parent:Lcom/tradplus/ads/common/serialization/parser/ParseContext;

    if-eqz v3, :cond_430

    iget-object v2, v2, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->parent:Lcom/tradplus/ads/common/serialization/parser/ParseContext;

    goto :goto_429

    :cond_430
    iget-object v3, v2, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    if-eqz v3, :cond_437

    iget-object v1, v2, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    goto :goto_40f

    :cond_437
    new-instance v3, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;

    invoke-direct {v3, v2, v1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParseContext;Ljava/lang/String;)V

    invoke-virtual {v9, v3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->addResolveTask(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;)V

    const/4 v1, 0x1

    goto :goto_41b

    :cond_441
    const/16 v2, 0x5c

    invoke-virtual {v1, v2}, Ljava/lang/String;->indexOf(I)I

    move-result v3

    if-lez v3, :cond_46b

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    const/4 v4, 0x0

    :goto_44f
    invoke-virtual {v1}, Ljava/lang/String;->length()I

    move-result v6

    if-ge v4, v6, :cond_467

    invoke-virtual {v1, v4}, Ljava/lang/String;->charAt(I)C

    move-result v6

    if-ne v6, v2, :cond_461

    add-int/lit8 v4, v4, 0x1

    invoke-virtual {v1, v4}, Ljava/lang/String;->charAt(I)C

    move-result v6

    :cond_461
    invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    const/4 v6, 0x1

    add-int/2addr v4, v6

    goto :goto_44f

    :cond_467
    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    :cond_46b
    invoke-virtual {v9, v1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveReference(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v2

    if-eqz v2, :cond_473

    move-object v1, v2

    goto :goto_47d

    :cond_473
    new-instance v2, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;

    invoke-direct {v2, v7, v1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParseContext;Ljava/lang/String;)V

    invoke-virtual {v9, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->addResolveTask(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;)V
    :try_end_47b
    .catchall {:try_start_3e6 .. :try_end_47b} :catchall_3d9

    const/4 v1, 0x1

    goto :goto_41b

    :goto_47d
    const/16 v2, 0xd

    :try_start_47f
    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken(I)V

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v3

    if-ne v3, v2, :cond_498

    const/16 v2, 0x10

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken(I)V

    invoke-virtual {v9, v7, v1, v11}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;
    :try_end_490
    .catchall {:try_start_47f .. :try_end_490} :catchall_1ac

    if-eqz v5, :cond_494

    iput-object v1, v5, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    :cond_494
    invoke-virtual {v9, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v1

    :cond_498
    :try_start_498
    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    const-string v3, "illegal ref"

    invoke-direct {v2, v3}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v2
    :try_end_4a0
    .catchall {:try_start_498 .. :try_end_4a0} :catchall_1ac

    :cond_4a0
    :try_start_4a0
    new-instance v1, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, "illegal ref, "

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-static {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONToken;->name(I)Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-direct {v1, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v1

    :cond_4bb
    if-eqz v6, :cond_4c3

    invoke-virtual {v6, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1
    :try_end_4c1
    .catchall {:try_start_4a0 .. :try_end_4c1} :catchall_3d9

    if-nez v1, :cond_4c7

    :cond_4c3
    :try_start_4c3
    sget-object v1, Lcom/tradplus/ads/common/serialization/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;

    if-ne v1, v10, :cond_574

    :cond_4c7
    const/4 v1, 0x4

    invoke-virtual {v12, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextTokenWithColon(I)V

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v2

    if-ne v2, v1, :cond_56a

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->stringVal()Ljava/lang/String;

    move-result-object v1

    const/16 v2, 0x10

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken(I)V

    iget-object v2, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v2, v2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->typeName:Ljava/lang/String;

    invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-nez v2, :cond_53d

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/Feature;->IgnoreAutoType:Lcom/tradplus/ads/common/serialization/parser/Feature;

    invoke-virtual {v9, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z

    move-result v2

    if-eqz v2, :cond_4ed

    goto :goto_53d

    :cond_4ed
    iget-object v2, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    invoke-static {v13, v2, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    move-result-object v2
    :try_end_4f3
    .catchall {:try_start_4c3 .. :try_end_4f3} :catchall_579

    if-nez v2, :cond_51d

    :try_start_4f5
    invoke-static/range {p2 .. p2}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->getClass(Ljava/lang/reflect/Type;)Ljava/lang/Class;

    move-result-object v2

    iget-object v3, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->k:Lcom/tradplus/ads/common/serialization/parser/ParserConfig$AutoTypeCheckHandler;

    if-eqz v3, :cond_508

    iget-object v3, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->k:Lcom/tradplus/ads/common/serialization/parser/ParserConfig$AutoTypeCheckHandler;

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->getFeatures()I

    move-result v4

    invoke-interface {v3, v1, v2, v4}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig$AutoTypeCheckHandler;->handler(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;

    move-result-object v15

    goto :goto_509

    :cond_508
    const/4 v15, 0x0

    :goto_509
    if-nez v15, :cond_514

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->getFeatures()I

    move-result v3

    invoke-virtual {v13, v1, v2, v3}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;

    move-result-object v2

    move-object v15, v2

    :cond_514
    invoke-virtual/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getConfig()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    move-result-object v2

    invoke-virtual {v2, v15}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v2
    :try_end_51c
    .catchall {:try_start_4f5 .. :try_end_51c} :catchall_3d9

    goto :goto_51e

    :cond_51d
    const/4 v15, 0x0

    :goto_51e
    :try_start_51e
    invoke-interface {v2, v9, v15, v11}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v3

    instance-of v4, v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;
    :try_end_524
    .catchall {:try_start_51e .. :try_end_524} :catchall_579

    if-eqz v4, :cond_533

    :try_start_526
    check-cast v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    if-eqz v6, :cond_533

    invoke-virtual {v2, v6}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object v2

    if-eqz v2, :cond_533

    invoke-virtual {v2, v3, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/String;)V
    :try_end_533
    .catchall {:try_start_526 .. :try_end_533} :catchall_3d9

    :cond_533
    if-eqz v5, :cond_539

    move-object/from16 v1, v27

    iput-object v1, v5, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    :cond_539
    invoke-virtual {v9, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v3

    :cond_53d
    :goto_53d
    move-object/from16 v1, v27

    :try_start_53f
    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v2

    const/16 v3, 0xd

    if-ne v2, v3, :cond_553

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken()V

    :goto_54a
    move-object v15, v5

    move-object/from16 v30, v7

    move-object/from16 v2, v17

    const/16 p4, 0x0

    goto/16 :goto_6e3

    :cond_553
    :goto_553
    move/from16 v10, p4

    move-object/from16 v27, v1

    move-object v15, v6

    move-object v3, v7

    move-object/from16 v20, v17

    move/from16 v16, v21

    :goto_55d
    const/4 v1, 0x0

    const/16 v2, 0x10

    const/4 v4, 0x0

    const/4 v6, 0x1

    const/16 v14, 0xd

    const/16 v21, 0x4

    move-object/from16 v17, p6

    goto/16 :goto_968

    :cond_56a
    move-object/from16 v1, v27

    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    const-string v3, "syntax error"

    invoke-direct {v2, v3}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v2
    :try_end_574
    .catchall {:try_start_53f .. :try_end_574} :catchall_1ac

    :cond_574
    move-object/from16 v1, v27

    const/16 v3, 0xd

    goto :goto_587

    :catchall_579
    move-exception v0

    move-object/from16 v1, v27

    goto/16 :goto_1ad

    :cond_57e
    move-object/from16 v28, v1

    move/from16 v21, v3

    move-object/from16 v1, v27

    const/16 v3, 0xd

    const/4 v10, 0x0

    :goto_587
    if-nez v1, :cond_5cc

    if-nez v17, :cond_5cc

    :try_start_58b
    invoke-virtual/range {p0 .. p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->createInstance(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;)Ljava/lang/Object;

    move-result-object v1

    if-nez v1, :cond_59e

    new-instance v3, Ljava/util/HashMap;
    :try_end_593
    .catchall {:try_start_58b .. :try_end_593} :catchall_5c5

    move-object/from16 v27, v5

    :try_start_595
    iget-object v5, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->c:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v5, v5

    invoke-direct {v3, v5}, Ljava/util/HashMap;-><init>(I)V

    move-object/from16 v17, v3

    goto :goto_5a0

    :cond_59e
    move-object/from16 v27, v5

    :goto_5a0
    invoke-virtual {v9, v7, v1, v11}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;

    move-result-object v3
    :try_end_5a4
    .catchall {:try_start_595 .. :try_end_5a4} :catchall_5c3

    if-nez p6, :cond_5bf

    :try_start_5a6
    iget-object v5, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->c:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v5, v5

    div-int/lit8 v5, v5, 0x20

    const/16 v20, 0x1

    add-int/lit8 v5, v5, 0x1

    new-array v5, v5, [I
    :try_end_5b1
    .catchall {:try_start_5a6 .. :try_end_5b1} :catchall_5b9

    move-object/from16 v27, v3

    move-object/from16 v3, v17

    move-object/from16 v17, v5

    move-object v5, v1

    goto :goto_5d3

    :catchall_5b9
    move-exception v0

    move-object v5, v1

    move-object v15, v3

    move-object v3, v7

    goto/16 :goto_9bb

    :cond_5bf
    move-object v5, v1

    move-object/from16 v27, v3

    goto :goto_5cf

    :catchall_5c3
    move-exception v0

    goto :goto_5c8

    :catchall_5c5
    move-exception v0

    move-object/from16 v27, v5

    :goto_5c8
    move-object v5, v1

    move-object v3, v7

    goto/16 :goto_9b3

    :cond_5cc
    move-object/from16 v27, v5

    move-object v5, v1

    :goto_5cf
    move-object/from16 v3, v17

    move-object/from16 v17, p6

    :goto_5d3
    if-eqz v2, :cond_664

    if-nez v4, :cond_5ef

    move-object/from16 v4, p2

    :try_start_5d9
    invoke-virtual {v15, v9, v5, v4, v3}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->parseField(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/util/Map;)V

    :cond_5dc
    move/from16 v10, p4

    move-object/from16 v20, v3

    move-object/from16 v19, v5

    move-object v15, v6

    move-object/from16 v30, v7

    move/from16 v16, v21

    const/16 p4, 0x0

    const/16 v14, 0xd

    const/16 v21, 0x4

    goto/16 :goto_6c8

    :cond_5ef
    move-object/from16 v4, p2

    move-object/from16 v1, v29

    if-nez v5, :cond_5fd

    iget-object v1, v14, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->name:Ljava/lang/String;

    move-object/from16 v2, v28

    invoke-interface {v3, v1, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_645

    :cond_5fd
    move-object/from16 v2, v28

    if-nez v2, :cond_619

    sget-object v10, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    if-eq v1, v10, :cond_645

    sget-object v10, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-eq v1, v10, :cond_645

    sget-object v10, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-eq v1, v10, :cond_645

    sget-object v10, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-eq v1, v10, :cond_645

    sget-object v10, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    if-eq v1, v10, :cond_645

    invoke-virtual {v15, v5, v2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V

    goto :goto_645

    :cond_619
    const-class v10, Ljava/lang/String;

    if-ne v1, v10, :cond_641

    sget-object v1, Lcom/tradplus/ads/common/serialization/parser/Feature;->TrimStringFieldValue:Lcom/tradplus/ads/common/serialization/parser/Feature;

    iget v1, v1, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I

    and-int v1, p5, v1

    if-nez v1, :cond_639

    iget-object v1, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget v1, v1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->parserFeatures:I

    sget-object v10, Lcom/tradplus/ads/common/serialization/parser/Feature;->TrimStringFieldValue:Lcom/tradplus/ads/common/serialization/parser/Feature;

    iget v10, v10, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I

    and-int/2addr v1, v10

    if-nez v1, :cond_639

    iget v1, v14, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->parserFeatures:I

    sget-object v10, Lcom/tradplus/ads/common/serialization/parser/Feature;->TrimStringFieldValue:Lcom/tradplus/ads/common/serialization/parser/Feature;

    iget v10, v10, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I

    and-int/2addr v1, v10

    if-eqz v1, :cond_641

    :cond_639
    move-object v1, v2

    check-cast v1, Ljava/lang/String;

    invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String;

    move-result-object v1

    goto :goto_642

    :cond_641
    move-object v1, v2

    :goto_642
    invoke-virtual {v15, v5, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V

    :cond_645
    :goto_645
    if-eqz v17, :cond_654

    div-int/lit8 v1, p4, 0x20

    rem-int/lit8 v2, p4, 0x20

    aget v10, v17, v1

    const/4 v14, 0x1

    shl-int v2, v14, v2

    or-int/2addr v2, v10

    aput v2, v17, v1

    goto :goto_655

    :cond_654
    const/4 v14, 0x1

    :goto_655
    iget v1, v12, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I

    const/4 v15, 0x4

    if-ne v1, v15, :cond_5dc

    move-object/from16 v20, v3

    move-object/from16 v19, v5

    move-object/from16 v30, v7

    const/16 p4, 0x0

    goto/16 :goto_6dd

    :cond_664
    move-object/from16 v4, p2

    const/4 v14, 0x1

    const/4 v15, 0x4

    if-nez v3, :cond_67c

    new-instance v1, Ljava/util/HashMap;

    iget-object v2, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->c:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v2, v2

    invoke-direct {v1, v2}, Ljava/util/HashMap;-><init>(I)V
    :try_end_672
    .catchall {:try_start_5d9 .. :try_end_672} :catchall_675

    move-object/from16 v18, v1

    goto :goto_67e

    :catchall_675
    move-exception v0

    move-object v1, v0

    move-object v3, v7

    :goto_678
    move-object/from16 v15, v27

    goto/16 :goto_9bc

    :cond_67c
    move-object/from16 v18, v3

    :goto_67e
    move-object/from16 v1, p0

    move-object/from16 v2, p1

    move-object/from16 v20, v3

    move/from16 v16, v21

    const/16 v21, 0xd

    move-object v3, v10

    move/from16 v10, p4

    move-object v4, v5

    move-object/from16 v19, v5

    const/16 p4, 0x0

    move-object/from16 v5, p2

    move-object v15, v6

    const/16 v14, 0xd

    const/16 v21, 0x4

    move-object/from16 v6, v18

    move-object/from16 v30, v7

    move-object/from16 v7, v17

    :try_start_69d
    invoke-virtual/range {v1 .. v7}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->parseField(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/util/Map;[I)Z

    move-result v1
    :try_end_6a1
    .catchall {:try_start_69d .. :try_end_6a1} :catchall_9a6

    if-nez v1, :cond_6c0

    :try_start_6a3
    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v1

    if-ne v1, v14, :cond_6ad

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken()V
    :try_end_6ac
    .catchall {:try_start_6a3 .. :try_end_6ac} :catchall_6b6

    goto :goto_6dd

    :cond_6ad
    move-object/from16 v3, v30

    const/4 v1, 0x0

    const/16 v2, 0x10

    :goto_6b2
    const/4 v4, 0x0

    const/4 v6, 0x1

    goto/16 :goto_964

    :catchall_6b6
    move-exception v0

    move-object v1, v0

    move-object/from16 v5, v19

    move-object/from16 v15, v27

    move-object/from16 v3, v30

    goto/16 :goto_9bc

    :cond_6c0
    :try_start_6c0
    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v1

    const/16 v2, 0x11

    if-eq v1, v2, :cond_99a

    :goto_6c8
    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v1

    const/16 v2, 0x10

    if-ne v1, v2, :cond_6d4

    move-object/from16 v3, v30

    const/4 v1, 0x0

    goto :goto_6b2

    :cond_6d4
    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v1

    if-ne v1, v14, :cond_951

    invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken(I)V
    :try_end_6dd
    .catchall {:try_start_6c0 .. :try_end_6dd} :catchall_9a6

    :goto_6dd
    move-object/from16 v1, v19

    move-object/from16 v2, v20

    move-object/from16 v15, v27

    :goto_6e3
    if-nez v1, :cond_925

    if-nez v2, :cond_703

    :try_start_6e7
    invoke-virtual/range {p0 .. p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->createInstance(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;)Ljava/lang/Object;

    move-result-object v1
    :try_end_6eb
    .catchall {:try_start_6e7 .. :try_end_6eb} :catchall_6fe

    if-nez v15, :cond_6f4

    move-object/from16 v3, v30

    :try_start_6ef
    invoke-virtual {v9, v3, v1, v11}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;

    move-result-object v15
    :try_end_6f3
    .catchall {:try_start_6ef .. :try_end_6f3} :catchall_94e

    goto :goto_6f6

    :cond_6f4
    move-object/from16 v3, v30

    :goto_6f6
    if-eqz v15, :cond_6fa

    iput-object v1, v15, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    :cond_6fa
    invoke-virtual {v9, v3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v1

    :catchall_6fe
    move-exception v0

    move-object/from16 v3, v30

    goto/16 :goto_1af

    :cond_703
    move-object/from16 v3, v30

    :try_start_705
    iget-object v4, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v4, v4, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructorParameters:[Ljava/lang/String;

    if-eqz v4, :cond_7b8

    array-length v5, v4

    new-array v5, v5, [Ljava/lang/Object;

    const/4 v6, 0x0

    :goto_70f
    array-length v7, v4

    if-ge v6, v7, :cond_825

    aget-object v7, v4, v6

    invoke-interface {v2, v7}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v7

    if-nez v7, :cond_774

    iget-object v10, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v10, v10, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructorParameterTypes:[Ljava/lang/reflect/Type;

    aget-object v10, v10, v6

    iget-object v11, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v11, v11, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    aget-object v11, v11, v6

    sget-object v12, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;

    if-ne v10, v12, :cond_72f

    invoke-static/range {p4 .. p4}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;

    move-result-object v7

    goto :goto_772

    :cond_72f
    sget-object v12, Ljava/lang/Short;->TYPE:Ljava/lang/Class;

    if-ne v10, v12, :cond_738

    invoke-static/range {p4 .. p4}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;

    move-result-object v7

    goto :goto_772

    :cond_738
    sget-object v12, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    if-ne v10, v12, :cond_741

    invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v7

    goto :goto_772

    :cond_741
    sget-object v12, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-ne v10, v12, :cond_74a

    invoke-static/range {v25 .. v26}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v7

    goto :goto_772

    :cond_74a
    sget-object v12, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-ne v10, v12, :cond_753

    invoke-static/range {v24 .. v24}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;

    move-result-object v7

    goto :goto_772

    :cond_753
    sget-object v12, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-ne v10, v12, :cond_75c

    invoke-static/range {v22 .. v23}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;

    move-result-object v7

    goto :goto_772

    :cond_75c
    sget-object v12, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    if-ne v10, v12, :cond_763

    sget-object v7, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;

    goto :goto_772

    :cond_763
    const-class v12, Ljava/lang/String;

    if-ne v10, v12, :cond_772

    iget v10, v11, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->parserFeatures:I

    sget-object v11, Lcom/tradplus/ads/common/serialization/parser/Feature;->InitStringFieldAsEmpty:Lcom/tradplus/ads/common/serialization/parser/Feature;

    iget v11, v11, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I

    and-int/2addr v10, v11

    if-eqz v10, :cond_772

    const-string v7, ""

    :cond_772
    :goto_772
    const/4 v12, 0x0

    goto :goto_7b0

    :cond_774
    iget-object v10, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v10, v10, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructorParameterTypes:[Ljava/lang/reflect/Type;

    if-eqz v10, :cond_772

    iget-object v10, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v10, v10, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructorParameterTypes:[Ljava/lang/reflect/Type;

    array-length v10, v10

    if-ge v6, v10, :cond_772

    iget-object v10, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v10, v10, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructorParameterTypes:[Ljava/lang/reflect/Type;

    aget-object v10, v10, v6

    instance-of v11, v10, Ljava/lang/Class;

    if-eqz v11, :cond_772

    check-cast v10, Ljava/lang/Class;

    invoke-virtual {v10, v7}, Ljava/lang/Class;->isInstance(Ljava/lang/Object;)Z

    move-result v11

    if-nez v11, :cond_772

    instance-of v11, v7, Ljava/util/List;

    if-eqz v11, :cond_772

    move-object v11, v7

    check-cast v11, Ljava/util/List;

    invoke-interface {v11}, Ljava/util/List;->size()I

    move-result v12

    const/4 v13, 0x1

    if-ne v12, v13, :cond_772

    const/4 v12, 0x0

    invoke-interface {v11, v12}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v13

    invoke-virtual {v10, v13}, Ljava/lang/Class;->isInstance(Ljava/lang/Object;)Z

    move-result v10

    if-eqz v10, :cond_7b0

    invoke-interface {v11, v12}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v7

    :cond_7b0
    :goto_7b0
    aput-object v7, v5, v6

    add-int/lit8 v6, v6, 0x1

    const/16 p4, 0x0

    goto/16 :goto_70f

    :cond_7b8
    const/4 v12, 0x0

    iget-object v5, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v5, v5, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    array-length v6, v5

    new-array v7, v6, [Ljava/lang/Object;

    const/4 v10, 0x0

    :goto_7c1
    if-ge v10, v6, :cond_824

    aget-object v11, v5, v10

    iget-object v13, v11, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->name:Ljava/lang/String;

    invoke-interface {v2, v13}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v13

    if-nez v13, :cond_81e

    iget-object v14, v11, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type;

    sget-object v12, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;

    if-ne v14, v12, :cond_7d9

    const/4 v12, 0x0

    invoke-static {v12}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;

    move-result-object v13

    goto :goto_81e

    :cond_7d9
    sget-object v12, Ljava/lang/Short;->TYPE:Ljava/lang/Class;

    if-ne v14, v12, :cond_7e3

    const/4 v12, 0x0

    invoke-static {v12}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;

    move-result-object v13

    goto :goto_81e

    :cond_7e3
    sget-object v12, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    if-ne v14, v12, :cond_7ed

    const/4 v12, 0x0

    invoke-static {v12}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v13

    goto :goto_81e

    :cond_7ed
    sget-object v12, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-ne v14, v12, :cond_7f6

    invoke-static/range {v25 .. v26}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v13

    goto :goto_81e

    :cond_7f6
    sget-object v12, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-ne v14, v12, :cond_7ff

    invoke-static/range {v24 .. v24}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;

    move-result-object v13

    goto :goto_81e

    :cond_7ff
    sget-object v12, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-ne v14, v12, :cond_808

    invoke-static/range {v22 .. v23}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;

    move-result-object v13

    goto :goto_81e

    :cond_808
    sget-object v12, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    if-ne v14, v12, :cond_80f

    sget-object v13, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;

    goto :goto_81e

    :cond_80f
    const-class v12, Ljava/lang/String;

    if-ne v14, v12, :cond_81e

    iget v11, v11, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->parserFeatures:I

    sget-object v12, Lcom/tradplus/ads/common/serialization/parser/Feature;->InitStringFieldAsEmpty:Lcom/tradplus/ads/common/serialization/parser/Feature;

    iget v12, v12, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I

    and-int/2addr v11, v12

    if-eqz v11, :cond_81e

    const-string v13, ""

    :cond_81e
    :goto_81e
    aput-object v13, v7, v10

    add-int/lit8 v10, v10, 0x1

    const/4 v12, 0x0

    goto :goto_7c1

    :cond_824
    move-object v5, v7

    :cond_825
    iget-object v6, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v6, v6, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructor:Ljava/lang/reflect/Constructor;

    if-eqz v6, :cond_8ef

    iget-object v6, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-boolean v6, v6, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->kotlin:Z

    if-eqz v6, :cond_858

    const/4 v6, 0x0

    :goto_832
    array-length v7, v5

    if-ge v6, v7, :cond_858

    aget-object v7, v5, v6

    if-nez v7, :cond_855

    iget-object v7, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v7, v7, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    if-eqz v7, :cond_855

    iget-object v7, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v7, v7, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    array-length v7, v7

    if-ge v6, v7, :cond_855

    iget-object v7, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v7, v7, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    aget-object v6, v7, v6

    iget-object v6, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    const-class v7, Ljava/lang/String;
    :try_end_850
    .catchall {:try_start_705 .. :try_end_850} :catchall_94e

    if-ne v6, v7, :cond_858

    const/16 v28, 0x1

    goto :goto_85a

    :cond_855
    add-int/lit8 v6, v6, 0x1

    goto :goto_832

    :cond_858
    const/16 v28, 0x0

    :goto_85a
    if-eqz v28, :cond_88e

    :try_start_85c
    iget-object v6, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v6, v6, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->kotlinDefaultConstructor:Ljava/lang/reflect/Constructor;

    if-eqz v6, :cond_88e

    iget-object v6, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v6, v6, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->kotlinDefaultConstructor:Ljava/lang/reflect/Constructor;

    const/4 v7, 0x0

    new-array v10, v7, [Ljava/lang/Object;

    invoke-virtual {v6, v10}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    const/4 v6, 0x0

    :goto_86e
    array-length v7, v5

    if-ge v6, v7, :cond_896

    aget-object v7, v5, v6

    if-eqz v7, :cond_88b

    iget-object v10, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v10, v10, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    if-eqz v10, :cond_88b

    iget-object v10, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v10, v10, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    array-length v10, v10

    if-ge v6, v10, :cond_88b

    iget-object v10, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v10, v10, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    aget-object v10, v10, v6

    invoke-virtual {v10, v1, v7}, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->set(Ljava/lang/Object;Ljava/lang/Object;)V

    :cond_88b
    add-int/lit8 v6, v6, 0x1

    goto :goto_86e

    :cond_88e
    iget-object v6, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v6, v6, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructor:Ljava/lang/reflect/Constructor;

    invoke-virtual {v6, v5}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1
    :try_end_896
    .catch Ljava/lang/Exception; {:try_start_85c .. :try_end_896} :catch_8c0
    .catchall {:try_start_85c .. :try_end_896} :catchall_94e

    :cond_896
    if-eqz v4, :cond_920

    :try_start_898
    invoke-interface {v2}, Ljava/util/Map;->entrySet()Ljava/util/Set;

    move-result-object v2

    invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v2

    :cond_8a0
    :goto_8a0
    invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z

    move-result v4

    if-eqz v4, :cond_920

    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Ljava/util/Map$Entry;

    invoke-interface {v4}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v5

    check-cast v5, Ljava/lang/String;

    invoke-virtual {v8, v5}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object v5

    if-eqz v5, :cond_8a0

    invoke-interface {v4}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v4

    invoke-virtual {v5, v1, v4}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V
    :try_end_8bf
    .catchall {:try_start_898 .. :try_end_8bf} :catchall_94e

    goto :goto_8a0

    :catch_8c0
    move-exception v0

    move-object v2, v1

    move-object v1, v0

    :try_start_8c3
    new-instance v5, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v6, Ljava/lang/StringBuilder;

    invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V

    const-string v7, "create instance error, "

    invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    const-string v4, ", "

    invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object v4, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v4, v4, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructor:Ljava/lang/reflect/Constructor;

    invoke-virtual {v4}, Ljava/lang/reflect/Constructor;->toGenericString()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-direct {v5, v4, v1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v5
    :try_end_8ea
    .catchall {:try_start_8c3 .. :try_end_8ea} :catchall_8ea

    :catchall_8ea
    move-exception v0

    move-object v1, v0

    move-object v5, v2

    goto/16 :goto_9bc

    :cond_8ef
    :try_start_8ef
    iget-object v2, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v2, v2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->factoryMethod:Ljava/lang/reflect/Method;
    :try_end_8f3
    .catchall {:try_start_8ef .. :try_end_8f3} :catchall_94e

    if-eqz v2, :cond_920

    :try_start_8f5
    iget-object v2, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v2, v2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->factoryMethod:Ljava/lang/reflect/Method;

    const/4 v4, 0x0

    invoke-virtual {v2, v4, v5}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1
    :try_end_8fe
    .catch Ljava/lang/Exception; {:try_start_8f5 .. :try_end_8fe} :catch_8ff
    .catchall {:try_start_8f5 .. :try_end_8fe} :catchall_94e

    goto :goto_920

    :catch_8ff
    move-exception v0

    move-object v2, v0

    :try_start_901
    new-instance v4, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v5, Ljava/lang/StringBuilder;

    invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V

    const-string v6, "create factory method error, "

    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object v6, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v6, v6, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->factoryMethod:Ljava/lang/reflect/Method;

    invoke-virtual {v6}, Ljava/lang/reflect/Method;->toString()Ljava/lang/String;

    move-result-object v6

    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v5

    invoke-direct {v4, v5, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v4

    :cond_920
    :goto_920
    if-eqz v15, :cond_927

    iput-object v1, v15, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    goto :goto_927

    :cond_925
    move-object/from16 v3, v30

    :cond_927
    :goto_927
    iget-object v2, v8, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v2, v2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->buildMethod:Ljava/lang/reflect/Method;
    :try_end_92b
    .catchall {:try_start_901 .. :try_end_92b} :catchall_94e

    if-nez v2, :cond_935

    if-eqz v15, :cond_931

    iput-object v1, v15, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    :cond_931
    invoke-virtual {v9, v3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v1

    :cond_935
    const/4 v4, 0x0

    :try_start_936
    new-array v4, v4, [Ljava/lang/Object;

    invoke-virtual {v2, v1, v4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2
    :try_end_93c
    .catch Ljava/lang/Exception; {:try_start_936 .. :try_end_93c} :catch_944
    .catchall {:try_start_936 .. :try_end_93c} :catchall_94e

    if-eqz v15, :cond_940

    iput-object v1, v15, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    :cond_940
    invoke-virtual {v9, v3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    return-object v2

    :catch_944
    move-exception v0

    move-object v2, v0

    :try_start_946
    new-instance v4, Lcom/tradplus/ads/common/serialization/JSONException;

    const-string v5, "build object error"

    invoke-direct {v4, v5, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v4
    :try_end_94e
    .catchall {:try_start_946 .. :try_end_94e} :catchall_94e

    :catchall_94e
    move-exception v0

    goto/16 :goto_1af

    :cond_951
    move-object/from16 v3, v30

    const/4 v1, 0x0

    const/4 v4, 0x0

    :try_start_955
    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v5

    const/16 v6, 0x12

    if-eq v5, v6, :cond_97b

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v5

    const/4 v6, 0x1

    if-eq v5, v6, :cond_97b

    :goto_964
    move-object/from16 v5, v27

    move-object/from16 v27, v19

    :goto_968
    add-int/lit8 v7, v10, 0x1

    move-object/from16 v10, p2

    move v4, v7

    move-object v6, v15

    move-object/from16 v2, v17

    move-object/from16 v17, v20

    move-object/from16 v1, v27

    const/16 v14, 0x10

    move-object v7, v3

    move/from16 v3, v16

    goto/16 :goto_181

    :cond_97b
    new-instance v1, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, "syntax error, unexpect token "

    invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I

    move-result v4

    invoke-static {v4}, Lcom/tradplus/ads/common/serialization/parser/JSONToken;->name(I)Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-direct {v1, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v1

    :cond_99a
    move-object/from16 v3, v30

    new-instance v1, Lcom/tradplus/ads/common/serialization/JSONException;

    const-string v2, "syntax error, unexpect token \':\'"

    invoke-direct {v1, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v1
    :try_end_9a4
    .catchall {:try_start_955 .. :try_end_9a4} :catchall_9a4

    :catchall_9a4
    move-exception v0

    goto :goto_9a9

    :catchall_9a6
    move-exception v0

    move-object/from16 v3, v30

    :goto_9a9
    move-object v1, v0

    move-object/from16 v5, v19

    goto/16 :goto_678

    :catchall_9ae
    move-exception v0

    move-object/from16 v27, v5

    move-object v3, v7

    move-object v5, v1

    :goto_9b3
    move-object/from16 v15, v27

    goto :goto_9bb

    :catchall_9b6
    move-exception v0

    move-object v3, v7

    move-object v4, v15

    move-object/from16 v5, p4

    :goto_9bb
    move-object v1, v0

    :goto_9bc
    if-eqz v15, :cond_9c0

    iput-object v5, v15, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    :cond_9c0
    invoke-virtual {v9, v3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V

    throw v1

    :cond_9c4
    :goto_9c4
    invoke-virtual/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;

    move-result-object v1

    return-object v1
.end method

.method protected a(Lcom/tradplus/ads/common/serialization/parser/JSONLexer;I)V
    .registers 3

    invoke-interface {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I

    move-result p1

    if-ne p1, p2, :cond_7

    return-void

    :cond_7
    new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;

    const-string p2, "syntax error"

    invoke-direct {p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw p1
.end method

.method public createInstance(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;)Ljava/lang/Object;
    .registers 13

    const-string v0, "create instance error, class "

    instance-of v1, p2, Ljava/lang/Class;

    const/4 v2, 0x1

    const/4 v3, 0x0

    if-eqz v1, :cond_28

    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->b:Ljava/lang/Class;

    invoke-virtual {v1}, Ljava/lang/Class;->isInterface()Z

    move-result v1

    if-eqz v1, :cond_28

    check-cast p2, Ljava/lang/Class;

    invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;

    move-result-object p1

    invoke-virtual {p1}, Ljava/lang/Thread;->getContextClassLoader()Ljava/lang/ClassLoader;

    move-result-object p1

    new-instance v0, Lcom/tradplus/ads/common/serialization/JSONObject;

    invoke-direct {v0}, Lcom/tradplus/ads/common/serialization/JSONObject;-><init>()V

    new-array v1, v2, [Ljava/lang/Class;

    aput-object p2, v1, v3

    invoke-static {p1, v1, v0}, Ljava/lang/reflect/Proxy;->newProxyInstance(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;

    move-result-object p1

    return-object p1

    :cond_28
    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v4, v1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->defaultConstructor:Ljava/lang/reflect/Constructor;

    const/4 v5, 0x0

    if-nez v4, :cond_34

    iget-object v1, v1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->factoryMethod:Ljava/lang/reflect/Method;

    if-nez v1, :cond_34

    return-object v5

    :cond_34
    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v4, v1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->factoryMethod:Ljava/lang/reflect/Method;

    if-eqz v4, :cond_3f

    iget v1, v1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->defaultConstructorParameterSize:I

    if-lez v1, :cond_3f

    return-object v5

    :cond_3f
    :try_start_3f
    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v1, v1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->defaultConstructor:Ljava/lang/reflect/Constructor;

    iget-object v4, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget v4, v4, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->defaultConstructorParameterSize:I

    if-nez v4, :cond_5f

    if-eqz v1, :cond_53

    new-array p2, v3, [Ljava/lang/Object;

    invoke-virtual {v1, p2}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p2

    goto/16 :goto_e9

    :cond_53
    iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object p2, p2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->factoryMethod:Ljava/lang/reflect/Method;

    new-array v1, v3, [Ljava/lang/Object;

    invoke-virtual {p2, v5, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p2

    goto/16 :goto_e9

    :cond_5f
    invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getContext()Lcom/tradplus/ads/common/serialization/parser/ParseContext;

    move-result-object v4
    :try_end_63
    .catch Lcom/tradplus/ads/common/serialization/JSONException; {:try_start_3f .. :try_end_63} :catch_158
    .catch Ljava/lang/Exception; {:try_start_3f .. :try_end_63} :catch_13c

    const-string v6, "can\'t create non-static inner class instance."

    if-eqz v4, :cond_136

    :try_start_67
    iget-object v7, v4, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    if-eqz v7, :cond_136

    instance-of v7, p2, Ljava/lang/Class;

    if-eqz v7, :cond_130

    check-cast p2, Ljava/lang/Class;

    invoke-virtual {p2}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object p2

    const/16 v7, 0x24

    invoke-virtual {p2, v7}, Ljava/lang/String;->lastIndexOf(I)I

    move-result v7

    invoke-virtual {p2, v3, v7}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object p2

    iget-object v7, v4, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    invoke-virtual {v7}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v8

    invoke-virtual {v8}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v8

    invoke-virtual {v8, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v9

    if-nez v9, :cond_d2

    iget-object v4, v4, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->parent:Lcom/tradplus/ads/common/serialization/parser/ParseContext;

    if-eqz v4, :cond_d2

    iget-object v9, v4, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    if-eqz v9, :cond_d2

    const-string v9, "java.util.ArrayList"

    invoke-virtual {v9, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v9

    if-nez v9, :cond_bf

    const-string v9, "java.util.List"

    invoke-virtual {v9, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v9

    if-nez v9, :cond_bf

    const-string v9, "java.util.Collection"

    invoke-virtual {v9, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v9

    if-nez v9, :cond_bf

    const-string v9, "java.util.Map"

    invoke-virtual {v9, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v9

    if-nez v9, :cond_bf

    const-string v9, "java.util.HashMap"

    invoke-virtual {v9, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v8

    if-eqz v8, :cond_d2

    :cond_bf
    iget-object v7, v4, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    invoke-virtual {v7}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v7

    invoke-virtual {v7}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v7

    invoke-virtual {v7, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result p2

    if-eqz p2, :cond_d1

    iget-object v5, v4, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;

    :cond_d1
    move-object v7, v5

    :cond_d2
    if-eqz v7, :cond_12a

    instance-of p2, v7, Ljava/util/Collection;

    if-eqz p2, :cond_e1

    move-object p2, v7

    check-cast p2, Ljava/util/Collection;

    invoke-interface {p2}, Ljava/util/Collection;->isEmpty()Z

    move-result p2

    if-nez p2, :cond_12a

    :cond_e1
    new-array p2, v2, [Ljava/lang/Object;

    aput-object v7, p2, v3

    invoke-virtual {v1, p2}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p2
    :try_end_e9
    .catch Lcom/tradplus/ads/common/serialization/JSONException; {:try_start_67 .. :try_end_e9} :catch_158
    .catch Ljava/lang/Exception; {:try_start_67 .. :try_end_e9} :catch_13c

    :goto_e9
    if-eqz p1, :cond_129

    iget-object p1, p1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;

    sget-object v1, Lcom/tradplus/ads/common/serialization/parser/Feature;->InitStringFieldAsEmpty:Lcom/tradplus/ads/common/serialization/parser/Feature;

    invoke-interface {p1, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z

    move-result p1

    if-eqz p1, :cond_129

    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object p1, p1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    array-length v1, p1

    :goto_fa
    if-ge v3, v1, :cond_129

    aget-object v2, p1, v3

    iget-object v4, v2, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    const-class v5, Ljava/lang/String;

    if-ne v4, v5, :cond_126

    :try_start_104
    const-string v4, ""

    invoke-virtual {v2, p2, v4}, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->set(Ljava/lang/Object;Ljava/lang/Object;)V
    :try_end_109
    .catch Ljava/lang/Exception; {:try_start_104 .. :try_end_109} :catch_10a

    goto :goto_126

    :catch_10a
    move-exception p1

    new-instance p2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->b:Ljava/lang/Class;

    invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {p2, v0, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw p2

    :cond_126
    :goto_126
    add-int/lit8 v3, v3, 0x1

    goto :goto_fa

    :cond_129
    return-object p2

    :cond_12a
    :try_start_12a
    new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;

    invoke-direct {p1, v6}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw p1

    :cond_130
    new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;

    invoke-direct {p1, v6}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw p1

    :cond_136
    new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;

    invoke-direct {p1, v6}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw p1
    :try_end_13c
    .catch Lcom/tradplus/ads/common/serialization/JSONException; {:try_start_12a .. :try_end_13c} :catch_158
    .catch Ljava/lang/Exception; {:try_start_12a .. :try_end_13c} :catch_13c

    :catch_13c
    move-exception p1

    new-instance p2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->b:Ljava/lang/Class;

    invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {p2, v0, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw p2

    :catch_158
    move-exception p1

    goto :goto_15b

    :goto_15a
    throw p1

    :goto_15b
    goto :goto_15a
.end method

.method public createInstance(Ljava/util/Map;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)Ljava/lang/Object;
    .registers 15
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;",
            "Lcom/tradplus/ads/common/serialization/parser/ParserConfig;",
            ")",
            "Ljava/lang/Object;"
        }
    .end annotation

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v1, v0, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructor:Ljava/lang/reflect/Constructor;

    const/4 v2, 0x1

    const/4 v3, 0x0

    const/4 v4, 0x0

    if-nez v1, :cond_15b

    iget-object v0, v0, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->factoryMethod:Ljava/lang/reflect/Method;

    if-nez v0, :cond_15b

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->b:Ljava/lang/Class;

    invoke-virtual {p0, v3, v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->createInstance(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;)Ljava/lang/Object;

    move-result-object v0

    invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set;

    move-result-object p1

    invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object p1

    :goto_1b
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_144

    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/util/Map$Entry;

    invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v5

    check-cast v5, Ljava/lang/String;

    invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v1

    invoke-virtual {p0, v5}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->smartMatch(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object v5

    if-nez v5, :cond_38

    goto :goto_1b

    :cond_38
    iget-object v6, v5, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    iget-object v7, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->field:Ljava/lang/reflect/Field;

    iget-object v8, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type;

    iget-object v9, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    invoke-virtual {v6}, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->getAnnotation()Lcom/tradplus/ads/common/serialization/annotation/JSONField;

    move-result-object v10

    iget-object v11, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->declaringClass:Ljava/lang/Class;

    if-eqz v11, :cond_65

    invoke-virtual {v9, v1}, Ljava/lang/Class;->isInstance(Ljava/lang/Object;)Z

    move-result v9

    if-eqz v9, :cond_58

    if-eqz v10, :cond_65

    invoke-interface {v10}, Lcom/tradplus/ads/common/serialization/annotation/JSONField;->deserializeUsing()Ljava/lang/Class;

    move-result-object v9

    const-class v10, Ljava/lang/Void;

    if-eq v9, v10, :cond_65

    :cond_58
    new-instance v6, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;

    invoke-static {v1}, Lcom/tradplus/ads/common/serialization/JSON;->toJSONString(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v1

    invoke-direct {v6, v1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;-><init>(Ljava/lang/String;)V

    invoke-virtual {v5, v6, v0, v8, v3}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->parseField(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/util/Map;)V

    goto :goto_1b

    :cond_65
    if-eqz v7, :cond_109

    iget-object v9, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->method:Ljava/lang/reflect/Method;

    if-nez v9, :cond_109

    invoke-virtual {v7}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;

    move-result-object v9

    sget-object v10, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    if-ne v9, v10, :cond_83

    sget-object v9, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;

    if-ne v1, v9, :cond_7b

    invoke-virtual {v7, v0, v4}, Ljava/lang/reflect/Field;->setBoolean(Ljava/lang/Object;Z)V

    goto :goto_1b

    :cond_7b
    sget-object v9, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;

    if-ne v1, v9, :cond_109

    invoke-virtual {v7, v0, v2}, Ljava/lang/reflect/Field;->setBoolean(Ljava/lang/Object;Z)V

    goto :goto_1b

    :cond_83
    sget-object v10, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    if-ne v9, v10, :cond_95

    instance-of v9, v1, Ljava/lang/Number;

    if-eqz v9, :cond_109

    check-cast v1, Ljava/lang/Number;

    invoke-virtual {v1}, Ljava/lang/Number;->intValue()I

    move-result v1

    invoke-virtual {v7, v0, v1}, Ljava/lang/reflect/Field;->setInt(Ljava/lang/Object;I)V

    goto :goto_1b

    :cond_95
    sget-object v10, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-ne v9, v10, :cond_a8

    instance-of v9, v1, Ljava/lang/Number;

    if-eqz v9, :cond_109

    check-cast v1, Ljava/lang/Number;

    invoke-virtual {v1}, Ljava/lang/Number;->longValue()J

    move-result-wide v5

    invoke-virtual {v7, v0, v5, v6}, Ljava/lang/reflect/Field;->setLong(Ljava/lang/Object;J)V

    goto/16 :goto_1b

    :cond_a8
    sget-object v10, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    const/16 v11, 0xa

    if-ne v9, v10, :cond_d3

    instance-of v9, v1, Ljava/lang/Number;

    if-eqz v9, :cond_bd

    check-cast v1, Ljava/lang/Number;

    invoke-virtual {v1}, Ljava/lang/Number;->floatValue()F

    move-result v1

    :goto_b8
    invoke-virtual {v7, v0, v1}, Ljava/lang/reflect/Field;->setFloat(Ljava/lang/Object;F)V

    goto/16 :goto_1b

    :cond_bd
    instance-of v9, v1, Ljava/lang/String;

    if-eqz v9, :cond_109

    check-cast v1, Ljava/lang/String;

    invoke-virtual {v1}, Ljava/lang/String;->length()I

    move-result v5

    if-gt v5, v11, :cond_ce

    invoke-static {v1}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->parseFloat(Ljava/lang/String;)F

    move-result v1

    goto :goto_b8

    :cond_ce
    invoke-static {v1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F

    move-result v1

    goto :goto_b8

    :cond_d3
    sget-object v10, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-ne v9, v10, :cond_fc

    instance-of v9, v1, Ljava/lang/Number;

    if-eqz v9, :cond_e6

    check-cast v1, Ljava/lang/Number;

    invoke-virtual {v1}, Ljava/lang/Number;->doubleValue()D

    move-result-wide v5

    :goto_e1
    invoke-virtual {v7, v0, v5, v6}, Ljava/lang/reflect/Field;->setDouble(Ljava/lang/Object;D)V

    goto/16 :goto_1b

    :cond_e6
    instance-of v9, v1, Ljava/lang/String;

    if-eqz v9, :cond_109

    check-cast v1, Ljava/lang/String;

    invoke-virtual {v1}, Ljava/lang/String;->length()I

    move-result v5

    if-gt v5, v11, :cond_f7

    invoke-static {v1}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->parseDouble(Ljava/lang/String;)D

    move-result-wide v5

    goto :goto_e1

    :cond_f7
    invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D

    move-result-wide v5

    goto :goto_e1

    :cond_fc
    if-eqz v1, :cond_109

    invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v9

    if-ne v8, v9, :cond_109

    invoke-virtual {v7, v0, v1}, Ljava/lang/reflect/Field;->set(Ljava/lang/Object;Ljava/lang/Object;)V

    goto/16 :goto_1b

    :cond_109
    iget-object v6, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->format:Ljava/lang/String;

    if-eqz v6, :cond_116

    const-class v7, Ljava/util/Date;

    if-ne v8, v7, :cond_116

    invoke-static {v1, v6}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->castToDate(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/Date;

    move-result-object v1

    goto :goto_13f

    :cond_116
    if-eqz v6, :cond_130

    instance-of v7, v8, Ljava/lang/Class;

    if-eqz v7, :cond_130

    move-object v7, v8

    check-cast v7, Ljava/lang/Class;

    invoke-virtual {v7}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v7

    const-string v9, "java.time.LocalDateTime"

    invoke-virtual {v7, v9}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v7

    if-eqz v7, :cond_130

    invoke-static {v1, v6}, Lcom/tradplus/ads/common/serialization/parser/deserializer/Jdk8DateCodec;->castToLocalDateTime(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v1

    goto :goto_13f

    :cond_130
    instance-of v6, v8, Ljava/lang/reflect/ParameterizedType;

    if-eqz v6, :cond_13b

    check-cast v8, Ljava/lang/reflect/ParameterizedType;

    invoke-static {v1, v8, p2}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/ParameterizedType;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)Ljava/lang/Object;

    move-result-object v1

    goto :goto_13f

    :cond_13b
    invoke-static {v1, v8, p2}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)Ljava/lang/Object;

    move-result-object v1

    :goto_13f
    invoke-virtual {v5, v0, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V

    goto/16 :goto_1b

    :cond_144
    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object p1, p1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->buildMethod:Ljava/lang/reflect/Method;

    if-eqz p1, :cond_15a

    :try_start_14a
    new-array p2, v4, [Ljava/lang/Object;

    invoke-virtual {p1, v0, p2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1
    :try_end_150
    .catch Ljava/lang/Exception; {:try_start_14a .. :try_end_150} :catch_151

    return-object p1

    :catch_151
    move-exception p1

    new-instance p2, Lcom/tradplus/ads/common/serialization/JSONException;

    const-string v0, "build object error"

    invoke-direct {p2, v0, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw p2

    :cond_15a
    return-object v0

    :cond_15b
    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v0, v0, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    array-length v1, v0

    new-array v5, v1, [Ljava/lang/Object;

    move-object v7, v3

    const/4 v6, 0x0

    :goto_164
    if-ge v6, v1, :cond_1d5

    aget-object v8, v0, v6

    iget-object v9, v8, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->name:Ljava/lang/String;

    invoke-interface {p1, v9}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v9

    if-nez v9, :cond_1d0

    iget-object v10, v8, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    sget-object v11, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    if-ne v10, v11, :cond_17b

    invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v9

    goto :goto_1c0

    :cond_17b
    sget-object v11, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-ne v10, v11, :cond_186

    const-wide/16 v9, 0x0

    invoke-static {v9, v10}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v9

    goto :goto_1c0

    :cond_186
    sget-object v11, Ljava/lang/Short;->TYPE:Ljava/lang/Class;

    if-ne v10, v11, :cond_18f

    invoke-static {v4}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;

    move-result-object v9

    goto :goto_1c0

    :cond_18f
    sget-object v11, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;

    if-ne v10, v11, :cond_198

    invoke-static {v4}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;

    move-result-object v9

    goto :goto_1c0

    :cond_198
    sget-object v11, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-ne v10, v11, :cond_1a2

    const/4 v9, 0x0

    invoke-static {v9}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;

    move-result-object v9

    goto :goto_1c0

    :cond_1a2
    sget-object v11, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-ne v10, v11, :cond_1ad

    const-wide/16 v9, 0x0

    invoke-static {v9, v10}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;

    move-result-object v9

    goto :goto_1c0

    :cond_1ad
    sget-object v11, Ljava/lang/Character;->TYPE:Ljava/lang/Class;

    if-ne v10, v11, :cond_1b8

    const/16 v9, 0x30

    invoke-static {v9}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character;

    move-result-object v9

    goto :goto_1c0

    :cond_1b8
    sget-object v11, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    if-ne v10, v11, :cond_1c0

    invoke-static {v4}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v9

    :cond_1c0
    :goto_1c0
    if-nez v7, :cond_1c7

    new-instance v7, Ljava/util/HashMap;

    invoke-direct {v7}, Ljava/util/HashMap;-><init>()V

    :cond_1c7
    iget-object v8, v8, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->name:Ljava/lang/String;

    invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v10

    invoke-interface {v7, v8, v10}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    :cond_1d0
    aput-object v9, v5, v6

    add-int/lit8 v6, v6, 0x1

    goto :goto_164

    :cond_1d5
    if-eqz v7, :cond_20e

    invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set;

    move-result-object p1

    invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object p1

    :cond_1df
    :goto_1df
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_20e

    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/String;

    invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v0

    invoke-virtual {p0, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->smartMatch(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object v1

    if-eqz v1, :cond_1df

    iget-object v1, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    iget-object v1, v1, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->name:Ljava/lang/String;

    invoke-interface {v7, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/Integer;

    if-eqz v1, :cond_1df

    invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I

    move-result v1

    aput-object v0, v5, v1

    goto :goto_1df

    :cond_20e
    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v0, p1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructor:Ljava/lang/reflect/Constructor;

    if-eqz v0, :cond_2c8

    iget-boolean p1, p1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->kotlin:Z

    if-eqz p1, :cond_24f

    const/4 p1, 0x0

    const/4 v0, 0x0

    :goto_21a
    array-length v1, v5

    if-ge p1, v1, :cond_250

    aget-object v1, v5, p1

    if-nez v1, :cond_234

    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v1, v1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    if-eqz v1, :cond_24c

    array-length v3, v1

    if-ge p1, v3, :cond_24c

    aget-object v1, v1, p1

    iget-object v1, v1, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    const-class v3, Ljava/lang/String;

    if-ne v1, v3, :cond_24c

    const/4 v0, 0x1

    goto :goto_24c

    :cond_234
    invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v3

    iget-object v6, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v6, v6, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    aget-object v7, v6, p1

    iget-object v7, v7, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    if-eq v3, v7, :cond_24c

    aget-object v3, v6, p1

    iget-object v3, v3, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    invoke-static {v1, v3, p2}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/Class;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)Ljava/lang/Object;

    move-result-object v1

    aput-object v1, v5, p1

    :cond_24c
    :goto_24c
    add-int/lit8 p1, p1, 0x1

    goto :goto_21a

    :cond_24f
    const/4 v0, 0x0

    :cond_250
    const-string p1, "create instance error, "

    if-eqz v0, :cond_2a0

    iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object p2, p2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->kotlinDefaultConstructor:Ljava/lang/reflect/Constructor;

    if-eqz p2, :cond_2a0

    :try_start_25a
    new-array v0, v4, [Ljava/lang/Object;

    invoke-virtual {p2, v0}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p2

    :goto_260
    array-length v0, v5

    if-ge v4, v0, :cond_280

    aget-object v0, v5, v4

    if-eqz v0, :cond_27d

    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v1, v1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    if-eqz v1, :cond_27d

    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v1, v1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    array-length v1, v1

    if-ge v4, v1, :cond_27d

    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v1, v1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    aget-object v1, v1, v4

    invoke-virtual {v1, p2, v0}, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->set(Ljava/lang/Object;Ljava/lang/Object;)V
    :try_end_27d
    .catch Ljava/lang/Exception; {:try_start_25a .. :try_end_27d} :catch_282

    :cond_27d
    add-int/lit8 v4, v4, 0x1

    goto :goto_260

    :cond_280
    move-object v3, p2

    goto :goto_2f1

    :catch_282
    move-exception p2

    new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object p1, p1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructor:Ljava/lang/reflect/Constructor;

    invoke-virtual {p1}, Ljava/lang/reflect/Constructor;->toGenericString()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-direct {v0, p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v0

    :cond_2a0
    :try_start_2a0
    iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object p2, p2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructor:Ljava/lang/reflect/Constructor;

    invoke-virtual {p2, v5}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1
    :try_end_2a8
    .catch Ljava/lang/Exception; {:try_start_2a0 .. :try_end_2a8} :catch_2aa

    move-object v3, p1

    goto :goto_2f1

    :catch_2aa
    move-exception p2

    new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object p1, p1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructor:Ljava/lang/reflect/Constructor;

    invoke-virtual {p1}, Ljava/lang/reflect/Constructor;->toGenericString()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-direct {v0, p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v0

    :cond_2c8
    iget-object p1, p1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->factoryMethod:Ljava/lang/reflect/Method;

    if-eqz p1, :cond_2f1

    :try_start_2cc
    invoke-virtual {p1, v3, v5}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v3
    :try_end_2d0
    .catch Ljava/lang/Exception; {:try_start_2cc .. :try_end_2d0} :catch_2d1

    goto :goto_2f1

    :catch_2d1
    move-exception p1

    new-instance p2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "create factory method error, "

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget-object v1, v1, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->factoryMethod:Ljava/lang/reflect/Method;

    invoke-virtual {v1}, Ljava/lang/reflect/Method;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {p2, v0, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw p2

    :cond_2f1
    :goto_2f1
    return-object v3
.end method

.method public deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    .registers 5
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;",
            "Ljava/lang/reflect/Type;",
            "Ljava/lang/Object;",
            ")TT;"
        }
    .end annotation

    const/4 v0, 0x0

    invoke-virtual {p0, p1, p2, p3, v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;I)Ljava/lang/Object;

    move-result-object p1

    return-object p1
.end method

.method public deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;I)Ljava/lang/Object;
    .registers 12
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;",
            "Ljava/lang/reflect/Type;",
            "Ljava/lang/Object;",
            "I)TT;"
        }
    .end annotation

    const/4 v4, 0x0

    const/4 v6, 0x0

    move-object v0, p0

    move-object v1, p1

    move-object v2, p2

    move-object v3, p3

    move v5, p4

    invoke-virtual/range {v0 .. v6}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;Ljava/lang/Object;I[I)Ljava/lang/Object;

    move-result-object p1

    return-object p1
.end method

.method public deserialzeArrayMapping(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .registers 14
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;",
            "Ljava/lang/reflect/Type;",
            "Ljava/lang/Object;",
            "Ljava/lang/Object;",
            ")TT;"
        }
    .end annotation

    iget-object v0, p1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;

    invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I

    move-result v1

    const/16 v2, 0xe

    if-ne v1, v2, :cond_136

    iget-object v1, p1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;

    invoke-interface {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanTypeName(Lcom/tradplus/ads/common/serialization/parser/SymbolTable;)Ljava/lang/String;

    move-result-object v1

    if-eqz v1, :cond_41

    invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getConfig()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    move-result-object v3

    iget-object v4, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    invoke-static {v3, v4, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    move-result-object v3

    if-nez v3, :cond_36

    invoke-static {p2}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->getClass(Ljava/lang/reflect/Type;)Ljava/lang/Class;

    move-result-object v3

    invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getConfig()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    move-result-object v4

    invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getFeatures()I

    move-result v5

    invoke-virtual {v4, v1, v3, v5}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;

    move-result-object v1

    invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getConfig()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    move-result-object v3

    invoke-virtual {v3, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v3

    :cond_36
    instance-of v1, v3, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    if-eqz v1, :cond_41

    check-cast v3, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    invoke-virtual {v3, p1, p2, p3, p4}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->deserialzeArrayMapping(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1

    return-object p1

    :cond_41
    invoke-virtual {p0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->createInstance(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;)Ljava/lang/Object;

    move-result-object p2

    const/4 p3, 0x0

    iget-object p4, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length p4, p4

    :goto_49
    const/16 v1, 0x10

    if-ge p3, p4, :cond_132

    add-int/lit8 v3, p4, -0x1

    const/16 v4, 0x5d

    if-ne p3, v3, :cond_56

    const/16 v3, 0x5d

    goto :goto_58

    :cond_56
    const/16 v3, 0x2c

    :goto_58
    iget-object v5, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    aget-object v5, v5, p3

    iget-object v6, v5, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    iget-object v6, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    sget-object v7, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    if-ne v6, v7, :cond_6d

    invoke-interface {v0, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanInt(C)I

    move-result v1

    invoke-virtual {v5, p2, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;I)V

    goto/16 :goto_12e

    :cond_6d
    const-class v7, Ljava/lang/String;

    if-ne v6, v7, :cond_7a

    invoke-interface {v0, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanString(C)Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v5, p2, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/String;)V

    goto/16 :goto_12e

    :cond_7a
    sget-object v7, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-ne v6, v7, :cond_87

    invoke-interface {v0, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanLong(C)J

    move-result-wide v3

    invoke-virtual {v5, p2, v3, v4}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;J)V

    goto/16 :goto_12e

    :cond_87
    invoke-virtual {v6}, Ljava/lang/Class;->isEnum()Z

    move-result v7

    if-eqz v7, :cond_c6

    invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C

    move-result v1

    const/16 v4, 0x22

    if-eq v1, v4, :cond_bd

    const/16 v4, 0x6e

    if-ne v1, v4, :cond_9a

    goto :goto_bd

    :cond_9a
    const/16 v4, 0x30

    if-lt v1, v4, :cond_b8

    const/16 v4, 0x39

    if-gt v1, v4, :cond_b8

    invoke-interface {v0, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanInt(C)I

    move-result v1

    move-object v3, v5

    check-cast v3, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;

    invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getConfig()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    move-result-object v4

    invoke-virtual {v3, v4}, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;->getFieldValueDeserilizer(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v3

    check-cast v3, Lcom/tradplus/ads/common/serialization/parser/deserializer/EnumDeserializer;

    invoke-virtual {v3, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/EnumDeserializer;->valueOf(I)Ljava/lang/Enum;

    move-result-object v1

    goto :goto_de

    :cond_b8
    invoke-virtual {p0, v0, v3}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a(Lcom/tradplus/ads/common/serialization/parser/JSONLexer;C)Ljava/lang/Enum;

    move-result-object v1

    goto :goto_de

    :cond_bd
    :goto_bd
    invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getSymbolTable()Lcom/tradplus/ads/common/serialization/parser/SymbolTable;

    move-result-object v1

    invoke-interface {v0, v6, v1, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanEnum(Ljava/lang/Class;Lcom/tradplus/ads/common/serialization/parser/SymbolTable;C)Ljava/lang/Enum;

    move-result-object v1

    goto :goto_de

    :cond_c6
    sget-object v7, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    if-ne v6, v7, :cond_d2

    invoke-interface {v0, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanBoolean(C)Z

    move-result v1

    invoke-virtual {v5, p2, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Z)V

    goto :goto_12e

    :cond_d2
    sget-object v7, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-ne v6, v7, :cond_e2

    invoke-interface {v0, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanFloat(C)F

    move-result v1

    invoke-static {v1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;

    move-result-object v1

    :goto_de
    invoke-virtual {v5, p2, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V

    goto :goto_12e

    :cond_e2
    sget-object v7, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-ne v6, v7, :cond_ef

    invoke-interface {v0, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanDouble(C)D

    move-result-wide v3

    invoke-static {v3, v4}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;

    move-result-object v1

    goto :goto_de

    :cond_ef
    const-class v7, Ljava/util/Date;

    if-ne v6, v7, :cond_105

    invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C

    move-result v7

    const/16 v8, 0x31

    if-ne v7, v8, :cond_105

    invoke-interface {v0, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanLong(C)J

    move-result-wide v3

    new-instance v1, Ljava/util/Date;

    invoke-direct {v1, v3, v4}, Ljava/util/Date;-><init>(J)V

    goto :goto_de

    :cond_105
    const-class v7, Ljava/math/BigDecimal;

    if-ne v6, v7, :cond_10e

    invoke-interface {v0, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanDecimal(C)Ljava/math/BigDecimal;

    move-result-object v1

    goto :goto_de

    :cond_10e
    invoke-interface {v0, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V

    iget-object v6, v5, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    iget-object v7, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type;

    iget-object v6, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->name:Ljava/lang/String;

    invoke-virtual {p1, v7, v6}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v6

    invoke-virtual {v5, p2, v6}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V

    invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I

    move-result v5

    const/16 v6, 0xf

    if-ne v5, v6, :cond_127

    goto :goto_132

    :cond_127
    if-ne v3, v4, :cond_12b

    const/16 v1, 0xf

    :cond_12b
    invoke-virtual {p0, v0, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a(Lcom/tradplus/ads/common/serialization/parser/JSONLexer;I)V

    :goto_12e
    add-int/lit8 p3, p3, 0x1

    goto/16 :goto_49

    :cond_132
    :goto_132
    invoke-interface {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V

    return-object p2

    :cond_136
    new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;

    const-string p2, "error"

    invoke-direct {p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    goto :goto_13f

    :goto_13e
    throw p1

    :goto_13f
    goto :goto_13e
.end method

.method public getFastMatchToken()I
    .registers 2

    const/16 v0, 0xc

    return v0
.end method

.method public getFieldDeserializer(J)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;
    .registers 10

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->i:[J

    const/4 v1, 0x0

    if-nez v0, :cond_24

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v0, v0

    new-array v0, v0, [J

    const/4 v2, 0x0

    :goto_b
    iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v4, v3

    if-ge v2, v4, :cond_1f

    aget-object v3, v3, v2

    iget-object v3, v3, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    iget-object v3, v3, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->name:Ljava/lang/String;

    invoke-static {v3}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J

    move-result-wide v3

    aput-wide v3, v0, v2

    add-int/lit8 v2, v2, 0x1

    goto :goto_b

    :cond_1f
    invoke-static {v0}, Ljava/util/Arrays;->sort([J)V

    iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->i:[J

    :cond_24
    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->i:[J

    invoke-static {v0, p1, p2}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result p1

    const/4 p2, 0x0

    if-gez p1, :cond_2e

    return-object p2

    :cond_2e
    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->j:[S

    const/4 v2, -0x1

    if-nez v0, :cond_5a

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->i:[J

    array-length v0, v0

    new-array v0, v0, [S

    invoke-static {v0, v2}, Ljava/util/Arrays;->fill([SS)V

    :goto_3b
    iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v4, v3

    if-ge v1, v4, :cond_58

    iget-object v4, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->i:[J

    aget-object v3, v3, v1

    iget-object v3, v3, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    iget-object v3, v3, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->name:Ljava/lang/String;

    invoke-static {v3}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J

    move-result-wide v5

    invoke-static {v4, v5, v6}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result v3

    if-ltz v3, :cond_55

    int-to-short v4, v1

    aput-short v4, v0, v3

    :cond_55
    add-int/lit8 v1, v1, 0x1

    goto :goto_3b

    :cond_58
    iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->j:[S

    :cond_5a
    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->j:[S

    aget-short p1, v0, p1

    if-eq p1, v2, :cond_65

    iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    aget-object p1, p2, p1

    return-object p1

    :cond_65
    return-object p2
.end method

.method public getFieldDeserializer(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;
    .registers 3

    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;[I)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object p1

    return-object p1
.end method

.method public getFieldDeserializer(Ljava/lang/String;[I)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;
    .registers 8

    const/4 v0, 0x0

    if-nez p1, :cond_4

    return-object v0

    :cond_4
    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->f:Ljava/util/Map;

    if-eqz v1, :cond_11

    invoke-interface {v1, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    if-eqz v1, :cond_11

    return-object v1

    :cond_11
    const/4 v1, 0x0

    iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v2, v2

    add-int/lit8 v2, v2, -0x1

    :goto_17
    if-gt v1, v2, :cond_41

    add-int v3, v1, v2

    ushr-int/lit8 v3, v3, 0x1

    iget-object v4, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    aget-object v4, v4, v3

    iget-object v4, v4, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    iget-object v4, v4, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->name:Ljava/lang/String;

    invoke-virtual {v4, p1}, Ljava/lang/String;->compareTo(Ljava/lang/String;)I

    move-result v4

    if-gez v4, :cond_2f

    add-int/lit8 v3, v3, 0x1

    move v1, v3

    goto :goto_17

    :cond_2f
    if-lez v4, :cond_35

    add-int/lit8 v3, v3, -0x1

    move v2, v3

    goto :goto_17

    :cond_35
    invoke-static {v3, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a(I[I)Z

    move-result p1

    if-eqz p1, :cond_3c

    return-object v0

    :cond_3c
    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    aget-object p1, p1, v3

    return-object p1

    :cond_41
    iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->e:Ljava/util/Map;

    if-eqz p2, :cond_4c

    invoke-interface {p2, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    return-object p1

    :cond_4c
    return-object v0
.end method

.method public getFieldType(I)Ljava/lang/reflect/Type;
    .registers 3

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    aget-object p1, v0, p1

    iget-object p1, p1, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    iget-object p1, p1, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type;

    return-object p1
.end method

.method public parseField(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/util/Map;)Z
    .registers 13
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            "Ljava/lang/reflect/Type;",
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;)Z"
        }
    .end annotation

    const/4 v6, 0x0

    move-object v0, p0

    move-object v1, p1

    move-object v2, p2

    move-object v3, p3

    move-object v4, p4

    move-object v5, p5

    invoke-virtual/range {v0 .. v6}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->parseField(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/util/Map;[I)Z

    move-result p1

    return p1
.end method

.method public parseField(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/util/Map;[I)Z
    .registers 28
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            "Ljava/lang/reflect/Type;",
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;[I)Z"
        }
    .end annotation

    move-object/from16 v1, p0

    move-object/from16 v0, p1

    move-object/from16 v11, p2

    move-object/from16 v12, p3

    move-object/from16 v13, p4

    move-object/from16 v14, p5

    move-object/from16 v15, p6

    iget-object v10, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/Feature;->DisableFieldSmartMatch:Lcom/tradplus/ads/common/serialization/parser/Feature;

    iget v2, v2, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I

    sget-object v3, Lcom/tradplus/ads/common/serialization/parser/Feature;->InitStringFieldAsEmpty:Lcom/tradplus/ads/common/serialization/parser/Feature;

    iget v3, v3, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I

    invoke-interface {v10, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(I)Z

    move-result v4

    if-nez v4, :cond_3e

    iget-object v4, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget v4, v4, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->parserFeatures:I

    and-int/2addr v2, v4

    if-eqz v2, :cond_26

    goto :goto_3e

    :cond_26
    invoke-interface {v10, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(I)Z

    move-result v2

    if-nez v2, :cond_39

    iget-object v2, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget v2, v2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->parserFeatures:I

    and-int/2addr v2, v3

    if-eqz v2, :cond_34

    goto :goto_39

    :cond_34
    invoke-virtual {v1, v11, v15}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->smartMatch(Ljava/lang/String;[I)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object v2

    goto :goto_42

    :cond_39
    :goto_39
    invoke-virtual {v1, v11}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->smartMatch(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object v2

    goto :goto_42

    :cond_3e
    :goto_3e
    invoke-virtual {v1, v11}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object v2

    :goto_42
    sget-object v3, Lcom/tradplus/ads/common/serialization/parser/Feature;->SupportNonPublicField:Lcom/tradplus/ads/common/serialization/parser/Feature;

    iget v3, v3, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I

    const/16 v16, 0x0

    const/4 v9, 0x1

    if-nez v2, :cond_11b

    invoke-interface {v10, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(I)Z

    move-result v4

    if-nez v4, :cond_58

    iget-object v4, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->beanInfo:Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    iget v4, v4, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->parserFeatures:I

    and-int/2addr v3, v4

    if-eqz v3, :cond_11b

    :cond_58
    iget-object v3, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->d:Ljava/util/concurrent/ConcurrentMap;

    if-nez v3, :cond_c8

    new-instance v3, Ljava/util/concurrent/ConcurrentHashMap;

    const/high16 v4, 0x3f400000    # 0.75f

    invoke-direct {v3, v9, v4, v9}, Ljava/util/concurrent/ConcurrentHashMap;-><init>(IFI)V

    iget-object v4, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->b:Ljava/lang/Class;

    :goto_65
    if-eqz v4, :cond_c3

    const-class v5, Ljava/lang/Object;

    if-eq v4, v5, :cond_c3

    invoke-virtual {v4}, Ljava/lang/Class;->getDeclaredFields()[Ljava/lang/reflect/Field;

    move-result-object v5

    array-length v6, v5

    const/4 v7, 0x0

    :goto_71
    if-ge v7, v6, :cond_bb

    aget-object v8, v5, v7

    invoke-virtual {v8}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String;

    move-result-object v9

    invoke-virtual {v1, v9}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object v18

    if-eqz v18, :cond_80

    goto :goto_af

    :cond_80
    invoke-virtual {v8}, Ljava/lang/reflect/Field;->getModifiers()I

    move-result v18

    and-int/lit8 v19, v18, 0x10

    if-nez v19, :cond_af

    and-int/lit8 v18, v18, 0x8

    if-eqz v18, :cond_8d

    goto :goto_af

    :cond_8d
    move-object/from16 v18, v2

    const-class v2, Lcom/tradplus/ads/common/serialization/annotation/JSONField;

    invoke-static {v8, v2}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->getAnnotation(Ljava/lang/reflect/Field;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;

    move-result-object v2

    check-cast v2, Lcom/tradplus/ads/common/serialization/annotation/JSONField;

    if-eqz v2, :cond_a9

    invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/annotation/JSONField;->name()Ljava/lang/String;

    move-result-object v2

    move-object/from16 v19, v5

    const-string v5, ""

    invoke-virtual {v5, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-nez v5, :cond_ab

    move-object v9, v2

    goto :goto_ab

    :cond_a9
    move-object/from16 v19, v5

    :cond_ab
    :goto_ab
    invoke-virtual {v3, v9, v8}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_b3

    :cond_af
    :goto_af
    move-object/from16 v18, v2

    move-object/from16 v19, v5

    :goto_b3
    add-int/lit8 v7, v7, 0x1

    move-object/from16 v2, v18

    move-object/from16 v5, v19

    const/4 v9, 0x1

    goto :goto_71

    :cond_bb
    move-object/from16 v18, v2

    invoke-virtual {v4}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;

    move-result-object v4

    const/4 v9, 0x1

    goto :goto_65

    :cond_c3
    move-object/from16 v18, v2

    iput-object v3, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->d:Ljava/util/concurrent/ConcurrentMap;

    goto :goto_ca

    :cond_c8
    move-object/from16 v18, v2

    :goto_ca
    iget-object v2, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->d:Ljava/util/concurrent/ConcurrentMap;

    invoke-interface {v2, v11}, Ljava/util/concurrent/ConcurrentMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    if-eqz v2, :cond_11d

    instance-of v3, v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    if-eqz v3, :cond_dc

    check-cast v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-object v15, v10

    const/16 v17, 0x1

    goto :goto_122

    :cond_dc
    move-object v7, v2

    check-cast v7, Ljava/lang/reflect/Field;

    const/4 v9, 0x1

    invoke-virtual {v7, v9}, Ljava/lang/reflect/Field;->setAccessible(Z)V

    new-instance v8, Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    invoke-virtual {v7}, Ljava/lang/reflect/Field;->getDeclaringClass()Ljava/lang/Class;

    move-result-object v4

    invoke-virtual {v7}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;

    move-result-object v5

    invoke-virtual {v7}, Ljava/lang/reflect/Field;->getGenericType()Ljava/lang/reflect/Type;

    move-result-object v6

    const/16 v17, 0x0

    const/16 v18, 0x0

    const/16 v19, 0x0

    move-object v2, v8

    move-object/from16 v3, p2

    move-object/from16 v20, v8

    move/from16 v8, v17

    const/16 v17, 0x1

    move/from16 v9, v18

    move-object v15, v10

    move/from16 v10, v19

    invoke-direct/range {v2 .. v10}, Lcom/tradplus/ads/common/serialization/util/FieldInfo;-><init>(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Type;Ljava/lang/reflect/Field;III)V

    new-instance v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;

    invoke-virtual/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getConfig()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    move-result-object v3

    iget-object v4, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->b:Ljava/lang/Class;

    move-object/from16 v5, v20

    invoke-direct {v2, v3, v4, v5}, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Class;Lcom/tradplus/ads/common/serialization/util/FieldInfo;)V

    iget-object v3, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->d:Ljava/util/concurrent/ConcurrentMap;

    invoke-interface {v3, v11, v2}, Ljava/util/concurrent/ConcurrentMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_122

    :cond_11b
    move-object/from16 v18, v2

    :cond_11d
    move-object v15, v10

    const/16 v17, 0x1

    move-object/from16 v2, v18

    :goto_122
    const/4 v3, -0x1

    if-nez v2, :cond_212

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/Feature;->IgnoreNotMatch:Lcom/tradplus/ads/common/serialization/parser/Feature;

    invoke-interface {v15, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z

    move-result v2

    if-eqz v2, :cond_1ed

    const/4 v2, 0x0

    const/4 v4, -0x1

    :goto_12f
    iget-object v5, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v6, v5

    if-ge v2, v6, :cond_1d7

    aget-object v5, v5, v2

    iget-object v6, v5, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    iget-boolean v7, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->unwrapped:Z

    if-eqz v7, :cond_1d3

    instance-of v7, v5, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;

    if-eqz v7, :cond_1d3

    iget-object v7, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->field:Ljava/lang/reflect/Field;

    const-string v8, "parse unwrapped field error."

    if-eqz v7, :cond_1ae

    move-object v7, v5

    check-cast v7, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;

    invoke-virtual/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getConfig()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    move-result-object v9

    invoke-virtual {v7, v9}, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;->getFieldValueDeserilizer(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v9

    instance-of v10, v9, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    if-eqz v10, :cond_183

    move-object v10, v9

    check-cast v10, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    invoke-virtual {v10, v11}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object v10

    if-eqz v10, :cond_1d3

    :try_start_15e
    iget-object v4, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->field:Ljava/lang/reflect/Field;

    invoke-virtual {v4, v12}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v4

    if-nez v4, :cond_171

    check-cast v9, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    iget-object v4, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type;

    invoke-virtual {v9, v0, v4}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->createInstance(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;)Ljava/lang/Object;

    move-result-object v4

    invoke-virtual {v5, v12, v4}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V

    :cond_171
    invoke-virtual {v7}, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;->getFastMatchToken()I

    move-result v5

    invoke-interface {v15, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextTokenWithColon(I)V

    invoke-virtual {v10, v0, v4, v13, v14}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->parseField(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/util/Map;)V
    :try_end_17b
    .catch Ljava/lang/Exception; {:try_start_15e .. :try_end_17b} :catch_17c

    goto :goto_1ca

    :catch_17c
    move-exception v0

    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    invoke-direct {v2, v8, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v2

    :cond_183
    instance-of v7, v9, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;

    if-eqz v7, :cond_1d3

    check-cast v9, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;

    :try_start_189
    iget-object v4, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->field:Ljava/lang/reflect/Field;

    invoke-virtual {v4, v12}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Ljava/util/Map;

    if-nez v4, :cond_19c

    iget-object v4, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type;

    invoke-virtual {v9, v4}, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;->createMap(Ljava/lang/reflect/Type;)Ljava/util/Map;

    move-result-object v4

    invoke-virtual {v5, v12, v4}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V

    :cond_19c
    invoke-interface {v15}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextTokenWithColon()V

    invoke-virtual/range {p1 .. p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v5

    invoke-interface {v4, v11, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    :try_end_1a6
    .catch Ljava/lang/Exception; {:try_start_189 .. :try_end_1a6} :catch_1a7

    goto :goto_1ca

    :catch_1a7
    move-exception v0

    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    invoke-direct {v2, v8, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v2

    :cond_1ae
    iget-object v5, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->method:Ljava/lang/reflect/Method;

    invoke-virtual {v5}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;

    move-result-object v5

    array-length v5, v5

    const/4 v7, 0x2

    if-ne v5, v7, :cond_1d3

    invoke-interface {v15}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextTokenWithColon()V

    invoke-virtual/range {p1 .. p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v4

    :try_start_1bf
    iget-object v5, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->method:Ljava/lang/reflect/Method;

    new-array v6, v7, [Ljava/lang/Object;

    aput-object v11, v6, v16

    aput-object v4, v6, v17

    invoke-virtual {v5, v12, v6}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
    :try_end_1ca
    .catch Ljava/lang/Exception; {:try_start_1bf .. :try_end_1ca} :catch_1cc

    :goto_1ca
    move v4, v2

    goto :goto_1d3

    :catch_1cc
    move-exception v0

    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    invoke-direct {v2, v8, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v2

    :cond_1d3
    :goto_1d3
    add-int/lit8 v2, v2, 0x1

    goto/16 :goto_12f

    :cond_1d7
    if-eq v4, v3, :cond_1e9

    move-object/from16 v5, p6

    if-eqz v5, :cond_1e8

    div-int/lit8 v0, v4, 0x20

    rem-int/lit8 v4, v4, 0x20

    aget v2, v5, v0

    shl-int v3, v17, v4

    or-int/2addr v2, v3

    aput v2, v5, v0

    :cond_1e8
    return v17

    :cond_1e9
    invoke-virtual {v0, v12, v11}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseExtra(Ljava/lang/Object;Ljava/lang/String;)V

    return v16

    :cond_1ed
    new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "setter not found, class "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object v3, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->b:Ljava/lang/Class;

    invoke-virtual {v3}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v3, ", property "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_212
    move-object/from16 v5, p6

    move-object v4, v15

    const/4 v6, 0x0

    :goto_216
    iget-object v7, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v8, v7

    if-ge v6, v8, :cond_223

    aget-object v7, v7, v6

    if-ne v7, v2, :cond_220

    goto :goto_224

    :cond_220
    add-int/lit8 v6, v6, 0x1

    goto :goto_216

    :cond_223
    const/4 v6, -0x1

    :goto_224
    if-eq v6, v3, :cond_23a

    if-eqz v5, :cond_23a

    const-string v3, "_"

    invoke-virtual {v11, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v3

    if-eqz v3, :cond_23a

    invoke-static {v6, v5}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a(I[I)Z

    move-result v3

    if-eqz v3, :cond_23a

    invoke-virtual {v0, v12, v11}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseExtra(Ljava/lang/Object;Ljava/lang/String;)V

    return v16

    :cond_23a
    invoke-virtual {v2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->getFastMatchToken()I

    move-result v3

    invoke-interface {v4, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextTokenWithColon(I)V

    invoke-virtual {v2, v0, v12, v13, v14}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->parseField(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/util/Map;)V

    if-eqz v5, :cond_251

    div-int/lit8 v0, v6, 0x20

    rem-int/lit8 v6, v6, 0x20

    aget v2, v5, v0

    shl-int v3, v17, v6

    or-int/2addr v2, v3

    aput v2, v5, v0

    :cond_251
    return v17
.end method

.method public smartMatch(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;
    .registers 3

    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->smartMatch(Ljava/lang/String;[I)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object p1

    return-object p1
.end method

.method public smartMatch(Ljava/lang/String;[I)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;
    .registers 13

    const/4 v0, 0x0

    if-nez p1, :cond_4

    return-object v0

    :cond_4
    invoke-virtual {p0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;[I)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    move-result-object v1

    if-nez v1, :cond_b3

    iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->g:[J

    const/4 v3, 0x0

    if-nez v2, :cond_2a

    iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v2, v2

    new-array v2, v2, [J

    const/4 v4, 0x0

    :goto_15
    iget-object v5, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v6, v5

    if-ge v4, v6, :cond_25

    aget-object v5, v5, v4

    iget-object v5, v5, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    iget-wide v5, v5, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->nameHashCode:J

    aput-wide v5, v2, v4

    add-int/lit8 v4, v4, 0x1

    goto :goto_15

    :cond_25
    invoke-static {v2}, Ljava/util/Arrays;->sort([J)V

    iput-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->g:[J

    :cond_2a
    invoke-static {p1}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->fnv1a_64_lower(Ljava/lang/String;)J

    move-result-wide v4

    iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->g:[J

    invoke-static {v2, v4, v5}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result v2

    if-gez v2, :cond_40

    invoke-static {p1}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->fnv1a_64_extract(Ljava/lang/String;)J

    move-result-wide v4

    iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->g:[J

    invoke-static {v2, v4, v5}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result v2

    :cond_40
    if-gez v2, :cond_5a

    const-string v4, "is"

    invoke-virtual {p1, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_5b

    const/4 v2, 0x2

    invoke-virtual {p1, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object p1

    invoke-static {p1}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->fnv1a_64_extract(Ljava/lang/String;)J

    move-result-wide v5

    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->g:[J

    invoke-static {p1, v5, v6}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result v2

    goto :goto_5b

    :cond_5a
    const/4 v4, 0x0

    :cond_5b
    :goto_5b
    if-ltz v2, :cond_96

    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->h:[S

    const/4 v5, -0x1

    if-nez p1, :cond_85

    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->g:[J

    array-length p1, p1

    new-array p1, p1, [S

    invoke-static {p1, v5}, Ljava/util/Arrays;->fill([SS)V

    :goto_6a
    iget-object v6, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    array-length v7, v6

    if-ge v3, v7, :cond_83

    iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->g:[J

    aget-object v6, v6, v3

    iget-object v6, v6, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    iget-wide v8, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->nameHashCode:J

    invoke-static {v7, v8, v9}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result v6

    if-ltz v6, :cond_80

    int-to-short v7, v3

    aput-short v7, p1, v6

    :cond_80
    add-int/lit8 v3, v3, 0x1

    goto :goto_6a

    :cond_83
    iput-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->h:[S

    :cond_85
    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->h:[S

    aget-short p1, p1, v2

    if-eq p1, v5, :cond_96

    invoke-static {p1, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a(I[I)Z

    move-result p2

    if-nez p2, :cond_96

    iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->a:[Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;

    aget-object p1, p2, p1

    goto :goto_97

    :cond_96
    move-object p1, v1

    :goto_97
    if-eqz p1, :cond_b4

    iget-object p2, p1, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    iget v1, p2, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->parserFeatures:I

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/Feature;->DisableFieldSmartMatch:Lcom/tradplus/ads/common/serialization/parser/Feature;

    iget v2, v2, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I

    and-int/2addr v1, v2

    if-eqz v1, :cond_a5

    return-object v0

    :cond_a5
    iget-object p2, p2, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    if-eqz v4, :cond_b4

    sget-object v1, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    if-eq p2, v1, :cond_b4

    const-class v1, Ljava/lang/Boolean;

    if-eq p2, v1, :cond_b4

    move-object p1, v0

    goto :goto_b4

    :cond_b3
    move-object p1, v1

    :cond_b4
    :goto_b4
    return-object p1
.end method