class com.android.mtp.MtpDeviceRecord
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.android.mtp.MtpDeviceRecord
  super_class: java.lang.Object
{
  public final int deviceId;
    descriptor: I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final java.lang.String deviceKey;
    descriptor: Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final boolean opened;
    descriptor: Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final com.android.mtp.MtpRoot[] roots;
    descriptor: [Lcom/android/mtp/MtpRoot;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final int[] operationsSupported;
    descriptor: [I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final int[] eventsSupported;
    descriptor: [I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  void <init>(int, java.lang.String, java.lang.String, boolean, com.android.mtp.MtpRoot[], int[], int[]);
    descriptor: (ILjava/lang/String;Ljava/lang/String;Z[Lcom/android/mtp/MtpRoot;[I[I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=8, args_size=8
        start local 0 // com.android.mtp.MtpDeviceRecord this
        start local 1 // int deviceId
        start local 2 // java.lang.String name
        start local 3 // java.lang.String deviceKey
        start local 4 // boolean opened
        start local 5 // com.android.mtp.MtpRoot[] roots
        start local 6 // int[] operationsSupported
        start local 7 // int[] eventsSupported
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 34
            aload 0 /* this */
            iload 1 /* deviceId */
            putfield com.android.mtp.MtpDeviceRecord.deviceId:I
         2: .line 35
            aload 0 /* this */
            aload 2 /* name */
            putfield com.android.mtp.MtpDeviceRecord.name:Ljava/lang/String;
         3: .line 36
            aload 0 /* this */
            iload 4 /* opened */
            putfield com.android.mtp.MtpDeviceRecord.opened:Z
         4: .line 37
            aload 0 /* this */
            aload 5 /* roots */
            putfield com.android.mtp.MtpDeviceRecord.roots:[Lcom/android/mtp/MtpRoot;
         5: .line 38
            aload 0 /* this */
            aload 3 /* deviceKey */
            putfield com.android.mtp.MtpDeviceRecord.deviceKey:Ljava/lang/String;
         6: .line 39
            aload 0 /* this */
            aload 6 /* operationsSupported */
            putfield com.android.mtp.MtpDeviceRecord.operationsSupported:[I
         7: .line 40
            aload 0 /* this */
            aload 7 /* eventsSupported */
            putfield com.android.mtp.MtpDeviceRecord.eventsSupported:[I
         8: .line 41
            return
        end local 7 // int[] eventsSupported
        end local 6 // int[] operationsSupported
        end local 5 // com.android.mtp.MtpRoot[] roots
        end local 4 // boolean opened
        end local 3 // java.lang.String deviceKey
        end local 2 // java.lang.String name
        end local 1 // int deviceId
        end local 0 // com.android.mtp.MtpDeviceRecord this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Lcom/android/mtp/MtpDeviceRecord;
            0    9     1             deviceId  I
            0    9     2                 name  Ljava/lang/String;
            0    9     3            deviceKey  Ljava/lang/String;
            0    9     4               opened  Z
            0    9     5                roots  [Lcom/android/mtp/MtpRoot;
            0    9     6  operationsSupported  [I
            0    9     7      eventsSupported  [I
    MethodParameters:
                     Name  Flags
      deviceId             
      name                 
      deviceKey            
      opened               
      roots                
      operationsSupported  
      eventsSupported      

  static boolean isSupported(int[], int);
    descriptor: ([II)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // int[] supportedList
        start local 1 // int code
         0: .line 47
            aload 0 /* supportedList */
            ifnonnull 2
         1: .line 48
            iconst_0
            ireturn
         2: .line 50
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 51
      StackMap locals: int
      StackMap stack:
            aload 0 /* supportedList */
            iload 2 /* i */
            iaload
            iload 1 /* code */
            if_icmpne 6
         5: .line 52
            iconst_1
            ireturn
         6: .line 50
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* supportedList */
            arraylength
            if_icmplt 4
        end local 2 // int i
         8: .line 55
            iconst_0
            ireturn
        end local 1 // int code
        end local 0 // int[] supportedList
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0  supportedList  [I
            0    9     1           code  I
            3    8     2              i  I
    MethodParameters:
               Name  Flags
      supportedList  
      code           

  static boolean isPartialReadSupported(int[], long);
    descriptor: ([IJ)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // int[] supportedList
        start local 1 // long fileSize
         0: .line 59
            aload 0 /* supportedList */
            ldc 38337
            invokestatic com.android.mtp.MtpDeviceRecord.isSupported:([II)Z
            ifeq 2
         1: .line 60
            iconst_1
            ireturn
         2: .line 62
      StackMap locals:
      StackMap stack:
            lconst_0
            lload 1 /* fileSize */
            lcmp
            ifgt 6
         3: .line 63
            lload 1 /* fileSize */
            ldc 4294967295
            lcmp
            ifgt 6
         4: .line 64
            aload 0 /* supportedList */
            sipush 4123
            invokestatic com.android.mtp.MtpDeviceRecord.isSupported:([II)Z
            ifeq 6
         5: .line 65
            iconst_1
            ireturn
         6: .line 67
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // long fileSize
        end local 0 // int[] supportedList
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0  supportedList  [I
            0    7     1       fileSize  J
    MethodParameters:
               Name  Flags
      supportedList  
      fileSize       

  static boolean isWritingSupported(int[]);
    descriptor: ([I)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int[] supportedList
         0: .line 71
            aload 0 /* supportedList */
            sipush 4108
            invokestatic com.android.mtp.MtpDeviceRecord.isSupported:([II)Z
            ifeq 3
         1: .line 72
            aload 0 /* supportedList */
            sipush 4109
            invokestatic com.android.mtp.MtpDeviceRecord.isSupported:([II)Z
            ifeq 3
         2: .line 71
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // int[] supportedList
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0  supportedList  [I
    MethodParameters:
               Name  Flags
      supportedList  
}
SourceFile: "MtpDeviceRecord.java"