public class android.os.health.HealthKeys$Constants
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.os.health.HealthKeys$Constants
  super_class: java.lang.Object
{
  private final java.lang.String mDataType;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[][] mKeys;
    descriptor: [[I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.lang.Class);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // android.os.health.HealthKeys$Constants this
        start local 1 // java.lang.Class clazz
         0: .line 92
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 86
            aload 0 /* this */
            iconst_5
            anewarray int[]
            putfield android.os.health.HealthKeys$Constants.mKeys:[[I
         2: .line 94
            aload 0 /* this */
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            putfield android.os.health.HealthKeys$Constants.mDataType:Ljava/lang/String;
         3: .line 98
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
            astore 2 /* fields */
        start local 2 // java.lang.reflect.Field[] fields
         4: .line 99
            ldc Landroid/os/health/HealthKeys$Constant;
            astore 3 /* annotationClass */
        start local 3 // java.lang.Class annotationClass
         5: .line 101
            aload 2 /* fields */
            arraylength
            istore 4 /* N */
        start local 4 // int N
         6: .line 103
            aload 0 /* this */
            getfield android.os.health.HealthKeys$Constants.mKeys:[[I
            arraylength
            anewarray android.os.health.HealthKeys$SortedIntArray
            astore 5 /* keys */
        start local 5 // android.os.health.HealthKeys$SortedIntArray[] keys
         7: .line 104
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         8: goto 11
         9: .line 105
      StackMap locals: android.os.health.HealthKeys$Constants java.lang.Class java.lang.reflect.Field[] java.lang.Class int android.os.health.HealthKeys$SortedIntArray[] int
      StackMap stack:
            aload 5 /* keys */
            iload 6 /* i */
            new android.os.health.HealthKeys$SortedIntArray
            dup
            iload 4 /* N */
            invokespecial android.os.health.HealthKeys$SortedIntArray.<init>:(I)V
            aastore
        10: .line 104
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* i */
            aload 5 /* keys */
            arraylength
            if_icmplt 9
        end local 6 // int i
        12: .line 108
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: goto 29
        14: .line 109
      StackMap locals:
      StackMap stack:
            aload 2 /* fields */
            iload 6 /* i */
            aaload
            astore 7 /* field */
        start local 7 // java.lang.reflect.Field field
        15: .line 110
            aload 7 /* field */
            aload 3 /* annotationClass */
            invokevirtual java.lang.reflect.Field.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast android.os.health.HealthKeys$Constant
            astore 8 /* constant */
        start local 8 // android.os.health.HealthKeys$Constant constant
        16: .line 111
            aload 8 /* constant */
            ifnull 28
        17: .line 112
            aload 8 /* constant */
            invokeinterface android.os.health.HealthKeys$Constant.type:()I
            istore 9 /* type */
        start local 9 // int type
        18: .line 113
            iload 9 /* type */
            aload 5 /* keys */
            arraylength
            if_icmplt 22
        19: .line 114
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown Constant type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        20: .line 115
            ldc " on "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* field */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 114
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 118
      StackMap locals: java.lang.reflect.Field android.os.health.HealthKeys$Constant int
      StackMap stack:
            aload 5 /* keys */
            iload 9 /* type */
            aaload
            aload 7 /* field */
            aconst_null
            invokevirtual java.lang.reflect.Field.getInt:(Ljava/lang/Object;)I
            invokevirtual android.os.health.HealthKeys$SortedIntArray.addValue:(I)V
        23: .line 119
            goto 28
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
        24: astore 10 /* ex */
        start local 10 // java.lang.IllegalAccessException ex
        25: .line 120
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Can't read constant value type="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        26: .line 121
            ldc " field="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* field */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 10 /* ex */
        27: .line 120
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 10 // java.lang.IllegalAccessException ex
        end local 9 // int type
        end local 8 // android.os.health.HealthKeys$Constant constant
        end local 7 // java.lang.reflect.Field field
        28: .line 108
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 6 /* i */
            iload 4 /* N */
            if_icmplt 14
        end local 6 // int i
        30: .line 126
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        31: goto 34
        32: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.health.HealthKeys$Constants.mKeys:[[I
            iload 6 /* i */
            aload 5 /* keys */
            iload 6 /* i */
            aaload
            invokevirtual android.os.health.HealthKeys$SortedIntArray.getArray:()[I
            aastore
        33: .line 126
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 6 /* i */
            aload 5 /* keys */
            arraylength
            if_icmplt 32
        end local 6 // int i
        35: .line 129
            return
        end local 5 // android.os.health.HealthKeys$SortedIntArray[] keys
        end local 4 // int N
        end local 3 // java.lang.Class annotationClass
        end local 2 // java.lang.reflect.Field[] fields
        end local 1 // java.lang.Class clazz
        end local 0 // android.os.health.HealthKeys$Constants this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   36     0             this  Landroid/os/health/HealthKeys$Constants;
            0   36     1            clazz  Ljava/lang/Class;
            4   36     2           fields  [Ljava/lang/reflect/Field;
            5   36     3  annotationClass  Ljava/lang/Class<Landroid/os/health/HealthKeys$Constant;>;
            6   36     4                N  I
            7   36     5             keys  [Landroid/os/health/HealthKeys$SortedIntArray;
            8   12     6                i  I
           13   30     6                i  I
           15   28     7            field  Ljava/lang/reflect/Field;
           16   28     8         constant  Landroid/os/health/HealthKeys$Constant;
           18   28     9             type  I
           25   28    10               ex  Ljava/lang/IllegalAccessException;
           31   35     6                i  I
      Exception table:
        from    to  target  type
          22    23      24  Class java.lang.IllegalAccessException
    MethodParameters:
       Name  Flags
      clazz  

  public java.lang.String getDataType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.os.health.HealthKeys$Constants this
         0: .line 136
            aload 0 /* this */
            getfield android.os.health.HealthKeys$Constants.mDataType:Ljava/lang/String;
            areturn
        end local 0 // android.os.health.HealthKeys$Constants this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/os/health/HealthKeys$Constants;

  public int getSize(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.os.health.HealthKeys$Constants this
        start local 1 // int type
         0: .line 149
            aload 0 /* this */
            getfield android.os.health.HealthKeys$Constants.mKeys:[[I
            iload 1 /* type */
            aaload
            arraylength
            ireturn
        end local 1 // int type
        end local 0 // android.os.health.HealthKeys$Constants this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/os/health/HealthKeys$Constants;
            0    1     1  type  I
    MethodParameters:
      Name  Flags
      type  

  public int getIndex(int, int);
    descriptor: (II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // android.os.health.HealthKeys$Constants this
        start local 1 // int type
        start local 2 // int key
         0: .line 163
            aload 0 /* this */
            getfield android.os.health.HealthKeys$Constants.mKeys:[[I
            iload 1 /* type */
            aaload
            iload 2 /* key */
            invokestatic java.util.Arrays.binarySearch:([II)I
            istore 3 /* index */
        start local 3 // int index
         1: .line 164
            iload 3 /* index */
            iflt 3
         2: .line 165
            iload 3 /* index */
            ireturn
         3: .line 167
      StackMap locals: int
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown Constant "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* key */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " (of type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 168
            iload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " )"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 167
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int index
        end local 2 // int key
        end local 1 // int type
        end local 0 // android.os.health.HealthKeys$Constants this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Landroid/os/health/HealthKeys$Constants;
            0    6     1   type  I
            0    6     2    key  I
            1    6     3  index  I
    MethodParameters:
      Name  Flags
      type  
      key   

  public int[] getKeys(int);
    descriptor: (I)[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.os.health.HealthKeys$Constants this
        start local 1 // int type
         0: .line 176
            aload 0 /* this */
            getfield android.os.health.HealthKeys$Constants.mKeys:[[I
            iload 1 /* type */
            aaload
            areturn
        end local 1 // int type
        end local 0 // android.os.health.HealthKeys$Constants this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/os/health/HealthKeys$Constants;
            0    1     1  type  I
    MethodParameters:
      Name  Flags
      type  
}
SourceFile: "HealthKeys.java"
NestHost: android.os.health.HealthKeys
InnerClasses:
  public abstract Constant = android.os.health.HealthKeys$Constant of android.os.health.HealthKeys
  public Constants = android.os.health.HealthKeys$Constants of android.os.health.HealthKeys
  private SortedIntArray = android.os.health.HealthKeys$SortedIntArray of android.os.health.HealthKeys