granularity level: instruction

		.class public Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;
.super Ljava/lang/Object;
.source "com.google.android.gms:play-services-basement@@18.1.0"

.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException;
}
.end annotation



.method private constructor <init>()V
	.locals 0

	invoke-direct {p0}, Ljava/lang/Object;-><init>()V
	return-void
.end method

.method public static createBigDecimal(Landroid/os/Parcel;I)Ljava/math/BigDecimal;
	.locals 3

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createByteArray()[B
	move-result-object v1
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	new-instance p0, Ljava/math/BigDecimal;
	new-instance p1, Ljava/math/BigInteger;
	invoke-direct {p1, v1}, Ljava/math/BigInteger;-><init>([B)V
	invoke-direct {p0, p1, v2}, Ljava/math/BigDecimal;-><init>(Ljava/math/BigInteger;I)V
	return-object p0
.end method

.method public static createBigDecimalArray(Landroid/os/Parcel;I)[Ljava/math/BigDecimal;
	.locals 8

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v1
	new-array v2, v1, [Ljava/math/BigDecimal;
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v1, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->createByteArray()[B
	move-result-object v4
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v5
	new-instance v6, Ljava/math/BigDecimal;
	new-instance v7, Ljava/math/BigInteger;
	invoke-direct {v7, v4}, Ljava/math/BigInteger;-><init>([B)V
	invoke-direct {v6, v7, v5}, Ljava/math/BigDecimal;-><init>(Ljava/math/BigInteger;I)V
	aput-object v6, v2, v3
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v2
.end method

.method public static createBigInteger(Landroid/os/Parcel;I)Ljava/math/BigInteger;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createByteArray()[B
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	new-instance p0, Ljava/math/BigInteger;
	invoke-direct {p0, v1}, Ljava/math/BigInteger;-><init>([B)V
	return-object p0
.end method

.method public static createBigIntegerArray(Landroid/os/Parcel;I)[Ljava/math/BigInteger;
	.locals 6

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v1
	new-array v2, v1, [Ljava/math/BigInteger;
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v1, :cond_1
	new-instance v4, Ljava/math/BigInteger;
	invoke-virtual {p0}, Landroid/os/Parcel;->createByteArray()[B
	move-result-object v5
	invoke-direct {v4, v5}, Ljava/math/BigInteger;-><init>([B)V
	aput-object v4, v2, v3
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v2
.end method

.method public static createBooleanArray(Landroid/os/Parcel;I)[Z
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createBooleanArray()[Z
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createBooleanList(Landroid/os/Parcel;I)Ljava/util/ArrayList;
	.locals 6
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Ljava/util/ArrayList<",
	"Ljava/lang/Boolean;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	new-instance v1, Ljava/util/ArrayList;
	invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	const/4 v3, 0x0
	const/4 v4, 0x0
	:goto_0
	if-ge v4, v2, :cond_2
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v5
	if-eqz v5, :cond_1
	const/4 v5, 0x1
	goto :goto_1
	:cond_1
	const/4 v5, 0x0
	:goto_1
	invoke-static {v5}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
	move-result-object v5
	invoke-virtual {v1, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
	add-int/lit8 v4, v4, 0x1
	goto :goto_0
	:cond_2
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createBundle(Landroid/os/Parcel;I)Landroid/os/Bundle;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readBundle()Landroid/os/Bundle;
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createByteArray(Landroid/os/Parcel;I)[B
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createByteArray()[B
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createByteArrayArray(Landroid/os/Parcel;I)[[B
	.locals 5

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v1
	new-array v2, v1, [[B
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v1, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->createByteArray()[B
	move-result-object v4
	aput-object v4, v2, v3
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v2
.end method

.method public static createByteArraySparseArray(Landroid/os/Parcel;I)Landroid/util/SparseArray;
	.locals 6
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Landroid/util/SparseArray<",
	"[B>;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v1
	new-instance v2, Landroid/util/SparseArray;
	invoke-direct {v2, v1}, Landroid/util/SparseArray;-><init>(I)V
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v1, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v4
	invoke-virtual {p0}, Landroid/os/Parcel;->createByteArray()[B
	move-result-object v5
	invoke-virtual {v2, v4, v5}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v2
.end method

.method public static createCharArray(Landroid/os/Parcel;I)[C
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createCharArray()[C
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createDoubleArray(Landroid/os/Parcel;I)[D
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createDoubleArray()[D
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createDoubleList(Landroid/os/Parcel;I)Ljava/util/ArrayList;
	.locals 6
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Ljava/util/ArrayList<",
	"Ljava/lang/Double;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	new-instance v1, Ljava/util/ArrayList;
	invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v2, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->readDouble()D
	move-result-wide v4
	invoke-static {v4, v5}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
	move-result-object v4
	invoke-virtual {v1, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createDoubleSparseArray(Landroid/os/Parcel;I)Landroid/util/SparseArray;
	.locals 7
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Landroid/util/SparseArray<",
	"Ljava/lang/Double;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	new-instance v1, Landroid/util/SparseArray;
	invoke-direct {v1}, Landroid/util/SparseArray;-><init>()V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v2, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v4
	invoke-virtual {p0}, Landroid/os/Parcel;->readDouble()D
	move-result-wide v5
	invoke-static {v5, v6}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
	move-result-object v5
	invoke-virtual {v1, v4, v5}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createFloatArray(Landroid/os/Parcel;I)[F
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createFloatArray()[F
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createFloatList(Landroid/os/Parcel;I)Ljava/util/ArrayList;
	.locals 5
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Ljava/util/ArrayList<",
	"Ljava/lang/Float;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	new-instance v1, Ljava/util/ArrayList;
	invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v2, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->readFloat()F
	move-result v4
	invoke-static {v4}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
	move-result-object v4
	invoke-virtual {v1, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createFloatSparseArray(Landroid/os/Parcel;I)Landroid/util/SparseArray;
	.locals 6
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Landroid/util/SparseArray<",
	"Ljava/lang/Float;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	new-instance v1, Landroid/util/SparseArray;
	invoke-direct {v1}, Landroid/util/SparseArray;-><init>()V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v2, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v4
	invoke-virtual {p0}, Landroid/os/Parcel;->readFloat()F
	move-result v5
	invoke-static {v5}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
	move-result-object v5
	invoke-virtual {v1, v4, v5}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createIBinderArray(Landroid/os/Parcel;I)[Landroid/os/IBinder;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createBinderArray()[Landroid/os/IBinder;
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createIBinderList(Landroid/os/Parcel;I)Ljava/util/ArrayList;
	.locals 2
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Ljava/util/ArrayList<",
	"Landroid/os/IBinder;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createBinderArrayList()Ljava/util/ArrayList;
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createIBinderSparseArray(Landroid/os/Parcel;I)Landroid/util/SparseArray;
	.locals 6
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Landroid/util/SparseArray<",
	"Landroid/os/IBinder;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v1
	new-instance v2, Landroid/util/SparseArray;
	invoke-direct {v2, v1}, Landroid/util/SparseArray;-><init>(I)V
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v1, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v4
	invoke-virtual {p0}, Landroid/os/Parcel;->readStrongBinder()Landroid/os/IBinder;
	move-result-object v5
	invoke-virtual {v2, v4, v5}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v2
.end method

.method public static createIntArray(Landroid/os/Parcel;I)[I
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createIntArray()[I
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createIntegerList(Landroid/os/Parcel;I)Ljava/util/ArrayList;
	.locals 5
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Ljava/util/ArrayList<",
	"Ljava/lang/Integer;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	new-instance v1, Ljava/util/ArrayList;
	invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v2, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v4
	invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
	move-result-object v4
	invoke-virtual {v1, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createLongArray(Landroid/os/Parcel;I)[J
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createLongArray()[J
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createLongList(Landroid/os/Parcel;I)Ljava/util/ArrayList;
	.locals 6
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Ljava/util/ArrayList<",
	"Ljava/lang/Long;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	new-instance v1, Ljava/util/ArrayList;
	invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v2, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->readLong()J
	move-result-wide v4
	invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
	move-result-object v4
	invoke-virtual {v1, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createParcel(Landroid/os/Parcel;I)Landroid/os/Parcel;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
	move-result-object v1
	invoke-virtual {v1, p0, v0, p1}, Landroid/os/Parcel;->appendFrom(Landroid/os/Parcel;II)V
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createParcelArray(Landroid/os/Parcel;I)[Landroid/os/Parcel;
	.locals 8

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	const/4 v1, 0x0
	if-nez p1, :cond_0
	return-object v1
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	new-array v3, v2, [Landroid/os/Parcel;
	const/4 v4, 0x0
	:goto_0
	if-ge v4, v2, :cond_2
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v5
	if-eqz v5, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v6
	invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
	move-result-object v7
	invoke-virtual {v7, p0, v6, v5}, Landroid/os/Parcel;->appendFrom(Landroid/os/Parcel;II)V
	aput-object v7, v3, v4
	add-int/2addr v6, v5
	invoke-virtual {p0, v6}, Landroid/os/Parcel;->setDataPosition(I)V
	goto :goto_1
	:cond_1
	aput-object v1, v3, v4
	:goto_1
	add-int/lit8 v4, v4, 0x1
	goto :goto_0
	:cond_2
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v3
.end method

.method public static createParcelList(Landroid/os/Parcel;I)Ljava/util/ArrayList;
	.locals 8
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Ljava/util/ArrayList<",
	"Landroid/os/Parcel;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	const/4 v1, 0x0
	if-nez p1, :cond_0
	return-object v1
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	new-instance v3, Ljava/util/ArrayList;
	invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
	const/4 v4, 0x0
	:goto_0
	if-ge v4, v2, :cond_2
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v5
	if-eqz v5, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v6
	invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
	move-result-object v7
	invoke-virtual {v7, p0, v6, v5}, Landroid/os/Parcel;->appendFrom(Landroid/os/Parcel;II)V
	invoke-virtual {v3, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
	add-int/2addr v6, v5
	invoke-virtual {p0, v6}, Landroid/os/Parcel;->setDataPosition(I)V
	goto :goto_1
	:cond_1
	invoke-virtual {v3, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
	:goto_1
	add-int/lit8 v4, v4, 0x1
	goto :goto_0
	:cond_2
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v3
.end method

.method public static createParcelSparseArray(Landroid/os/Parcel;I)Landroid/util/SparseArray;
	.locals 9
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Landroid/util/SparseArray<",
	"Landroid/os/Parcel;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	const/4 v1, 0x0
	if-nez p1, :cond_0
	return-object v1
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	new-instance v3, Landroid/util/SparseArray;
	invoke-direct {v3}, Landroid/util/SparseArray;-><init>()V
	const/4 v4, 0x0
	:goto_0
	if-ge v4, v2, :cond_2
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v5
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v6
	if-eqz v6, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v7
	invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
	move-result-object v8
	invoke-virtual {v8, p0, v7, v6}, Landroid/os/Parcel;->appendFrom(Landroid/os/Parcel;II)V
	invoke-virtual {v3, v5, v8}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
	add-int/2addr v7, v6
	invoke-virtual {p0, v7}, Landroid/os/Parcel;->setDataPosition(I)V
	goto :goto_1
	:cond_1
	invoke-virtual {v3, v5, v1}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
	:goto_1
	add-int/lit8 v4, v4, 0x1
	goto :goto_0
	:cond_2
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v3
.end method

.method public static createParcelable(Landroid/os/Parcel;ILandroid/os/Parcelable$Creator;)Landroid/os/Parcelable;
	.locals 1
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"<T::",
	"Landroid/os/Parcelable;",
	">(",
	"Landroid/os/Parcel;",
	"I",
	"Landroid/os/Parcelable$Creator<",
	"TT;>;)TT;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-interface {p2, p0}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
	move-result-object p2
	check-cast p2, Landroid/os/Parcelable;
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object p2
.end method

.method public static createSparseBooleanArray(Landroid/os/Parcel;I)Landroid/util/SparseBooleanArray;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readSparseBooleanArray()Landroid/util/SparseBooleanArray;
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createSparseIntArray(Landroid/os/Parcel;I)Landroid/util/SparseIntArray;
	.locals 6

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	new-instance v1, Landroid/util/SparseIntArray;
	invoke-direct {v1}, Landroid/util/SparseIntArray;-><init>()V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v2, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v4
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v5
	invoke-virtual {v1, v4, v5}, Landroid/util/SparseIntArray;->append(II)V
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createSparseLongArray(Landroid/os/Parcel;I)Landroid/util/SparseLongArray;
	.locals 7

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	new-instance v1, Landroid/util/SparseLongArray;
	invoke-direct {v1}, Landroid/util/SparseLongArray;-><init>()V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v2, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v4
	invoke-virtual {p0}, Landroid/os/Parcel;->readLong()J
	move-result-wide v5
	invoke-virtual {v1, v4, v5, v6}, Landroid/util/SparseLongArray;->append(IJ)V
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createString(Landroid/os/Parcel;I)Ljava/lang/String;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readString()Ljava/lang/String;
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createStringArray(Landroid/os/Parcel;I)[Ljava/lang/String;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createStringArray()[Ljava/lang/String;
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createStringList(Landroid/os/Parcel;I)Ljava/util/ArrayList;
	.locals 2
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Ljava/util/ArrayList<",
	"Ljava/lang/String;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->createStringArrayList()Ljava/util/ArrayList;
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createStringSparseArray(Landroid/os/Parcel;I)Landroid/util/SparseArray;
	.locals 6
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Landroid/os/Parcel;",
	"I)",
	"Landroid/util/SparseArray<",
	"Ljava/lang/String;",
	">;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	new-instance v1, Landroid/util/SparseArray;
	invoke-direct {v1}, Landroid/util/SparseArray;-><init>()V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	const/4 v3, 0x0
	:goto_0
	if-ge v3, v2, :cond_1
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v4
	invoke-virtual {p0}, Landroid/os/Parcel;->readString()Ljava/lang/String;
	move-result-object v5
	invoke-virtual {v1, v4, v5}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
	add-int/lit8 v3, v3, 0x1
	goto :goto_0
	:cond_1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static createTypedArray(Landroid/os/Parcel;ILandroid/os/Parcelable$Creator;)[Ljava/lang/Object;
	.locals 1
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"<T:",
	"Ljava/lang/Object;",
	">(",
	"Landroid/os/Parcel;",
	"I",
	"Landroid/os/Parcelable$Creator<",
	"TT;>;)[TT;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0, p2}, Landroid/os/Parcel;->createTypedArray(Landroid/os/Parcelable$Creator;)[Ljava/lang/Object;
	move-result-object p2
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object p2
.end method

.method public static createTypedList(Landroid/os/Parcel;ILandroid/os/Parcelable$Creator;)Ljava/util/ArrayList;
	.locals 1
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"<T:",
	"Ljava/lang/Object;",
	">(",
	"Landroid/os/Parcel;",
	"I",
	"Landroid/os/Parcelable$Creator<",
	"TT;>;)",
	"Ljava/util/ArrayList<",
	"TT;>;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0, p2}, Landroid/os/Parcel;->createTypedArrayList(Landroid/os/Parcelable$Creator;)Ljava/util/ArrayList;
	move-result-object p2
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object p2
.end method

.method public static createTypedSparseArray(Landroid/os/Parcel;ILandroid/os/Parcelable$Creator;)Landroid/util/SparseArray;
	.locals 7
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"<T:",
	"Ljava/lang/Object;",
	">(",
	"Landroid/os/Parcel;",
	"I",
	"Landroid/os/Parcelable$Creator<",
	"TT;>;)",
	"Landroid/util/SparseArray<",
	"TT;>;"
	}
	.end annotation

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	const/4 v1, 0x0
	if-nez p1, :cond_0
	return-object v1
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v2
	new-instance v3, Landroid/util/SparseArray;
	invoke-direct {v3}, Landroid/util/SparseArray;-><init>()V
	const/4 v4, 0x0
	:goto_0
	if-ge v4, v2, :cond_2
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v5
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result v6
	if-eqz v6, :cond_1
	invoke-interface {p2, p0}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
	move-result-object v6
	goto :goto_1
	:cond_1
	move-object v6, v1
	:goto_1
	invoke-virtual {v3, v5, v6}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
	add-int/lit8 v4, v4, 0x1
	goto :goto_0
	:cond_2
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v3
.end method

.method public static ensureAtEnd(Landroid/os/Parcel;I)V
	.locals 3

	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-ne v0, p1, :cond_0
	return-void
	:cond_0
	new-instance v0, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException;
	new-instance v1, Ljava/lang/StringBuilder;
	invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
	const-string v2, "Overread allowed size end="
	invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
	invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
	move-result-object p1
	invoke-direct {v0, p1, p0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException;-><init>(Ljava/lang/String;Landroid/os/Parcel;)V
	throw v0
.end method

.method public static getFieldId(I)I
	.locals 0

	int-to-char p0, p0
	return p0
.end method

.method public static readBoolean(Landroid/os/Parcel;I)Z
	.locals 1

	const/4 v0, 0x4
	invoke-static {p0, p1, v0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zzb(Landroid/os/Parcel;II)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result p0
	if-eqz p0, :cond_0
	const/4 p0, 0x1
	return p0
	:cond_0
	const/4 p0, 0x0
	return p0
.end method

.method public static readBooleanObject(Landroid/os/Parcel;I)Ljava/lang/Boolean;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result v0
	if-nez v0, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	const/4 v1, 0x4
	invoke-static {p0, p1, v0, v1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zza(Landroid/os/Parcel;III)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result p0
	if-eqz p0, :cond_1
	const/4 p0, 0x1
	goto :goto_0
	:cond_1
	const/4 p0, 0x0
	:goto_0
	invoke-static {p0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
	move-result-object p0
	return-object p0
.end method

.method public static readByte(Landroid/os/Parcel;I)B
	.locals 1

	const/4 v0, 0x4
	invoke-static {p0, p1, v0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zzb(Landroid/os/Parcel;II)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result p0
	int-to-byte p0, p0
	return p0
.end method

.method public static readChar(Landroid/os/Parcel;I)C
	.locals 1

	const/4 v0, 0x4
	invoke-static {p0, p1, v0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zzb(Landroid/os/Parcel;II)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result p0
	int-to-char p0, p0
	return p0
.end method

.method public static readDouble(Landroid/os/Parcel;I)D
	.locals 1

	const/16 v0, 0x8
	invoke-static {p0, p1, v0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zzb(Landroid/os/Parcel;II)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readDouble()D
	move-result-wide p0
	return-wide p0
.end method

.method public static readDoubleObject(Landroid/os/Parcel;I)Ljava/lang/Double;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result v0
	if-nez v0, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	const/16 v1, 0x8
	invoke-static {p0, p1, v0, v1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zza(Landroid/os/Parcel;III)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readDouble()D
	move-result-wide p0
	invoke-static {p0, p1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
	move-result-object p0
	return-object p0
.end method

.method public static readFloat(Landroid/os/Parcel;I)F
	.locals 1

	const/4 v0, 0x4
	invoke-static {p0, p1, v0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zzb(Landroid/os/Parcel;II)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readFloat()F
	move-result p0
	return p0
.end method

.method public static readFloatObject(Landroid/os/Parcel;I)Ljava/lang/Float;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result v0
	if-nez v0, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	const/4 v1, 0x4
	invoke-static {p0, p1, v0, v1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zza(Landroid/os/Parcel;III)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readFloat()F
	move-result p0
	invoke-static {p0}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
	move-result-object p0
	return-object p0
.end method

.method public static readHeader(Landroid/os/Parcel;)I
	.locals 0

	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result p0
	return p0
.end method

.method public static readIBinder(Landroid/os/Parcel;I)Landroid/os/IBinder;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readStrongBinder()Landroid/os/IBinder;
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static readInt(Landroid/os/Parcel;I)I
	.locals 1

	const/4 v0, 0x4
	invoke-static {p0, p1, v0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zzb(Landroid/os/Parcel;II)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result p0
	return p0
.end method

.method public static readIntegerObject(Landroid/os/Parcel;I)Ljava/lang/Integer;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result v0
	if-nez v0, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	const/4 v1, 0x4
	invoke-static {p0, p1, v0, v1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zza(Landroid/os/Parcel;III)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result p0
	invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
	move-result-object p0
	return-object p0
.end method

.method public static readList(Landroid/os/Parcel;ILjava/util/List;Ljava/lang/ClassLoader;)V
	.locals 1

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	return-void
	:cond_0
	invoke-virtual {p0, p2, p3}, Landroid/os/Parcel;->readList(Ljava/util/List;Ljava/lang/ClassLoader;)V
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-void
.end method

.method public static readLong(Landroid/os/Parcel;I)J
	.locals 1

	const/16 v0, 0x8
	invoke-static {p0, p1, v0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zzb(Landroid/os/Parcel;II)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readLong()J
	move-result-wide p0
	return-wide p0
.end method

.method public static readLongObject(Landroid/os/Parcel;I)Ljava/lang/Long;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result v0
	if-nez v0, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	const/16 v1, 0x8
	invoke-static {p0, p1, v0, v1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zza(Landroid/os/Parcel;III)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readLong()J
	move-result-wide p0
	invoke-static {p0, p1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
	move-result-object p0
	return-object p0
.end method

.method public static readPendingIntent(Landroid/os/Parcel;I)Landroid/app/PendingIntent;
	.locals 2

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	if-nez p1, :cond_0
	const/4 p0, 0x0
	return-object p0
	:cond_0
	invoke-static {p0}, Landroid/app/PendingIntent;->readPendingIntentOrNullFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent;
	move-result-object v1
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-object v1
.end method

.method public static readShort(Landroid/os/Parcel;I)S
	.locals 1

	const/4 v0, 0x4
	invoke-static {p0, p1, v0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->zzb(Landroid/os/Parcel;II)V
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result p0
	int-to-short p0, p0
	return p0
.end method

.method public static readSize(Landroid/os/Parcel;I)I
	.locals 2

	const/high16 v0, -0x10000
	and-int v1, p1, v0
	if-eq v1, v0, :cond_0
	shr-int/lit8 p0, p1, 0x10
	int-to-char p0, p0
	return p0
	:cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
	move-result p0
	return p0
.end method

.method public static skipUnknownField(Landroid/os/Parcel;I)V
	.locals 1

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v0
	add-int/2addr v0, p1
	invoke-virtual {p0, v0}, Landroid/os/Parcel;->setDataPosition(I)V
	return-void
.end method

.method public static validateObjectHeader(Landroid/os/Parcel;)I
	.locals 5

	invoke-static {p0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readHeader(Landroid/os/Parcel;)I
	move-result v0
	invoke-static {p0, v0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result v1
	invoke-virtual {p0}, Landroid/os/Parcel;->dataPosition()I
	move-result v2
	invoke-static {v0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->getFieldId(I)I
	move-result v3
	const/16 v4, 0x4f45
	if-ne v3, v4, :cond_1
	add-int/2addr v1, v2
	if-lt v1, v2, :cond_0
	invoke-virtual {p0}, Landroid/os/Parcel;->dataSize()I
	move-result v0
	if-gt v1, v0, :cond_0
	return v1
	:cond_0
	new-instance v0, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException;
	new-instance v3, Ljava/lang/StringBuilder;
	invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
	const-string v4, "Size read is invalid start="
	invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
	const-string v2, " end="
	invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
	invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
	move-result-object v1
	invoke-direct {v0, v1, p0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException;-><init>(Ljava/lang/String;Landroid/os/Parcel;)V
	throw v0
	:cond_1
	new-instance v1, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException;
	invoke-static {v0}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
	move-result-object v0
	invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
	move-result-object v0
	const-string v2, "Expected object header. Got 0x"
	invoke-virtual {v2, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
	move-result-object v0
	invoke-direct {v1, v0, p0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException;-><init>(Ljava/lang/String;Landroid/os/Parcel;)V
	throw v1
.end method

.method private static zza(Landroid/os/Parcel;III)V
	.locals 3

	if-ne p2, p3, :cond_0
	return-void
	:cond_0
	new-instance p1, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException;
	invoke-static {p2}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
	move-result-object v0
	new-instance v1, Ljava/lang/StringBuilder;
	invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
	const-string v2, "Expected size "
	invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
	const-string p3, " got "
	invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
	const-string p2, " (0x"
	invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	const-string p2, ")"
	invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
	move-result-object p2
	invoke-direct {p1, p2, p0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException;-><init>(Ljava/lang/String;Landroid/os/Parcel;)V
	throw p1
.end method

.method private static zzb(Landroid/os/Parcel;II)V
	.locals 4

	invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readSize(Landroid/os/Parcel;I)I
	move-result p1
	if-ne p1, p2, :cond_0
	return-void
	:cond_0
	new-instance v0, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException;
	invoke-static {p1}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
	move-result-object v1
	new-instance v2, Ljava/lang/StringBuilder;
	invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
	const-string v3, "Expected size "
	invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
	const-string p2, " got "
	invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
	const-string p1, " (0x"
	invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	const-string p1, ")"
	invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
	invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
	move-result-object p1
	invoke-direct {v0, p1, p0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException;-><init>(Ljava/lang/String;Landroid/os/Parcel;)V
	throw v0
.end method