public class com.android.internal.os.PowerProfile
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.internal.os.PowerProfile
  super_class: java.lang.Object
{
  public static final java.lang.String POWER_CPU_SUSPEND;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "cpu.suspend"

  public static final java.lang.String POWER_CPU_IDLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "cpu.idle"

  public static final java.lang.String POWER_CPU_ACTIVE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "cpu.active"

  public static final java.lang.String POWER_WIFI_SCAN;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "wifi.scan"

  public static final java.lang.String POWER_WIFI_ON;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "wifi.on"

  public static final java.lang.String POWER_WIFI_ACTIVE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "wifi.active"

  public static final java.lang.String POWER_WIFI_CONTROLLER_IDLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "wifi.controller.idle"

  public static final java.lang.String POWER_WIFI_CONTROLLER_RX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "wifi.controller.rx"

  public static final java.lang.String POWER_WIFI_CONTROLLER_TX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "wifi.controller.tx"

  public static final java.lang.String POWER_WIFI_CONTROLLER_TX_LEVELS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "wifi.controller.tx_levels"

  public static final java.lang.String POWER_WIFI_CONTROLLER_OPERATING_VOLTAGE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "wifi.controller.voltage"

  public static final java.lang.String POWER_BLUETOOTH_CONTROLLER_IDLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "bluetooth.controller.idle"

  public static final java.lang.String POWER_BLUETOOTH_CONTROLLER_RX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "bluetooth.controller.rx"

  public static final java.lang.String POWER_BLUETOOTH_CONTROLLER_TX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "bluetooth.controller.tx"

  public static final java.lang.String POWER_BLUETOOTH_CONTROLLER_OPERATING_VOLTAGE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "bluetooth.controller.voltage"

  public static final java.lang.String POWER_MODEM_CONTROLLER_SLEEP;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "modem.controller.sleep"

  public static final java.lang.String POWER_MODEM_CONTROLLER_IDLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "modem.controller.idle"

  public static final java.lang.String POWER_MODEM_CONTROLLER_RX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "modem.controller.rx"

  public static final java.lang.String POWER_MODEM_CONTROLLER_TX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "modem.controller.tx"

  public static final java.lang.String POWER_MODEM_CONTROLLER_OPERATING_VOLTAGE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "modem.controller.voltage"

  public static final java.lang.String POWER_GPS_ON;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "gps.on"

  public static final java.lang.String POWER_GPS_SIGNAL_QUALITY_BASED;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "gps.signalqualitybased"

  public static final java.lang.String POWER_GPS_OPERATING_VOLTAGE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "gps.voltage"

  public static final java.lang.String POWER_BLUETOOTH_ON;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "bluetooth.on"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final java.lang.String POWER_BLUETOOTH_ACTIVE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "bluetooth.active"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final java.lang.String POWER_BLUETOOTH_AT_CMD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "bluetooth.at"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final java.lang.String POWER_AMBIENT_DISPLAY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "ambient.on"

  public static final java.lang.String POWER_SCREEN_ON;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "screen.on"

  public static final java.lang.String POWER_RADIO_ON;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "radio.on"

  public static final java.lang.String POWER_RADIO_SCANNING;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "radio.scanning"

  public static final java.lang.String POWER_RADIO_ACTIVE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "radio.active"

  public static final java.lang.String POWER_SCREEN_FULL;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "screen.full"

  public static final java.lang.String POWER_AUDIO;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "audio"

  public static final java.lang.String POWER_VIDEO;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "video"

  public static final java.lang.String POWER_FLASHLIGHT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "camera.flashlight"

  public static final java.lang.String POWER_MEMORY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "memory.bandwidths"

  public static final java.lang.String POWER_CAMERA;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "camera.avg"

  public static final java.lang.String POWER_WIFI_BATCHED_SCAN;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "wifi.batchedscan"

  public static final java.lang.String POWER_BATTERY_CAPACITY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "battery.capacity"

  static final java.util.HashMap<java.lang.String, java.lang.Double> sPowerItemMap;
    descriptor: Ljava/util/HashMap;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Double;>;

  static final java.util.HashMap<java.lang.String, java.lang.Double[]> sPowerArrayMap;
    descriptor: Ljava/util/HashMap;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljava/lang/String;[Ljava/lang/Double;>;

  private static final java.lang.String TAG_DEVICE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "device"

  private static final java.lang.String TAG_ITEM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "item"

  private static final java.lang.String TAG_ARRAY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "array"

  private static final java.lang.String TAG_ARRAYITEM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "value"

  private static final java.lang.String ATTR_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "name"

  private static final java.lang.Object sLock;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private com.android.internal.os.PowerProfile$CpuClusterKey[] mCpuClusters;
    descriptor: [Lcom/android/internal/os/PowerProfile$CpuClusterKey;
    flags: (0x0002) ACC_PRIVATE

  private static final java.lang.String CPU_PER_CLUSTER_CORE_COUNT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "cpu.clusters.cores"

  private static final java.lang.String CPU_CLUSTER_POWER_COUNT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "cpu.cluster_power.cluster"

  private static final java.lang.String CPU_CORE_SPEED_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "cpu.core_speeds.cluster"

  private static final java.lang.String CPU_CORE_POWER_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "cpu.core_power.cluster"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 211
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic com.android.internal.os.PowerProfile.sPowerItemMap:Ljava/util/HashMap;
         1: .line 216
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic com.android.internal.os.PowerProfile.sPowerArrayMap:Ljava/util/HashMap;
         2: .line 224
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic com.android.internal.os.PowerProfile.sLock:Ljava/lang/Object;
         3: .line 335
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.os.PowerProfile this
        start local 1 // android.content.Context context
         0: .line 228
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokespecial com.android.internal.os.PowerProfile.<init>:(Landroid/content/Context;Z)V
         1: .line 229
            return
        end local 1 // android.content.Context context
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/android/internal/os/PowerProfile;
            0    2     1  context  Landroid/content/Context;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
         Name  Flags
      context  

  public void <init>(android.content.Context, boolean);
    descriptor: (Landroid/content/Context;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.android.internal.os.PowerProfile this
        start local 1 // android.content.Context context
        start local 2 // boolean forTest
         0: .line 235
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 237
            getstatic com.android.internal.os.PowerProfile.sLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         2: .line 238
            getstatic com.android.internal.os.PowerProfile.sPowerItemMap:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.size:()I
            ifne 4
            getstatic com.android.internal.os.PowerProfile.sPowerArrayMap:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.size:()I
            ifne 4
         3: .line 239
            aload 0 /* this */
            aload 1 /* context */
            iload 2 /* forTest */
            invokevirtual com.android.internal.os.PowerProfile.readPowerValuesFromXml:(Landroid/content/Context;Z)V
         4: .line 241
      StackMap locals: com.android.internal.os.PowerProfile android.content.Context int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.internal.os.PowerProfile.initCpuClusters:()V
         5: .line 237
            aload 3
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 243
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean forTest
        end local 1 // android.content.Context context
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/android/internal/os/PowerProfile;
            0   10     1  context  Landroid/content/Context;
            0   10     2  forTest  Z
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
         Name  Flags
      context  
      forTest  

  private void readPowerValuesFromXml(android.content.Context, boolean);
    descriptor: (Landroid/content/Context;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.android.internal.os.PowerProfile this
         0: .line 246
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tcom.android.internal.R.xml cannot be resolved to a variable\n\tcom.android.internal.R.xml cannot be resolved to a variable\n\tThe method beginDocument(XmlPullParser, String) from the type XmlUtils refers to the missing type XmlPullParser\n\tThe method nextElement(XmlPullParser) from the type XmlUtils refers to the missing type XmlPullParser\n\tThe method getName() is undefined for the type XmlResourceParser\n\tThe method next() is undefined for the type XmlResourceParser\n\tXmlPullParser cannot be resolved to a variable\n\tThe method getText() is undefined for the type XmlResourceParser\n\tXmlPullParserException cannot be resolved to a type\n\tcom.android.internal.R.integer cannot be resolved to a variable\n\tcom.android.internal.R.integer cannot be resolved to a variable\n\tcom.android.internal.R.integer cannot be resolved to a variable\n\tcom.android.internal.R.integer cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/internal/os/PowerProfile;
    MethodParameters:
         Name  Flags
      context  
      forTest  

  private void initCpuClusters();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=4, args_size=1
        start local 0 // com.android.internal.os.PowerProfile this
         0: .line 338
            getstatic com.android.internal.os.PowerProfile.sPowerArrayMap:Ljava/util/HashMap;
            ldc "cpu.clusters.cores"
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 13
         1: .line 339
            getstatic com.android.internal.os.PowerProfile.sPowerArrayMap:Ljava/util/HashMap;
            ldc "cpu.clusters.cores"
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double[]
            astore 1 /* data */
        start local 1 // java.lang.Double[] data
         2: .line 340
            aload 0 /* this */
            aload 1 /* data */
            arraylength
            anewarray com.android.internal.os.PowerProfile$CpuClusterKey
            putfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
         3: .line 341
            iconst_0
            istore 2 /* cluster */
        start local 2 // int cluster
         4: goto 11
         5: .line 342
      StackMap locals: java.lang.Double[] int
      StackMap stack:
            aload 1 /* data */
            iload 2 /* cluster */
            aaload
            invokevirtual java.lang.Double.doubleValue:()D
            invokestatic java.lang.Math.round:(D)J
            l2i
            istore 3 /* numCpusInCluster */
        start local 3 // int numCpusInCluster
         6: .line 343
            aload 0 /* this */
            getfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
            iload 2 /* cluster */
            new com.android.internal.os.PowerProfile$CpuClusterKey
            dup
         7: .line 344
            new java.lang.StringBuilder
            dup
            ldc "cpu.core_speeds.cluster"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* cluster */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            ldc "cpu.cluster_power.cluster"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* cluster */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 345
            new java.lang.StringBuilder
            dup
            ldc "cpu.core_power.cluster"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* cluster */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iload 3 /* numCpusInCluster */
            invokespecial com.android.internal.os.PowerProfile$CpuClusterKey.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
         9: .line 343
            aastore
        end local 3 // int numCpusInCluster
        10: .line 341
            iinc 2 /* cluster */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* cluster */
            aload 1 /* data */
            arraylength
            if_icmplt 5
        end local 2 // int cluster
        end local 1 // java.lang.Double[] data
        12: .line 347
            goto 20
        13: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            anewarray com.android.internal.os.PowerProfile$CpuClusterKey
            putfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
        14: .line 350
            iconst_1
            istore 1 /* numCpus */
        start local 1 // int numCpus
        15: .line 351
            getstatic com.android.internal.os.PowerProfile.sPowerItemMap:Ljava/util/HashMap;
            ldc "cpu.clusters.cores"
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 352
            getstatic com.android.internal.os.PowerProfile.sPowerItemMap:Ljava/util/HashMap;
            ldc "cpu.clusters.cores"
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            invokestatic java.lang.Math.round:(D)J
            l2i
            istore 1 /* numCpus */
        17: .line 354
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
            iconst_0
            new com.android.internal.os.PowerProfile$CpuClusterKey
            dup
            ldc "cpu.core_speeds.cluster0"
        18: .line 355
            ldc "cpu.cluster_power.cluster0"
            ldc "cpu.core_power.cluster0"
            iload 1 /* numCpus */
            invokespecial com.android.internal.os.PowerProfile$CpuClusterKey.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
        19: .line 354
            aastore
        end local 1 // int numCpus
        20: .line 357
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0              this  Lcom/android/internal/os/PowerProfile;
            2   12     1              data  [Ljava/lang/Double;
            4   12     2           cluster  I
            6   10     3  numCpusInCluster  I
           15   20     1           numCpus  I

  public int getNumCpuClusters();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.internal.os.PowerProfile this
         0: .line 375
            aload 0 /* this */
            getfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
            arraylength
            ireturn
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/internal/os/PowerProfile;

  public int getNumCoresInCpuCluster(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.os.PowerProfile this
        start local 1 // int cluster
         0: .line 379
            aload 0 /* this */
            getfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
            iload 1 /* cluster */
            aaload
            getfield com.android.internal.os.PowerProfile$CpuClusterKey.numCpus:I
            ireturn
        end local 1 // int cluster
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/android/internal/os/PowerProfile;
            0    1     1  cluster  I
    MethodParameters:
         Name  Flags
      cluster  

  public int getNumSpeedStepsInCpuCluster(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.os.PowerProfile this
        start local 1 // int cluster
         0: .line 383
            iload 1 /* cluster */
            iflt 1
            iload 1 /* cluster */
            aload 0 /* this */
            getfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
            arraylength
            if_icmplt 2
         1: .line 384
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 386
      StackMap locals:
      StackMap stack:
            getstatic com.android.internal.os.PowerProfile.sPowerArrayMap:Ljava/util/HashMap;
            aload 0 /* this */
            getfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
            iload 1 /* cluster */
            aaload
            getfield com.android.internal.os.PowerProfile$CpuClusterKey.freqKey:Ljava/lang/String;
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 387
            getstatic com.android.internal.os.PowerProfile.sPowerArrayMap:Ljava/util/HashMap;
            aload 0 /* this */
            getfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
            iload 1 /* cluster */
            aaload
            getfield com.android.internal.os.PowerProfile$CpuClusterKey.freqKey:Ljava/lang/String;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double[]
            arraylength
            ireturn
         4: .line 389
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // int cluster
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/android/internal/os/PowerProfile;
            0    5     1  cluster  I
    MethodParameters:
         Name  Flags
      cluster  

  public double getAveragePowerForCpuCluster(int);
    descriptor: (I)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.os.PowerProfile this
        start local 1 // int cluster
         0: .line 393
            iload 1 /* cluster */
            iflt 2
            iload 1 /* cluster */
            aload 0 /* this */
            getfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
            arraylength
            if_icmpge 2
         1: .line 394
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
            iload 1 /* cluster */
            aaload
            getfield com.android.internal.os.PowerProfile$CpuClusterKey.clusterPowerKey:Ljava/lang/String;
            invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
            dreturn
         2: .line 396
      StackMap locals:
      StackMap stack:
            dconst_0
            dreturn
        end local 1 // int cluster
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/android/internal/os/PowerProfile;
            0    3     1  cluster  I
    MethodParameters:
         Name  Flags
      cluster  

  public double getAveragePowerForCpuCore(int, int);
    descriptor: (II)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.android.internal.os.PowerProfile this
        start local 1 // int cluster
        start local 2 // int step
         0: .line 400
            iload 1 /* cluster */
            iflt 2
            iload 1 /* cluster */
            aload 0 /* this */
            getfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
            arraylength
            if_icmpge 2
         1: .line 401
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.internal.os.PowerProfile.mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
            iload 1 /* cluster */
            aaload
            getfield com.android.internal.os.PowerProfile$CpuClusterKey.corePowerKey:Ljava/lang/String;
            iload 2 /* step */
            invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;I)D
            dreturn
         2: .line 403
      StackMap locals:
      StackMap stack:
            dconst_0
            dreturn
        end local 2 // int step
        end local 1 // int cluster
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/android/internal/os/PowerProfile;
            0    3     1  cluster  I
            0    3     2     step  I
    MethodParameters:
         Name  Flags
      cluster  
      step     

  public int getNumElements(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.os.PowerProfile this
        start local 1 // java.lang.String key
         0: .line 413
            getstatic com.android.internal.os.PowerProfile.sPowerItemMap:Ljava/util/HashMap;
            aload 1 /* key */
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 414
            iconst_1
            ireturn
         2: .line 415
      StackMap locals:
      StackMap stack:
            getstatic com.android.internal.os.PowerProfile.sPowerArrayMap:Ljava/util/HashMap;
            aload 1 /* key */
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 416
            getstatic com.android.internal.os.PowerProfile.sPowerArrayMap:Ljava/util/HashMap;
            aload 1 /* key */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double[]
            arraylength
            ireturn
         4: .line 418
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.String key
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/android/internal/os/PowerProfile;
            0    5     1   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   

  public double getAveragePowerOrDefault(java.lang.String, double);
    descriptor: (Ljava/lang/String;D)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.android.internal.os.PowerProfile this
        start local 1 // java.lang.String type
        start local 2 // double defaultValue
         0: .line 430
            getstatic com.android.internal.os.PowerProfile.sPowerItemMap:Ljava/util/HashMap;
            aload 1 /* type */
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 431
            getstatic com.android.internal.os.PowerProfile.sPowerItemMap:Ljava/util/HashMap;
            aload 1 /* type */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dreturn
         2: .line 432
      StackMap locals:
      StackMap stack:
            getstatic com.android.internal.os.PowerProfile.sPowerArrayMap:Ljava/util/HashMap;
            aload 1 /* type */
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 433
            getstatic com.android.internal.os.PowerProfile.sPowerArrayMap:Ljava/util/HashMap;
            aload 1 /* type */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double[]
            iconst_0
            aaload
            invokevirtual java.lang.Double.doubleValue:()D
            dreturn
         4: .line 435
      StackMap locals:
      StackMap stack:
            dload 2 /* defaultValue */
            dreturn
        end local 2 // double defaultValue
        end local 1 // java.lang.String type
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lcom/android/internal/os/PowerProfile;
            0    5     1          type  Ljava/lang/String;
            0    5     2  defaultValue  D
    MethodParameters:
              Name  Flags
      type          
      defaultValue  

  public double getAveragePower(java.lang.String);
    descriptor: (Ljava/lang/String;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.internal.os.PowerProfile this
        start local 1 // java.lang.String type
         0: .line 446
            aload 0 /* this */
            aload 1 /* type */
            dconst_0
            invokevirtual com.android.internal.os.PowerProfile.getAveragePowerOrDefault:(Ljava/lang/String;D)D
            dreturn
        end local 1 // java.lang.String type
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/internal/os/PowerProfile;
            0    1     1  type  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  public double getAveragePower(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.android.internal.os.PowerProfile this
        start local 1 // java.lang.String type
        start local 2 // int level
         0: .line 459
            getstatic com.android.internal.os.PowerProfile.sPowerItemMap:Ljava/util/HashMap;
            aload 1 /* type */
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 460
            getstatic com.android.internal.os.PowerProfile.sPowerItemMap:Ljava/util/HashMap;
            aload 1 /* type */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dreturn
         2: .line 461
      StackMap locals:
      StackMap stack:
            getstatic com.android.internal.os.PowerProfile.sPowerArrayMap:Ljava/util/HashMap;
            aload 1 /* type */
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 9
         3: .line 462
            getstatic com.android.internal.os.PowerProfile.sPowerArrayMap:Ljava/util/HashMap;
            aload 1 /* type */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double[]
            astore 3 /* values */
        start local 3 // java.lang.Double[] values
         4: .line 463
            aload 3 /* values */
            arraylength
            iload 2 /* level */
            if_icmple 6
            iload 2 /* level */
            iflt 6
         5: .line 464
            aload 3 /* values */
            iload 2 /* level */
            aaload
            invokevirtual java.lang.Double.doubleValue:()D
            dreturn
         6: .line 465
      StackMap locals: java.lang.Double[]
      StackMap stack:
            iload 2 /* level */
            iflt 7
            aload 3 /* values */
            arraylength
            ifne 8
         7: .line 466
      StackMap locals:
      StackMap stack:
            dconst_0
            dreturn
         8: .line 468
      StackMap locals:
      StackMap stack:
            aload 3 /* values */
            aload 3 /* values */
            arraylength
            iconst_1
            isub
            aaload
            invokevirtual java.lang.Double.doubleValue:()D
            dreturn
        end local 3 // java.lang.Double[] values
         9: .line 471
      StackMap locals:
      StackMap stack:
            dconst_0
            dreturn
        end local 2 // int level
        end local 1 // java.lang.String type
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/android/internal/os/PowerProfile;
            0   10     1    type  Ljava/lang/String;
            0   10     2   level  I
            4    9     3  values  [Ljava/lang/Double;
    MethodParameters:
       Name  Flags
      type   
      level  

  public double getBatteryCapacity();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.internal.os.PowerProfile this
         0: .line 482
            aload 0 /* this */
            ldc "battery.capacity"
            invokevirtual com.android.internal.os.PowerProfile.getAveragePower:(Ljava/lang/String;)D
            dreturn
        end local 0 // com.android.internal.os.PowerProfile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/internal/os/PowerProfile;
}
SourceFile: "PowerProfile.java"
NestMembers:
  com.android.internal.os.PowerProfile$CpuClusterKey
InnerClasses:
  public CpuClusterKey = com.android.internal.os.PowerProfile$CpuClusterKey of com.android.internal.os.PowerProfile