public final class android.media.VolumeShaper$Configuration implements android.os.Parcelable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.media.VolumeShaper$Configuration
  super_class: java.lang.Object
{
  private static final int MAXIMUM_CURVE_POINTS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  static final int TYPE_ID;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int TYPE_SCALE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int INTERPOLATOR_TYPE_STEP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int INTERPOLATOR_TYPE_LINEAR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int INTERPOLATOR_TYPE_CUBIC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int INTERPOLATOR_TYPE_CUBIC_MONOTONIC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int OPTION_FLAG_VOLUME_IN_DBFS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int OPTION_FLAG_CLOCK_TIME;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int OPTION_FLAG_PUBLIC_ALL;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final android.media.VolumeShaper$Configuration LINEAR_RAMP;
    descriptor: Landroid/media/VolumeShaper$Configuration;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final android.media.VolumeShaper$Configuration CUBIC_RAMP;
    descriptor: Landroid/media/VolumeShaper$Configuration;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final android.media.VolumeShaper$Configuration SINE_RAMP;
    descriptor: Landroid/media/VolumeShaper$Configuration;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final android.media.VolumeShaper$Configuration SCURVE_RAMP;
    descriptor: Landroid/media/VolumeShaper$Configuration;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final int mType;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mId;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mOptionFlags;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double mDurationMs;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mInterpolatorType;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final float[] mTimes;
    descriptor: [F
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final float[] mVolumes;
    descriptor: [F
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final android.os.Parcelable$Creator<android.media.VolumeShaper$Configuration> CREATOR;
    descriptor: Landroid/os/Parcelable$Creator;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Landroid/os/Parcelable$Creator<Landroid/media/VolumeShaper$Configuration;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=0
         0: .line 351
            new android.media.VolumeShaper$Configuration$Builder
            dup
            invokespecial android.media.VolumeShaper$Configuration$Builder.<init>:()V
         1: .line 352
            iconst_1
            invokevirtual android.media.VolumeShaper$Configuration$Builder.setInterpolatorType:(I)Landroid/media/VolumeShaper$Configuration$Builder;
         2: .line 353
            iconst_2
            newarray 6
            dup
            iconst_0
            fconst_0
            fastore
            dup
            iconst_1
            fconst_1
            fastore
         3: .line 354
            iconst_2
            newarray 6
            dup
            iconst_0
            fconst_0
            fastore
            dup
            iconst_1
            fconst_1
            fastore
         4: .line 353
            invokevirtual android.media.VolumeShaper$Configuration$Builder.setCurve:([F[F)Landroid/media/VolumeShaper$Configuration$Builder;
         5: .line 355
            ldc 1000
            invokevirtual android.media.VolumeShaper$Configuration$Builder.setDuration:(J)Landroid/media/VolumeShaper$Configuration$Builder;
         6: .line 356
            invokevirtual android.media.VolumeShaper$Configuration$Builder.build:()Landroid/media/VolumeShaper$Configuration;
         7: .line 351
            putstatic android.media.VolumeShaper$Configuration.LINEAR_RAMP:Landroid/media/VolumeShaper$Configuration;
         8: .line 364
            new android.media.VolumeShaper$Configuration$Builder
            dup
            invokespecial android.media.VolumeShaper$Configuration$Builder.<init>:()V
         9: .line 365
            iconst_2
            invokevirtual android.media.VolumeShaper$Configuration$Builder.setInterpolatorType:(I)Landroid/media/VolumeShaper$Configuration$Builder;
        10: .line 366
            iconst_2
            newarray 6
            dup
            iconst_0
            fconst_0
            fastore
            dup
            iconst_1
            fconst_1
            fastore
        11: .line 367
            iconst_2
            newarray 6
            dup
            iconst_0
            fconst_0
            fastore
            dup
            iconst_1
            fconst_1
            fastore
        12: .line 366
            invokevirtual android.media.VolumeShaper$Configuration$Builder.setCurve:([F[F)Landroid/media/VolumeShaper$Configuration$Builder;
        13: .line 368
            ldc 1000
            invokevirtual android.media.VolumeShaper$Configuration$Builder.setDuration:(J)Landroid/media/VolumeShaper$Configuration$Builder;
        14: .line 369
            invokevirtual android.media.VolumeShaper$Configuration$Builder.build:()Landroid/media/VolumeShaper$Configuration;
        15: .line 364
            putstatic android.media.VolumeShaper$Configuration.CUBIC_RAMP:Landroid/media/VolumeShaper$Configuration;
        16: .line 390
            bipush 16
            newarray 6
            astore 0 /* times */
        start local 0 // float[] times
        17: .line 391
            bipush 16
            newarray 6
            astore 1 /* sines */
        start local 1 // float[] sines
        18: .line 392
            bipush 16
            newarray 6
            astore 2 /* scurve */
        start local 2 // float[] scurve
        19: .line 393
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        20: goto 26
        21: .line 394
      StackMap locals: float[] float[] float[] int
      StackMap stack:
            aload 0 /* times */
            iload 3 /* i */
            iload 3 /* i */
            i2f
            ldc 15.0
            fdiv
            fastore
        22: .line 395
            aload 0 /* times */
            iload 3 /* i */
            faload
            f2d
            ldc 3.141592653589793
            dmul
            ldc 2.0
            ddiv
            invokestatic java.lang.Math.sin:(D)D
            d2f
            fstore 4 /* sine */
        start local 4 // float sine
        23: .line 396
            aload 1 /* sines */
            iload 3 /* i */
            fload 4 /* sine */
            fastore
        24: .line 397
            aload 2 /* scurve */
            iload 3 /* i */
            fload 4 /* sine */
            fload 4 /* sine */
            fmul
            fastore
        end local 4 // float sine
        25: .line 393
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 3 /* i */
            bipush 16
            if_icmplt 21
        end local 3 // int i
        27: .line 399
            new android.media.VolumeShaper$Configuration$Builder
            dup
            invokespecial android.media.VolumeShaper$Configuration$Builder.<init>:()V
        28: .line 400
            iconst_2
            invokevirtual android.media.VolumeShaper$Configuration$Builder.setInterpolatorType:(I)Landroid/media/VolumeShaper$Configuration$Builder;
        29: .line 401
            aload 0 /* times */
            aload 1 /* sines */
            invokevirtual android.media.VolumeShaper$Configuration$Builder.setCurve:([F[F)Landroid/media/VolumeShaper$Configuration$Builder;
        30: .line 402
            ldc 1000
            invokevirtual android.media.VolumeShaper$Configuration$Builder.setDuration:(J)Landroid/media/VolumeShaper$Configuration$Builder;
        31: .line 403
            invokevirtual android.media.VolumeShaper$Configuration$Builder.build:()Landroid/media/VolumeShaper$Configuration;
        32: .line 399
            putstatic android.media.VolumeShaper$Configuration.SINE_RAMP:Landroid/media/VolumeShaper$Configuration;
        33: .line 404
            new android.media.VolumeShaper$Configuration$Builder
            dup
            invokespecial android.media.VolumeShaper$Configuration$Builder.<init>:()V
        34: .line 405
            iconst_2
            invokevirtual android.media.VolumeShaper$Configuration$Builder.setInterpolatorType:(I)Landroid/media/VolumeShaper$Configuration$Builder;
        35: .line 406
            aload 0 /* times */
            aload 2 /* scurve */
            invokevirtual android.media.VolumeShaper$Configuration$Builder.setCurve:([F[F)Landroid/media/VolumeShaper$Configuration$Builder;
        36: .line 407
            ldc 1000
            invokevirtual android.media.VolumeShaper$Configuration$Builder.setDuration:(J)Landroid/media/VolumeShaper$Configuration$Builder;
        37: .line 408
            invokevirtual android.media.VolumeShaper$Configuration$Builder.build:()Landroid/media/VolumeShaper$Configuration;
        38: .line 404
            putstatic android.media.VolumeShaper$Configuration.SCURVE_RAMP:Landroid/media/VolumeShaper$Configuration;
        end local 2 // float[] scurve
        end local 1 // float[] sines
        end local 0 // float[] times
        39: .line 497
            new android.media.VolumeShaper$Configuration$1
            dup
            invokespecial android.media.VolumeShaper$Configuration$1.<init>:()V
        40: .line 496
            putstatic android.media.VolumeShaper$Configuration.CREATOR:Landroid/os/Parcelable$Creator;
        41: .line 535
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
           17   39     0   times  [F
           18   39     1   sines  [F
           19   39     2  scurve  [F
           20   27     3       i  I
           23   25     4    sine  F

  public static int getMaximumCurvePoints();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 243
            bipush 16
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.media.VolumeShaper$Configuration this
         0: .line 430
            new java.lang.StringBuilder
            dup
            ldc "VolumeShaper.Configuration{mType = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 431
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mType:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         2: .line 432
            ldc ", mId = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         3: .line 433
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mType:I
            ifne 5
         4: .line 434
            ldc "}"
            goto 12
         5: .line 435
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
            new java.lang.StringBuilder
            dup
            ldc ", mOptionFlags = 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mOptionFlags:I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 436
            ldc ", mDurationMs = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mDurationMs:D
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
         7: .line 437
            ldc ", mInterpolatorType = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mInterpolatorType:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         8: .line 438
            ldc ", mTimes[] = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mTimes:[F
            invokestatic java.util.Arrays.toString:([F)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 439
            ldc ", mVolumes[] = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mVolumes:[F
            invokestatic java.util.Arrays.toString:([F)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 440
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 435
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 433
      StackMap locals: android.media.VolumeShaper$Configuration
      StackMap stack: java.lang.StringBuilder java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 430
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Landroid/media/VolumeShaper$Configuration;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // android.media.VolumeShaper$Configuration this
         0: .line 445
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mType:I
            ifne 2
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 446
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mType:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mId:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.util.Objects.hash:([Ljava/lang/Object;)I
            goto 7
      StackMap locals:
      StackMap stack:
         2: bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 447
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mType:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mId:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
         4: .line 448
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mOptionFlags:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mDurationMs:D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_4
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mInterpolatorType:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_5
         5: .line 449
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mTimes:[F
            invokestatic java.util.Arrays.hashCode:([F)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 6
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mVolumes:[F
            invokestatic java.util.Arrays.hashCode:([F)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         6: .line 447
            invokestatic java.util.Objects.hash:([Ljava/lang/Object;)I
         7: .line 445
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/media/VolumeShaper$Configuration;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.media.VolumeShaper$Configuration this
        start local 1 // java.lang.Object o
         0: .line 454
            aload 1 /* o */
            instanceof android.media.VolumeShaper$Configuration
            ifne 1
            iconst_0
            ireturn
         1: .line 455
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            aload 0 /* this */
            if_acmpne 2
            iconst_1
            ireturn
         2: .line 456
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast android.media.VolumeShaper$Configuration
            astore 2 /* other */
        start local 2 // android.media.VolumeShaper$Configuration other
         3: .line 460
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mType:I
            aload 2 /* other */
            getfield android.media.VolumeShaper$Configuration.mType:I
            if_icmpne 12
         4: .line 461
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mId:I
            aload 2 /* other */
            getfield android.media.VolumeShaper$Configuration.mId:I
            if_icmpne 12
         5: .line 462
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mType:I
            ifeq 11
         6: .line 463
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mOptionFlags:I
            aload 2 /* other */
            getfield android.media.VolumeShaper$Configuration.mOptionFlags:I
            if_icmpne 12
         7: .line 464
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mDurationMs:D
            aload 2 /* other */
            getfield android.media.VolumeShaper$Configuration.mDurationMs:D
            dcmpl
            ifne 12
         8: .line 465
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mInterpolatorType:I
            aload 2 /* other */
            getfield android.media.VolumeShaper$Configuration.mInterpolatorType:I
            if_icmpne 12
         9: .line 466
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mTimes:[F
            aload 2 /* other */
            getfield android.media.VolumeShaper$Configuration.mTimes:[F
            invokestatic java.util.Arrays.equals:([F[F)Z
            ifeq 12
        10: .line 467
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mVolumes:[F
            aload 2 /* other */
            getfield android.media.VolumeShaper$Configuration.mVolumes:[F
            invokestatic java.util.Arrays.equals:([F[F)Z
            ifeq 12
        11: .line 460
      StackMap locals: android.media.VolumeShaper$Configuration
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        12: iconst_0
            ireturn
        end local 2 // android.media.VolumeShaper$Configuration other
        end local 1 // java.lang.Object o
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Landroid/media/VolumeShaper$Configuration;
            0   13     1      o  Ljava/lang/Object;
            3   13     2  other  Landroid/media/VolumeShaper$Configuration;
    MethodParameters:
      Name  Flags
      o     

  public int describeContents();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.VolumeShaper$Configuration this
         0: .line 472
            iconst_0
            ireturn
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/VolumeShaper$Configuration;

  public void writeToParcel(android.os.Parcel, int);
    descriptor: (Landroid/os/Parcel;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.media.VolumeShaper$Configuration this
        start local 1 // android.os.Parcel dest
        start local 2 // int flags
         0: .line 478
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mType:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         1: .line 479
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mId:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         2: .line 480
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mType:I
            ifeq 15
         3: .line 481
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mOptionFlags:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         4: .line 482
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mDurationMs:D
            invokevirtual android.os.Parcel.writeDouble:(D)V
         5: .line 484
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mInterpolatorType:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         6: .line 485
            aload 1 /* dest */
            fconst_0
            invokevirtual android.os.Parcel.writeFloat:(F)V
         7: .line 486
            aload 1 /* dest */
            fconst_0
            invokevirtual android.os.Parcel.writeFloat:(F)V
         8: .line 488
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mTimes:[F
            arraylength
            invokevirtual android.os.Parcel.writeInt:(I)V
         9: .line 489
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        10: goto 14
        11: .line 490
      StackMap locals: int
      StackMap stack:
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mTimes:[F
            iload 3 /* i */
            faload
            invokevirtual android.os.Parcel.writeFloat:(F)V
        12: .line 491
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mVolumes:[F
            iload 3 /* i */
            faload
            invokevirtual android.os.Parcel.writeFloat:(F)V
        13: .line 489
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 3 /* i */
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mTimes:[F
            arraylength
            if_icmplt 11
        end local 3 // int i
        15: .line 494
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int flags
        end local 1 // android.os.Parcel dest
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Landroid/media/VolumeShaper$Configuration;
            0   16     1   dest  Landroid/os/Parcel;
            0   16     2  flags  I
           10   15     3      i  I
    MethodParameters:
       Name  Flags
      dest   
      flags  

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.media.VolumeShaper$Configuration this
        start local 1 // int id
         0: .line 551
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 552
            iload 1 /* id */
            ifge 3
         2: .line 553
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "negative id "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 555
      StackMap locals: android.media.VolumeShaper$Configuration int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.media.VolumeShaper$Configuration.mType:I
         4: .line 556
            aload 0 /* this */
            iload 1 /* id */
            putfield android.media.VolumeShaper$Configuration.mId:I
         5: .line 557
            aload 0 /* this */
            iconst_0
            putfield android.media.VolumeShaper$Configuration.mInterpolatorType:I
         6: .line 558
            aload 0 /* this */
            iconst_0
            putfield android.media.VolumeShaper$Configuration.mOptionFlags:I
         7: .line 559
            aload 0 /* this */
            dconst_0
            putfield android.media.VolumeShaper$Configuration.mDurationMs:D
         8: .line 560
            aload 0 /* this */
            aconst_null
            putfield android.media.VolumeShaper$Configuration.mTimes:[F
         9: .line 561
            aload 0 /* this */
            aconst_null
            putfield android.media.VolumeShaper$Configuration.mVolumes:[F
        10: .line 562
            return
        end local 1 // int id
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Landroid/media/VolumeShaper$Configuration;
            0   11     1    id  I
    MethodParameters:
      Name  Flags
      id    

  private void <init>(int, int, int, double, int, float[], float[]);
    descriptor: (IIIDI[F[F)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=8
        start local 0 // android.media.VolumeShaper$Configuration this
        start local 1 // int type
        start local 2 // int id
        start local 3 // int optionFlags
        start local 4 // double durationMs
        start local 6 // int interpolatorType
        start local 7 // float[] times
        start local 8 // float[] volumes
         0: .line 568
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 575
            aload 0 /* this */
            iload 1 /* type */
            putfield android.media.VolumeShaper$Configuration.mType:I
         2: .line 576
            aload 0 /* this */
            iload 2 /* id */
            putfield android.media.VolumeShaper$Configuration.mId:I
         3: .line 577
            aload 0 /* this */
            iload 3 /* optionFlags */
            putfield android.media.VolumeShaper$Configuration.mOptionFlags:I
         4: .line 578
            aload 0 /* this */
            dload 4 /* durationMs */
            putfield android.media.VolumeShaper$Configuration.mDurationMs:D
         5: .line 579
            aload 0 /* this */
            iload 6 /* interpolatorType */
            putfield android.media.VolumeShaper$Configuration.mInterpolatorType:I
         6: .line 581
            aload 0 /* this */
            aload 7 /* times */
            putfield android.media.VolumeShaper$Configuration.mTimes:[F
         7: .line 582
            aload 0 /* this */
            aload 8 /* volumes */
            putfield android.media.VolumeShaper$Configuration.mVolumes:[F
         8: .line 583
            return
        end local 8 // float[] volumes
        end local 7 // float[] times
        end local 6 // int interpolatorType
        end local 4 // double durationMs
        end local 3 // int optionFlags
        end local 2 // int id
        end local 1 // int type
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Landroid/media/VolumeShaper$Configuration;
            0    9     1              type  I
            0    9     2                id  I
            0    9     3       optionFlags  I
            0    9     4        durationMs  D
            0    9     6  interpolatorType  I
            0    9     7             times  [F
            0    9     8           volumes  [F
    MethodParameters:
                  Name  Flags
      type              
      id                
      optionFlags       
      durationMs        
      interpolatorType  
      times             
      volumes           

  public int getType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.VolumeShaper$Configuration this
         0: .line 590
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mType:I
            ireturn
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/VolumeShaper$Configuration;

  public int getId();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.VolumeShaper$Configuration this
         0: .line 598
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mId:I
            ireturn
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/VolumeShaper$Configuration;

  public int getInterpolatorType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.VolumeShaper$Configuration this
         0: .line 605
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mInterpolatorType:I
            ireturn
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/VolumeShaper$Configuration;

  public int getOptionFlags();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.VolumeShaper$Configuration this
         0: .line 613
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mOptionFlags:I
            iconst_3
            iand
            ireturn
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/VolumeShaper$Configuration;

  int getAllOptionFlags();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.VolumeShaper$Configuration this
         0: .line 617
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mOptionFlags:I
            ireturn
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/VolumeShaper$Configuration;

  public long getDuration();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.VolumeShaper$Configuration this
         0: .line 625
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mDurationMs:D
            d2l
            lreturn
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/VolumeShaper$Configuration;

  public float[] getTimes();
    descriptor: ()[F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.VolumeShaper$Configuration this
         0: .line 632
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mTimes:[F
            areturn
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/VolumeShaper$Configuration;

  public float[] getVolumes();
    descriptor: ()[F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.VolumeShaper$Configuration this
         0: .line 639
            aload 0 /* this */
            getfield android.media.VolumeShaper$Configuration.mVolumes:[F
            areturn
        end local 0 // android.media.VolumeShaper$Configuration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/VolumeShaper$Configuration;

  private static java.lang.String checkCurveForErrors(float[], float[], boolean);
    descriptor: ([F[FZ)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // float[] times
        start local 1 // float[] volumes
        start local 2 // boolean log
         0: .line 662
            aload 0 /* times */
            ifnonnull 2
         1: .line 663
            ldc "times array must be non-null"
            areturn
         2: .line 664
      StackMap locals:
      StackMap stack:
            aload 1 /* volumes */
            ifnonnull 4
         3: .line 665
            ldc "volumes array must be non-null"
            areturn
         4: .line 666
      StackMap locals:
      StackMap stack:
            aload 0 /* times */
            arraylength
            aload 1 /* volumes */
            arraylength
            if_icmpeq 6
         5: .line 667
            ldc "array length must match"
            areturn
         6: .line 668
      StackMap locals:
      StackMap stack:
            aload 0 /* times */
            arraylength
            iconst_2
            if_icmpge 8
         7: .line 669
            ldc "array length must be at least 2"
            areturn
         8: .line 670
      StackMap locals:
      StackMap stack:
            aload 0 /* times */
            arraylength
            bipush 16
            if_icmple 10
         9: .line 671
            ldc "array length must be no larger than 16"
            areturn
        10: .line 672
      StackMap locals:
      StackMap stack:
            aload 0 /* times */
            iconst_0
            faload
            fconst_0
            fcmpl
            ifeq 12
        11: .line 673
            ldc "times must start at 0.f"
            areturn
        12: .line 674
      StackMap locals:
      StackMap stack:
            aload 0 /* times */
            aload 0 /* times */
            arraylength
            iconst_1
            isub
            faload
            fconst_1
            fcmpl
            ifeq 14
        13: .line 675
            ldc "times must end at 1.f"
            areturn
        14: .line 679
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* i */
        start local 3 // int i
        15: goto 19
        16: .line 680
      StackMap locals: int
      StackMap stack:
            aload 0 /* times */
            iload 3 /* i */
            faload
            aload 0 /* times */
            iload 3 /* i */
            iconst_1
            isub
            faload
            fcmpl
            ifgt 18
        17: .line 681
            new java.lang.StringBuilder
            dup
            ldc "times not monotonic increasing, check index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        18: .line 679
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 3 /* i */
            aload 0 /* times */
            arraylength
            if_icmplt 16
        end local 3 // int i
        20: .line 684
            iload 2 /* log */
            ifeq 30
        21: .line 685
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        22: goto 28
        23: .line 686
      StackMap locals:
      StackMap stack:
            aload 1 /* volumes */
            iload 3 /* i */
            faload
            fconst_0
            fcmpg
            ifle 27
        24: .line 687
            new java.lang.StringBuilder
            dup
            ldc "volumes for log scale cannot be positive, check index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        25: .line 688
            iload 3 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        26: .line 687
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        27: .line 685
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 3 /* i */
            aload 1 /* volumes */
            arraylength
            if_icmplt 23
        end local 3 // int i
        29: .line 691
            goto 38
        30: .line 692
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        31: goto 37
        32: .line 693
      StackMap locals: int
      StackMap stack:
            aload 1 /* volumes */
            iload 3 /* i */
            faload
            fconst_0
            fcmpl
            iflt 33
            aload 1 /* volumes */
            iload 3 /* i */
            faload
            fconst_1
            fcmpg
            ifle 36
        33: .line 694
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "volumes for linear scale must be between 0.f and 1.f, check index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        34: .line 695
            iload 3 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        35: .line 694
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        36: .line 692
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        37: iload 3 /* i */
            aload 1 /* volumes */
            arraylength
            if_icmplt 32
        end local 3 // int i
        38: .line 699
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // boolean log
        end local 1 // float[] volumes
        end local 0 // float[] times
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   39     0    times  [F
            0   39     1  volumes  [F
            0   39     2      log  Z
           15   20     3        i  I
           22   29     3        i  I
           31   38     3        i  I
    MethodParameters:
         Name  Flags
      times    
      volumes  
      log      

  private static void checkCurveForErrorsAndThrowException(float[], float[], boolean, boolean);
    descriptor: ([F[FZZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // float[] times
        start local 1 // float[] volumes
        start local 2 // boolean log
        start local 3 // boolean ise
         0: .line 704
            aload 0 /* times */
            aload 1 /* volumes */
            iload 2 /* log */
            invokestatic android.media.VolumeShaper$Configuration.checkCurveForErrors:([F[FZ)Ljava/lang/String;
            astore 4 /* error */
        start local 4 // java.lang.String error
         1: .line 705
            aload 4 /* error */
            ifnull 5
         2: .line 706
            iload 3 /* ise */
            ifeq 4
         3: .line 707
            new java.lang.IllegalStateException
            dup
            aload 4 /* error */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 709
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* error */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 712
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String error
        end local 3 // boolean ise
        end local 2 // boolean log
        end local 1 // float[] volumes
        end local 0 // float[] times
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0    times  [F
            0    6     1  volumes  [F
            0    6     2      log  Z
            0    6     3      ise  Z
            1    6     4    error  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      times    
      volumes  
      log      
      ise      

  private static void checkValidVolumeAndThrowException(float, boolean);
    descriptor: (FZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // float volume
        start local 1 // boolean log
         0: .line 715
            iload 1 /* log */
            ifeq 3
         1: .line 716
            fload 0 /* volume */
            fconst_0
            fcmpg
            ifle 5
         2: .line 717
            new java.lang.IllegalArgumentException
            dup
            ldc "dbfs volume must be 0.f or less"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 720
      StackMap locals:
      StackMap stack:
            fload 0 /* volume */
            fconst_0
            fcmpl
            iflt 4
            fload 0 /* volume */
            fconst_1
            fcmpg
            ifle 5
         4: .line 721
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "volume must be >= 0.f and <= 1.f"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 724
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean log
        end local 0 // float volume
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  volume  F
            0    6     1     log  Z
    MethodParameters:
        Name  Flags
      volume  
      log     

  private static void clampVolume(float[], boolean);
    descriptor: ([FZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // float[] volumes
        start local 1 // boolean log
         0: .line 727
            iload 1 /* log */
            ifeq 8
         1: .line 728
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 729
      StackMap locals: int
      StackMap stack:
            aload 0 /* volumes */
            iload 2 /* i */
            faload
            fconst_0
            fcmpg
            ifle 5
         4: .line 730
            aload 0 /* volumes */
            iload 2 /* i */
            fconst_0
            fastore
         5: .line 728
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* volumes */
            arraylength
            if_icmplt 3
        end local 2 // int i
         7: .line 733
            goto 17
         8: .line 734
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         9: goto 16
        10: .line 735
      StackMap locals: int
      StackMap stack:
            aload 0 /* volumes */
            iload 2 /* i */
            faload
            fconst_0
            fcmpl
            ifge 13
        11: .line 736
            aload 0 /* volumes */
            iload 2 /* i */
            fconst_0
            fastore
        12: .line 737
            goto 15
      StackMap locals:
      StackMap stack:
        13: aload 0 /* volumes */
            iload 2 /* i */
            faload
            fconst_1
            fcmpg
            ifle 15
        14: .line 738
            aload 0 /* volumes */
            iload 2 /* i */
            fconst_1
            fastore
        15: .line 734
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 2 /* i */
            aload 0 /* volumes */
            arraylength
            if_icmplt 10
        end local 2 // int i
        17: .line 742
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean log
        end local 0 // float[] volumes
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0  volumes  [F
            0   18     1      log  Z
            2    7     2        i  I
            9   17     2        i  I
    MethodParameters:
         Name  Flags
      volumes  
      log      
}
SourceFile: "VolumeShaper.java"
NestHost: android.media.VolumeShaper
InnerClasses:
  public final Configuration = android.media.VolumeShaper$Configuration of android.media.VolumeShaper
  android.media.VolumeShaper$Configuration$1
  public final Builder = android.media.VolumeShaper$Configuration$Builder of android.media.VolumeShaper$Configuration
  public abstract InterpolatorType = android.media.VolumeShaper$Configuration$InterpolatorType of android.media.VolumeShaper$Configuration
  public abstract OptionFlag = android.media.VolumeShaper$Configuration$OptionFlag of android.media.VolumeShaper$Configuration
  public abstract Type = android.media.VolumeShaper$Configuration$Type of android.media.VolumeShaper$Configuration
  public abstract Creator = android.os.Parcelable$Creator of android.os.Parcelable