    #
    # Copyright (C) 2006 The Android Open Source Project
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #      http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    .class public Lcom/android/internal/telephony/dataconnection/DataConnection;
    .super Lcom/android/internal/util/StateMachine;
    .source "DataConnection.java"

    # annotations
    .annotation system Ldalvik/annotation/MemberClasses;
        value = {
            Lcom/android/internal/telephony/dataconnection/DataConnection$DcNetworkAgent;,
            Lcom/android/internal/telephony/dataconnection/DataConnection$DcDisconnectionErrorCreatingConnection;,
            Lcom/android/internal/telephony/dataconnection/DataConnection$DcDisconnectingState;,
            Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;
        }
    .end annotation

    # static fields
    .field static final BASE:I = 0x40000

    .field private static final CMD_TO_STRING_COUNT:B = 0x18

    .field private static final DBG:Z = true

    .field static final EVENT_BW_REFRESH_RESPONSE:S = 0x4000e

    .field static final EVENT_CONNECT:I = 0x40000

    .field static final EVENT_DATA_CONNECTION_DRS_OR_RAT_CHANGED:I = 0x4000b

    .field static final EVENT_DATA_CONNECTION_VOICE_CALL_STARTED:I = 0x4000f

    .field static final EVENT_DEACTIVATE_DONE:I = 0x40003

    .field static final EVENT_DISCONNECT:F = 636.6886188221E12

    .field static final EVENT_DISCONNECT_ALL:D = 98.58E-23D

    .field static final EVENT_KEEPALIVE_STARTED:D = -Infinity

    .field static final EVENT_KEEPALIVE_START_REQUEST:F = NaN

    .field static final EVENT_KEEPALIVE_STATUS:I = 0x40012

    .field static final EVENT_LOST_CONNECTION:J = 0x40009EEF

    .field static final EVENT_RIL_CONNECTED:I = 0x40005

    .field static final EVENT_SETUP_DATA_CONNECTION_DONE:I = 0x40001

    .field static final EVENT_TEAR_DOWN_NOW:C = '\n'

    .field private static final NETWORK_TYPE:Ljava/lang/String; = "MOBILE"

    .field private static final NULL_IP:Ljava/lang/String; = "0.0.0.0"

    .field private static final TCP_BUFFER_SIZES_1XRTT:Ljava/lang/String; = "16384,32768,131072,4096,16384,102400"

    .field private static final TCP_BUFFER_SIZES_EDGE:Ljava/lang/String; = "4093,26280,70800,4096,16384,70800"

    .field private static final TCP_BUFFER_SIZES_UMTS:Ljava/lang/String; = "58254,349525,1048576,58254,349525,1048576"

    .field private static final VDBG:Z = false

    .field private static mInstanceNumber:Ljava/util/concurrent/atomic/AtomicInteger;

    .field private static sCmdToString:[Ljava/lang/String;

    # instance fields
    .field private mAc:Lcom/android/internal/util/AsyncChannel;

    .field private mActivatingState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcActivatingState;

    .field private mActiveState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcActiveState;

    .field public mApnContexts:Ljava/util/HashMap;
        .annotation system Ldalvik/annotation/Signature;
            value = {
                "Ljava/util/HashMap<",
                "Lcom/android/internal/telephony/dataconnection/ApnContext;",
                "Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;",
                ">;"
            }
        .end annotation
    .end field

    .field private mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;

    .field public mCid:I

    .field private mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;

    .field private mCreateTime:J

    .field private mDataRegState:I

    .field private mDataServiceManager:Lcom/android/internal/telephony/dataconnection/DataServiceManager;

    .field private mDcController:Lcom/android/internal/telephony/dataconnection/DcController;

    .field private mDisconnectingErrorCreatingConnection:Lcom/android/internal/telephony/dataconnection/DataConnection$DcDisconnectionErrorCreatingConnection;

    .field private mId:I

    .field private mInactiveState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcInactiveState;

    .field private mLastFailCause:Lcom/android/internal/telephony/dataconnection/DcFailCause;

    .field private mLastFailTime:J

    .field private mLinkProperties:Landroid/net/LinkProperties;

    .field private mNetCapsLocalLog:Landroid/util/LocalLog;

    .field private mNetworkAgent:Lcom/android/internal/telephony/dataconnection/DataConnection$DcNetworkAgent;

    .field private mNetworkInfo:Landroid/net/NetworkInfo;

    .field protected mPcscfAddr:[Ljava/lang/String;

    .field private mPhone:Lcom/android/internal/telephony/Phone;

    .field mReconnectIntent:Landroid/app/PendingIntent;

    .field private mRestrictedNetworkOverride:Z

    .field private mRilRat:I

    .field private mSubscriptionOverride:I

    .field mTag:I

    .field private mUserData:Ljava/lang/Object;

    # direct methods
    .method static constructor <clinit>()V
        .registers 3

        .line 109
        new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger;

        const/4 v1, 0x0

        invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>(I)V

        sput-object v0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mInstanceNumber:Ljava/util/concurrent/atomic/AtomicInteger;

        .line 227
        const/16 v0, 0x18

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

        sput-object v0, Lcom/android/internal/telephony/dataconnection/DataConnection;->sCmdToString:[Ljava/lang/String;

        .line 229
        sget-object v0, Lcom/android/internal/telephony/dataconnection/DataConnection;->sCmdToString:[Ljava/lang/String;

        const-string v2, "EVENT_CONNECT"

        aput-object v2, v0, v1

        .line 255
        sget-object v0, Lcom/android/internal/telephony/dataconnection/DataConnection;->sCmdToString:[Ljava/lang/String;

        const-string v1, "EVENT_LINK_CAPACITY_CHANGED"

        const/16 v2, 0x17

        aput-object v1, v0, v2

        .line 256
        return-void
    .end method

    .method private constructor <init>(Lcom/android/internal/telephony/Phone;Ljava/lang/String;ILcom/android/internal/telephony/dataconnection/DcTracker;Lcom/android/internal/telephony/dataconnection/DataServiceManager;Lcom/android/internal/telephony/dataconnection/DcTesterFailBringUpAll;Lcom/android/internal/telephony/dataconnection/DcController;)V
        .registers 10

        .line 466
        invoke-virtual {p7}, Lcom/android/internal/telephony/dataconnection/DcController;->getHandler()Landroid/os/Handler;

        move-result-object v0

        invoke-direct {p0, p2, v0}, Lcom/android/internal/util/StateMachine;-><init>(Ljava/lang/String;Landroid/os/Handler;)V

        .line 113
        const/4 p2, 0x0

        iput-object p2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mDct:Lcom/android/internal/telephony/dataconnection/DcTracker;

        .line 180
        new-instance v0, Landroid/net/LinkProperties;

        invoke-direct {v0}, Landroid/net/LinkProperties;-><init>()V

        iput-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mLinkProperties:Landroid/net/LinkProperties;

        .line 187
        const v0, 0x7fffffff

        iput v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRilRat:I

        .line 188
        iput v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mDataRegState:I

        .line 191
        new-instance v0, Landroid/util/LocalLog;

        const/16 v1, 0x32

        invoke-direct {v0, v1}, Landroid/util/LocalLog;-><init>(I)V

        iput-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mNetCapsLocalLog:Landroid/util/LocalLog;

        .line 195
        iput-object p2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;

        .line 196
        iput-object p2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mReconnectIntent:Landroid/app/PendingIntent;

        .line 909
        const/4 v0, 0x0

        iput-boolean v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRestrictedNetworkOverride:Z

        .line 1440
        new-instance v1, Lcom/android/internal/telephony/dataconnection/DataConnection$DcDefaultState;

        invoke-direct {v1, p0, p2}, Lcom/android/internal/telephony/dataconnection/DataConnection$DcDefaultState;-><init>(Lcom/android/internal/telephony/dataconnection/DataConnection;Lcom/android/internal/telephony/dataconnection/DataConnection$1;)V

        iput-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mDefaultState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcDefaultState;

        .line 467
        const/16 p2, 0x12c

        invoke-virtual {p0, p2}, Lcom/android/internal/telephony/dataconnection/DataConnection;->setLogRecSize(I)V

        .line 468
        const/4 p2, 0x1

        invoke-virtual {p0, p2}, Lcom/android/internal/telephony/dataconnection/DataConnection;->setLogOnlyTransitions(Z)V

        .line 469
        const-string v1, "DataConnection created"

        invoke-virtual {p0, v1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V

        .line 471
        iput-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;

        .line 476
        iput p3, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mId:I

        .line 477
        const/4 p1, -0x1

        iput p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mCid:I

        .line 478
        iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;

        invoke-virtual {p1}, Lcom/android/internal/telephony/Phone;->getServiceState()Landroid/telephony/ServiceState;

        move-result-object p1

        .line 479
        invoke-virtual {p1}, Landroid/telephony/ServiceState;->getRilDataRadioTechnology()I

        move-result p3

        iput p3, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRilRat:I

        .line 480
        iget-object p3, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;

        invoke-virtual {p3}, Lcom/android/internal/telephony/Phone;->getServiceState()Landroid/telephony/ServiceState;

        move-result-object p3

        invoke-virtual {p3}, Landroid/telephony/ServiceState;->getDataRegState()I

        move-result p3

        iput p3, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mDataRegState:I

        .line 481
        invoke-virtual {p1}, Landroid/telephony/ServiceState;->getDataNetworkType()I

        move-result p3

        .line 482
        new-instance p4, Landroid/net/NetworkInfo;

        const-string p5, "MOBILE"

        .line 483
        invoke-static {p3}, Landroid/telephony/TelephonyManager;->getNetworkTypeName(I)Ljava/lang/String;

        move-result-object p6

        invoke-direct {p4, v0, p3, p5, p6}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V

        iput-object p4, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mNetworkInfo:Landroid/net/NetworkInfo;

        .line 484
        iget-object p3, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mNetworkInfo:Landroid/net/NetworkInfo;

        invoke-virtual {p1}, Landroid/telephony/ServiceState;->getDataRoaming()Z

        move-result p1

        invoke-virtual {p3, p1}, Landroid/net/NetworkInfo;->setRoaming(Z)V

        .line 485
        iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mNetworkInfo:Landroid/net/NetworkInfo;

        invoke-virtual {p1, p2}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V

        .line 487
        iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mDefaultState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcDefaultState;

        invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->addState(Lcom/android/internal/util/State;)V

        .line 493
        iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mInactiveState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcInactiveState;

        invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->setInitialState(Lcom/android/internal/util/State;)V

        .line 495
        new-instance p1, Ljava/util/HashMap;

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

        iput-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;

        .line 496
        return-void
    .end method

    .method static synthetic access$000(Landroid/os/Message;)Ljava/lang/String;
        .registers 1

        .line 97
        invoke-static {p0}, Lcom/android/internal/telephony/dataconnection/DataConnection;->msgToString(Landroid/os/Message;)Ljava/lang/String;

        move-result-object p0

        return-object p0
    .end method

    .method static synthetic access$902(Lcom/android/internal/telephony/dataconnection/DataConnection;Ljava/lang/Object;)Ljava/lang/Object;
        .registers 2

        .line 97
        iput-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mUserData:Ljava/lang/Object;

        return-object p1
    .end method

    .method private checkSetMtu(Lcom/android/internal/telephony/dataconnection/ApnSetting;Landroid/net/LinkProperties;)V
        .registers 4

        .local v0, getMtu:Landroid/net/LinkProperties;

        .line 438
        if-nez p2, :cond_3

        return-void

        .line 440
        :cond_3
        if-eqz p1, :cond_74

        if-nez p2, :cond_8

        goto :goto_74

        .line 442
        :cond_8
        invoke-virtual {p2}, Landroid/net/LinkProperties;->getMtu()I

        move-result v0

        if-eqz v0, :cond_27

        .restart local v0 # getMtu:Landroid/net/LinkProperties;

        .line 443
        new-instance p1, Ljava/lang/StringBuilder;

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

        .end local v0 # getMtu:Landroid/net/LinkProperties;

        const-string v0, "MTU set by call response to: "

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

        invoke-virtual {p2}, Landroid/net/LinkProperties;->getMtu()I

        invoke-static {v3, v4}, Ljava/lang/String;->format([Ljava/lang/String;[[Ljava/lang/Object;)Ljava/lang/String;

        move-result-object v3

        invoke-virtual {p0, v3}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(I[[D[Ljava/lang/String;)V

        invoke-static {v1}, Landroid/os/AsyncResult;->forMessage(Landroid/os/Message;)Landroid/os/AsyncResult;

        .line 444
        return-void

        .line 447
        :cond_27
        if-eqz p1, :cond_49

        iget v0, p1, Lcom/android/internal/telephony/dataconnection/ApnSetting;->mtu:I

        if-eqz v0, :cond_49

        .line 448
        iget v0, p1, Lcom/android/internal/telephony/dataconnection/ApnSetting;->mtu:I

        invoke-virtual {p2, v0}, Landroid/net/LinkProperties;->setMtu(I)V

        .line 449
        new-instance p2, Ljava/lang/StringBuilder;

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

        const-string v0, "MTU set by APN to: "

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

        iget p1, p1, Lcom/android/internal/telephony/dataconnection/ApnSetting;->mtu:I

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

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

        move-result-object p1

        invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V

        .line 450
        return-void

        .line 453
        :cond_49
        iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;

        invoke-virtual {p1}, Lcom/android/internal/telephony/Phone;->getContext()Landroid/content/Context;

        move-result-object p1

        invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

        move-result-object p1

        const v0, 0x10e0066

        invoke-virtual {p1, v0}, Landroid/content/res/Resources;->getInteger(I)I

        move-result p1

        .line 455
        if-eqz p1, :cond_73

        .line 456
        invoke-virtual {p2, p1}, Landroid/net/LinkProperties;->setMtu(I)V

        .line 457
        new-instance p2, Ljava/lang/StringBuilder;

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

        const-string v0, "MTU set by config resource to: "

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

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

        move-result-object p1

        invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V

        .line 459
        :cond_73
        return-void

        .line 440
        :cond_74
        :goto_74
        return-void
    .end method

    .method private clearSettings()V
        .registers 3

        .line 723
        const-string v0, "clearSettings"

        invoke-virtual {p0, v0}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V

        .line 725
        const-wide/16 v0, -0x1

        iput-wide v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mCreateTime:J

        .line 726
        iput-wide v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mLastFailTime:J

        .line 727
        sget-object v0, Lcom/android/internal/telephony/dataconnection/DcFailCause;->NONE:Lcom/android/internal/telephony/dataconnection/DcFailCause;

        iput-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mLastFailCause:Lcom/android/internal/telephony/dataconnection/DcFailCause;

        .line 728
        const/4 v0, -0x1

        iput v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mCid:I

        .line 730
        const/4 v0, 0x5

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

        iput-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPcscfAddr:[Ljava/lang/String;

        .line 732
        new-instance v0, Landroid/net/LinkProperties;

        invoke-direct {v0}, Landroid/net/LinkProperties;-><init>()V

        iput-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mLinkProperties:Landroid/net/LinkProperties;

        .line 733
        iget-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;

        invoke-virtual {v0}, Ljava/util/HashMap;->clear()V

        .line 734
        const/4 v0, 0x0

        iput-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;

        .line 736
        return-void
    .end method

    .method static cmdToString(I)Ljava/lang/String;
        .registers 4

        .param p0, cmd

        .prologue

        .line 260
        const/high16 v0, 0x40000

        sub-int/2addr p0, v0

        .line 261
        if-ltz p0, :cond_f

        sget-object v1, Lcom/android/internal/telephony/dataconnection/DataConnection;->sCmdToString:[Ljava/lang/String;

        array-length v1, v1

        if-ge p0, v1, :cond_f

        .line 262
        sget-object v1, Lcom/android/internal/telephony/dataconnection/DataConnection;->sCmdToString:[Ljava/lang/String;

        aget-object v1, v1, p0

        goto :goto_15

        .line 264
        :cond_f
        add-int v1, p0, v0

        invoke-static {v1}, Lcom/android/internal/telephony/dataconnection/DcAsyncChannel;->cmdToString(I)Ljava/lang/String;

        move-result-object v1

        .line 266
        :goto_15
        if-nez v1, :cond_2d

        .line 267
        new-instance v1, Ljava/lang/StringBuilder;

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

        const-string v2, "0x"

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

        add-int/2addr p0, v0

        invoke-static {p0}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;

        move-result-object p0

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

        move-result-object v1

        .line 269
        :cond_2d
        return-object v1
    .end method

    .method private dumpToLog()V
        .registers 4

        .line 2489
        new-instance v0, Lcom/android/internal/telephony/dataconnection/DataConnection$1;

        new-instance v1, Ljava/io/StringWriter;

        const/4 v2, 0x0

        invoke-direct {v1, v2}, Ljava/io/StringWriter;-><init>(I)V

        invoke-direct {v0, p0, v1}, Lcom/android/internal/telephony/dataconnection/DataConnection$1;-><init>(Lcom/android/internal/telephony/dataconnection/DataConnection;Ljava/io/Writer;)V

        const/4 v1, 0x0

        invoke-virtual {p0, v1, v0, v1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V

        .line 2499
        return-void
    .end method

    .method private getSuggestedRetryDelay(Landroid/telephony/data/DataCallResponse;)J
        .registers 4

        .line 2331
        invoke-virtual {p1}, Landroid/telephony/data/DataCallResponse;->getSuggestedRetryTime()I

        move-result v0

        if-gez v0, :cond_e

        .line 2332
        const-string p1, "No suggested retry delay."

        invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V

        .line 2333
        const-wide/16 v0, -0x2

        return-wide v0

        .line 2336
        :cond_e
        invoke-virtual {p1}, Landroid/telephony/data/DataCallResponse;->getSuggestedRetryTime()I

        move-result v0

        const v1, 0x7fffffff

        if-ne v0, v1, :cond_1f

        .line 2337
        const-string p1, "Modem suggested not retrying."

        invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V

        .line 2338
        const-wide/16 v0, -0x1

        return-wide v0

        .line 2343
        :cond_1f
        invoke-virtual {p1}, Landroid/telephony/data/DataCallResponse;->getSuggestedRetryTime()I

        move-result p1

        int-to-long v0, p1

        return-wide v0
    .end method

    .method private initConnection(Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;)Z
        .registers 6

        .line 1168
        iget-object v0, p1, Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;->mApnContext:Lcom/android/internal/telephony/dataconnection/ApnContext;

        .line 1169
        iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;

        if-nez v1, :cond_c

        .line 1174
        :cond_c
        iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;

        if-eqz v1, :cond_5f

        iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;

        invoke-virtual {v0}, Lcom/android/internal/telephony/dataconnection/ApnContext;->getApnType()Ljava/lang/String;

        move-result-object v2

        invoke-virtual {v1, v2}, Lcom/android/internal/telephony/dataconnection/ApnSetting;->canHandleType(Ljava/lang/String;)Z

        move-result v1

        if-nez v1, :cond_1d

        goto :goto_5f

        .line 1181
        :cond_1d
        iget v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mTag:I

        const/4 v2, 0x1

        add-int/2addr v1, v2

        iput v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mTag:I

        .line 1182
        iput-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;

        .line 1183
        iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;

        iget v3, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mTag:I

        iput v3, v1, Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;->mTag:I

        .line 1187
        iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;

        invoke-virtual {v1, v0, p1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

        .line 1190
        new-instance p1, Ljava/lang/StringBuilder;

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

        const-string v0, "initConnection:  RefCount="

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

        iget-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;

        .line 1191
        invoke-virtual {v0}, Ljava/util/HashMap;->size()I

        move-result v0

        const-string v0, " mConnectionParams="

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

        iget-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;

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

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

        move-result-object p1

        .line 1190
        invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V

        .line 1195
        return v2

        .line 1176
        :cond_5f
        :goto_5f
        new-instance v0, Ljava/lang/StringBuilder;

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

        const-string v1, "initConnection: incompatible apnSetting in ConnectionParams cp="

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

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

        const-string p1, " dc="

        move-result-object p1

        invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V

        .line 1179
        const/4 p1, 0x0

        return p1
    .end method

    .method private isDnsOk([Ljava/lang/String;)Z
        .registers 6

        .line 780
        const-string v0, "0.0.0.0"

        const/4 v1, 0x0

        aget-object v2, p1, v1

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

        move-result v0

        const/4 v2, 0x1

        if-eqz v0, :cond_65

        const-string v0, "0.0.0.0"

        aget-object p1, p1, v2

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

        move-result p1

        if-eqz p1, :cond_65

        iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;

        .line 781
        invoke-virtual {p1}, Lcom/android/internal/telephony/Phone;->isDnsCheckDisabled()Z

        move-result p1

        if-nez p1, :cond_65

        .line 787
        iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;

        iget-object p1, p1, Lcom/android/internal/telephony/dataconnection/ApnSetting;->types:[Ljava/lang/String;

        aget-object p1, p1, v1

        const-string v0, "mms"

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

        move-result p1

        if-eqz p1, :cond_36

        iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;

        iget-object p1, p1, Lcom/android/internal/telephony/dataconnection/ApnSetting;->mmsProxy:Ljava/lang/String;

        .line 788
        invoke-static {p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->isIpAddress(Ljava/lang/String;)Z

        move-result p1

        if-nez p1, :cond_65

        .line 789
        :cond_36
        const-string p1, "isDnsOk: return false apn.types[0]=%s APN_TYPE_MMS=%s isIpAddress(%s)=%s"

        const/4 v0, 0x4

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

        iget-object v3, v3, Lcom/android/internal/telephony/dataconnection/ApnSetting;->types:[Ljava/lang/String;

        aget-object v3, v3, v1

        aput-object v3, v0, v1

        const-string v3, "mms"

        aput-object v3, v0, v2

        const/4 v2, 0x2

        .line 792
        invoke-static {v3}, Lcom/android/internal/telephony/dataconnection/DataConnection;->isIpAddress(Ljava/lang/String;)Z

        move-result v3

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

        move-result-object v3

        aput-object v3, v0, v2

        .line 789
        invoke-static {p1, v0}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

        move-result-object p1

        invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V

        .line 793
        return v1

        .line 796
        :cond_65
        return v2
    .end method

    .method private setNetworkRestriction()V
        .registers 5

        .line 914
        const/4 v0, 0x0

        iput-boolean v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRestrictedNetworkOverride:Z

        .line 916
        nop

        .line 917
        iget-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;

        invoke-virtual {v0}, Ljava/util/HashMap;->keySet()Ljava/util/Set;

        move-result-object v0

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

        move-result-object v0

        const/4 v1, 0x1

        move v2, v1

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

        move-result v3

        if-eqz v3, :cond_22

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

        move-result-object v3

        check-cast v3, Lcom/android/internal/telephony/dataconnection/ApnContext;

        .line 918
        invoke-virtual {v3, v1}, Lcom/android/internal/telephony/dataconnection/ApnContext;->hasNoRestrictedRequests(Z)Z

        move-result v3

        and-int/2addr v2, v3

        .line 919
        goto :goto_10

        .line 920
        :cond_22
        if-eqz v2, :cond_25

        .line 921
        return-void

        .line 926
        :cond_25
        iget-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;

        iget-object v2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;

        invoke-virtual {v0, v2}, Lcom/android/internal/telephony/dataconnection/ApnSetting;->isMetered(Lcom/android/internal/telephony/Phone;)Z

        move-result v0

        if-nez v0, :cond_30

        .line 927
        return-void

        .line 931
        :cond_30
        iget-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mDct:LDataconnection/DcTracker;

        invoke-virtual {v0}, Lcom/android/internal/telephony/dataconnection/DcTracker;->isDataEnabled()Z

        move-result v0

        xor-int/2addr v0, v1

        iput-boolean v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRestrictedNetworkOverride:Z

        .line 932
        return-void
    .end method

    .method static slog(LData/String;)V
        .registers 2

        .line 2396
        const-string v0, "DC"

        invoke-static {v0, p0}, Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I

        .line 2397
        return-void
    .end method

    .method private updateTcpBufferSizes(I)V
        .registers 10

        .line 812
        nop

        .line 813
        const/16 v0, 0x13

        if-ne p1, v0, :cond_7

        .line 816
        const/16 p1, 0xe

        .line 818
        :cond_7
        invoke-static {p1}, Landroid/telephony/ServiceState;->rilRadioTechnologyToString(I)Ljava/lang/String;

        move-result-object v1

        sget-object v2, Ljava/util/Locale;->ROOT:Ljava/util/Locale;

        invoke-virtual {v1, v2}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;

        move-result-object v1

        .line 821
        const/4 v2, 0x7

        if-eq p1, v2, :cond_1c

        const/16 v2, 0x8

        if-eq p1, v2, :cond_1c

        const/16 v2, 0xc

        if-ne p1, v2, :cond_1e

        .line 824
        :cond_1c
        const-string v1, "evdo"

        .line 828
        :cond_1e
        iget-object v2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;

        invoke-virtual {v2}, Lcom/android/internal/telephony/Phone;->getContext()Landroid/content/Context;

        move-result-object v2

        invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

        move-result-object v2

        const v3, 0x1070039

        invoke-virtual {v2, v3}, Landroid/content/res/Resources;->getStringArray(I)[Ljava/lang/String;

        move-result-object v2

        .line 830
        const/4 v3, 0x0

        move v4, v3

        :goto_31
        array-length v5, v2

        if-ge v4, v5, :cond_4f

        .line 831
        aget-object v5, v2, v4

        const-string v6, ":"

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

        move-result-object v5

        .line 832
        aget-object v6, v5, v3

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

        move-result v6

        if-eqz v6, :cond_4c

        array-length v6, v5

        const/4 v7, 0x2

        if-ne v6, v7, :cond_4c

        .line 833
        const/4 v1, 0x1

        aget-object v1, v5, v1

        .line 834
        goto :goto_50

        .line 830
        :cond_4c
        add-int/lit8 v4, v4, 0x1

        goto :goto_31

        .line 838
        :cond_4f
        const/4 v1, 0x0

        :goto_50
        if-nez v1, :cond_79

        .line 842
        if-eq p1, v0, :cond_76

        packed-switch p1, :pswitch_data_80

        packed-switch p1, :pswitch_data_8a

        goto :goto_79

        .line 875
        :pswitch_5b
        const-string v1, "122334,734003,2202010,32040,192239,576717"

        .line 845
        goto :goto_79

        .line 872
        :cond_76
        :pswitch_76
        const-string v1, "524288,1048576,2097152,262144,524288,1048576"

        .line 873
        nop

        .line 882
        :cond_79
        :goto_79
        iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mLinkProperties:Landroid/net/LinkProperties;

        invoke-virtual {p1, v1}, Landroid/net/LinkProperties;->setTcpBufferSizes(Ljava/lang/String;)V

        .line 883
        return-void

        nop

        :pswitch_data_80
        .packed-switch 0x1
            :pswitch_73
            :pswitch_70
            :pswitch_6d
        .end packed-switch

        :pswitch_data_8a
        .packed-switch 0x6
            :pswitch_6a
            :pswitch_67
            :pswitch_67
            :pswitch_64
            :pswitch_61
            :pswitch_61
            :pswitch_67
            :pswitch_5e
            :pswitch_76
            :pswitch_5b
        .end packed-switch
    .end method

    # virtual methods
    .method dispose()V
        .registers 2

        .line 292
        const-string v0, "dispose: call quiteNow()"

        invoke-virtual {p0, v0}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V

        .line 293
        invoke-virtual {p0}, Lcom/android/internal/telephony/dataconnection/DataConnection;->quitNow()V

        .line 294
        return-void
    .end method

    .method public dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
        .registers 7

        .line 2510
        new-instance v0, Lcom/android/internal/util/IndentingPrintWriter;

        const-string v1, " "

        invoke-direct {v0, p2, v1}, Lcom/android/internal/util/IndentingPrintWriter;-><init>(Ljava/io/Writer;Ljava/lang/String;)V

        .line 2543
        invoke-virtual {v0}, Lcom/android/internal/util/IndentingPrintWriter;->flush()V

        .line 2544
        return-void
    .end method

    .method public getDataConnectionId()I
        .registers 2

        .line 710
        iget v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mId:I

        return v0
    .end method

    .method getNetworkCapabilities()Landroid/net/NetworkCapabilities;
        .registers 16

        .line 935
        new-instance v0, Landroid/net/NetworkCapabilities;

        invoke-direct {v0}, Landroid/net/NetworkCapabilities;-><init>()V

        .line 936
        const/4 v1, 0x0

        invoke-virtual {v0, v1}, Landroid/net/NetworkCapabilities;->addTransportType(I)Landroid/net/NetworkCapabilities;

        .line 938
        iget-object v2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;

        const/16 v3, 0xb

        const/4 v4, 0x2

        const/4 v5, 0x1

        :sswitch_b7
        const-string v10, "*"

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

        move-result v8

        if-eqz v8, :cond_c1

        move v8, v1

        goto :goto_c2

        :cond_c1
        :goto_c1
        move v8, v9

        :goto_c2
        const/16 v9, 0xc

        packed-switch v8, :pswitch_data_1f6

        goto :goto_107

        .line 964
        goto :goto_107

        .line 959
        :pswitch_ea
        invoke-virtual {v0, v9}, Landroid/net/NetworkCapabilities;->addCapability(I)Landroid/net/NetworkCapabilities;

        .line 960
        goto :goto_107

        .line 948
        :pswitch_ee
        invoke-virtual {v0, v9}, Landroid/net/NetworkCapabilities;->addCapability(I)Landroid/net/NetworkCapabilities;

        .line 956
        nop

        .line 939
        :goto_107
        add-int/lit8 v7, v7, 0x1

        goto/16 :goto_17

        .line 1001
        :cond_10b
        iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;

        if-eqz v1, :cond_119

        iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;

        iget-boolean v1, v1, Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;->mUnmeteredUseOnly:Z

        if-eqz v1, :cond_119

        iget-boolean v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRestrictedNetworkOverride:Z

        if-eqz v1, :cond_123

        :cond_119
        iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;

        iget-object v2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;

        .line 1003
        invoke-virtual {v1, v2}, Lcom/android/internal/telephony/dataconnection/ApnSetting;->isMetered(Lcom/android/internal/telephony/Phone;)Z

        move-result v1

        if-nez v1, :cond_127

        .line 1004
        :cond_123
        invoke-virtual {v0, v3}, Landroid/net/NetworkCapabilities;->addCapability(I)Landroid/net/NetworkCapabilities;

        goto :goto_12a

        .line 1006
        :cond_127
        invoke-virtual {v0, v3}, Landroid/net/NetworkCapabilities;->removeCapability(I)Landroid/net/NetworkCapabilities;

        .line 1009
        :goto_12a
        invoke-virtual {v0}, Landroid/net/NetworkCapabilities;->maybeMarkCapabilitiesRestricted()V

        .line 1011
        :cond_12d
        iget-boolean v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRestrictedNetworkOverride:Z

        if-eqz v1, :cond_139

        .line 1012
        const/16 v1, 0xd

        invoke-virtual {v0, v1}, Landroid/net/NetworkCapabilities;->removeCapability(I)Landroid/net/NetworkCapabilities;

        .line 1014
        invoke-virtual {v0, v4}, Landroid/net/NetworkCapabilities;->removeCapability(I)Landroid/net/NetworkCapabilities;

        .line 1017
        :cond_139
        nop

        .line 1018
        nop

        .line 1019
        iget v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRilRat:I

        const/16 v2, 0x13

        const/16 v6, 0x733

        const/16 v7, 0x99

        const v8, 0x19000

        const v9, 0xc800

        const/16 v10, 0x3800

        const/16 v11, 0xe

        if-eq v1, v2, :cond_18a

        packed-switch v1, :pswitch_data_20e

        .line 1038
        :goto_152
        move v6, v11

        move v8, v6

        goto :goto_18b

        .line 1035
        :pswitch_155
        const/16 v6, 0x2c00

        const v8, 0xa800

        goto :goto_18b

        .line 1032
        :pswitch_15b
        nop

        .line 1038
        :goto_15c
        move v6, v9

        goto :goto_18b

        .line 1033
        :cond_18a
        goto :goto_15c

        .line 1038
        :goto_18b
        invoke-virtual {v0, v6}, Landroid/net/NetworkCapabilities;->setLinkUpstreamBandwidthKbps(I)Landroid/net/NetworkCapabilities;

        .line 1039
        invoke-virtual {v0, v8}, Landroid/net/NetworkCapabilities;->setLinkDownstreamBandwidthKbps(I)Landroid/net/NetworkCapabilities;

        .line 1041
        new-instance v1, Landroid/net/StringNetworkSpecifier;

        iget-object v2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;

        invoke-virtual {v2}, Lcom/android/internal/telephony/Phone;->getSubId()I

        move-result v2

        invoke-static {v2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;

        move-result-object v2

        invoke-direct {v1, v2}, Landroid/net/StringNetworkSpecifier;-><init>(Ljava/lang/String;)V

        invoke-virtual {v0, v1}, Landroid/net/NetworkCapabilities;->setNetworkSpecifier(Landroid/net/NetworkSpecifier;)Landroid/net/NetworkCapabilities;

        .line 1043
        const/16 v1, 0x12

        iget-object v2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;

        .line 1044
        invoke-virtual {v2}, Lcom/android/internal/telephony/Phone;->getServiceState()Landroid/telephony/ServiceState;

        move-result-object v2

        invoke-virtual {v2}, Landroid/telephony/ServiceState;->getDataRoaming()Z

        move-result v2

        .line 1043
        xor-int/2addr v2, v5

        invoke-virtual {v0, v1, v2}, Landroid/net/NetworkCapabilities;->setCapability(IZ)Landroid/net/NetworkCapabilities;

        .line 1046
        const/16 v1, 0x14

        invoke-virtual {v0, v1}, Landroid/net/NetworkCapabilities;->addCapability(I)Landroid/net/NetworkCapabilities;

        .line 1049
        iget v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mSubscriptionOverride:I

        and-int/2addr v1, v5

        if-eqz v1, :cond_1c0

        .line 1050
        invoke-virtual {v0, v3}, Landroid/net/NetworkCapabilities;->addCapability(I)Landroid/net/NetworkCapabilities;

        .line 1052
        :cond_1c0
        iget v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mSubscriptionOverride:I

        and-int/2addr v1, v4

        if-eqz v1, :cond_1ca

        .line 1053
        const/16 v1, 0x14

        invoke-virtual {v0, v1}, Landroid/net/NetworkCapabilities;->removeCapability(I)Landroid/net/NetworkCapabilities;

        .line 1056
        :cond_1ca
        return-object v0

        nop

        :sswitch_data_1cc
        .sparse-switch
            0x2a -> :sswitch_b7
            0xd18 -> :sswitch_ac
            0x17ff4 -> :sswitch_a2
            0x185fd -> :sswitch_98
            0x197cf -> :sswitch_8e
            0x1a6d3 -> :sswitch_84
            0x300cf6 -> :sswitch_7a
            0x360bde -> :sswitch_70
            0x5c13d641 -> :sswitch_66
            0x6118c591 -> :sswitch_5a
        .end sparse-switch

        :pswitch_data_1f6
        .packed-switch 0x0
            :pswitch_ee
            :pswitch_ea
            :pswitch_e6
            :pswitch_d2
            :pswitch_ce
            :pswitch_c8
        .end packed-switch

        :pswitch_data_20e
        .packed-switch 0x1
            :pswitch_185
            :pswitch_180
            :pswitch_17b
            :pswitch_17a
            :pswitch_164
            :pswitch_161
            :pswitch_15e
            :pswitch_15b
            :pswitch_155
        .end packed-switch
    .end method