public abstract class android.content.ContentProvider implements android.content.ComponentCallbacks2
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: android.content.ContentProvider
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ContentProvider"

  private android.content.Context mContext;
    descriptor: Landroid/content/Context;
    flags: (0x0002) ACC_PRIVATE

  private int mMyUid;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String mAuthority;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] mAuthorities;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String mReadPermission;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String mWritePermission;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private android.content.pm.PathPermission[] mPathPermissions;
    descriptor: [Landroid/content/pm/PathPermission;
    flags: (0x0002) ACC_PRIVATE

  private boolean mExported;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mNoPerms;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mSingleUser;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.ThreadLocal<java.lang.String> mCallingPackage;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ljava/lang/String;>;

  private android.content.ContentProvider$Transport mTransport;
    descriptor: Landroid/content/ContentProvider$Transport;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.content.ContentProvider this
         0: .line 143
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 110
            aload 0 /* this */
            aconst_null
            putfield android.content.ContentProvider.mContext:Landroid/content/Context;
         2: .line 124
            aload 0 /* this */
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putfield android.content.ContentProvider.mCallingPackage:Ljava/lang/ThreadLocal;
         3: .line 126
            aload 0 /* this */
            new android.content.ContentProvider$Transport
            dup
            aload 0 /* this */
            invokespecial android.content.ContentProvider$Transport.<init>:(Landroid/content/ContentProvider;)V
            putfield android.content.ContentProvider.mTransport:Landroid/content/ContentProvider$Transport;
         4: .line 144
            return
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/content/ContentProvider;

  public void <init>(android.content.Context, java.lang.String, java.lang.String, android.content.pm.PathPermission[]);
    descriptor: (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;[Landroid/content/pm/PathPermission;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // android.content.ContentProvider this
        start local 1 // android.content.Context context
        start local 2 // java.lang.String readPermission
        start local 3 // java.lang.String writePermission
        start local 4 // android.content.pm.PathPermission[] pathPermissions
         0: .line 159
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 110
            aload 0 /* this */
            aconst_null
            putfield android.content.ContentProvider.mContext:Landroid/content/Context;
         2: .line 124
            aload 0 /* this */
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putfield android.content.ContentProvider.mCallingPackage:Ljava/lang/ThreadLocal;
         3: .line 126
            aload 0 /* this */
            new android.content.ContentProvider$Transport
            dup
            aload 0 /* this */
            invokespecial android.content.ContentProvider$Transport.<init>:(Landroid/content/ContentProvider;)V
            putfield android.content.ContentProvider.mTransport:Landroid/content/ContentProvider$Transport;
         4: .line 164
            aload 0 /* this */
            aload 1 /* context */
            putfield android.content.ContentProvider.mContext:Landroid/content/Context;
         5: .line 165
            aload 0 /* this */
            aload 2 /* readPermission */
            putfield android.content.ContentProvider.mReadPermission:Ljava/lang/String;
         6: .line 166
            aload 0 /* this */
            aload 3 /* writePermission */
            putfield android.content.ContentProvider.mWritePermission:Ljava/lang/String;
         7: .line 167
            aload 0 /* this */
            aload 4 /* pathPermissions */
            putfield android.content.ContentProvider.mPathPermissions:[Landroid/content/pm/PathPermission;
         8: .line 168
            return
        end local 4 // android.content.pm.PathPermission[] pathPermissions
        end local 3 // java.lang.String writePermission
        end local 2 // java.lang.String readPermission
        end local 1 // android.content.Context context
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Landroid/content/ContentProvider;
            0    9     1          context  Landroid/content/Context;
            0    9     2   readPermission  Ljava/lang/String;
            0    9     3  writePermission  Ljava/lang/String;
            0    9     4  pathPermissions  [Landroid/content/pm/PathPermission;
    MethodParameters:
                 Name  Flags
      context          
      readPermission   
      writePermission  
      pathPermissions  

  public static android.content.ContentProvider coerceToLocalContentProvider(android.content.IContentProvider);
    descriptor: (Landroid/content/IContentProvider;)Landroid/content/ContentProvider;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.IContentProvider abstractInterface
         0: .line 185
            aload 0 /* abstractInterface */
            instanceof android.content.ContentProvider$Transport
            ifeq 2
         1: .line 186
            aload 0 /* abstractInterface */
            checkcast android.content.ContentProvider$Transport
            invokevirtual android.content.ContentProvider$Transport.getContentProvider:()Landroid/content/ContentProvider;
            areturn
         2: .line 188
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // android.content.IContentProvider abstractInterface
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0  abstractInterface  Landroid/content/IContentProvider;
    MethodParameters:
                   Name  Flags
      abstractInterface  

  boolean checkUser(int, int, android.content.Context);
    descriptor: (IILandroid/content/Context;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.content.ContentProvider this
         0: .line 534
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tINTERACT_ACROSS_USERS cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/ContentProvider;
    MethodParameters:
         Name  Flags
      pid      
      uid      
      context  

  private int checkPermissionAndAppOp(java.lang.String, java.lang.String, android.os.IBinder);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // android.content.ContentProvider this
        start local 1 // java.lang.String permission
        start local 2 // java.lang.String callingPkg
        start local 3 // android.os.IBinder callerToken
         0: .line 544
            aload 0 /* this */
            invokevirtual android.content.ContentProvider.getContext:()Landroid/content/Context;
            aload 1 /* permission */
            invokestatic android.os.Binder.getCallingPid:()I
            invokestatic android.os.Binder.getCallingUid:()I
         1: .line 545
            aload 3 /* callerToken */
         2: .line 544
            invokevirtual android.content.Context.checkPermission:(Ljava/lang/String;IILandroid/os/IBinder;)I
            ifeq 4
         3: .line 546
            iconst_2
            ireturn
         4: .line 549
      StackMap locals:
      StackMap stack:
            aload 1 /* permission */
            invokestatic android.app.AppOpsManager.permissionToOpCode:(Ljava/lang/String;)I
            istore 4 /* permOp */
        start local 4 // int permOp
         5: .line 550
            iload 4 /* permOp */
            iconst_m1
            if_icmpeq 7
         6: .line 551
            aload 0 /* this */
            getfield android.content.ContentProvider.mTransport:Landroid/content/ContentProvider$Transport;
            getfield android.content.ContentProvider$Transport.mAppOpsManager:Landroid/app/AppOpsManager;
            iload 4 /* permOp */
            aload 2 /* callingPkg */
            invokevirtual android.app.AppOpsManager.noteProxyOp:(ILjava/lang/String;)I
            ireturn
         7: .line 554
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // int permOp
        end local 3 // android.os.IBinder callerToken
        end local 2 // java.lang.String callingPkg
        end local 1 // java.lang.String permission
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Landroid/content/ContentProvider;
            0    8     1   permission  Ljava/lang/String;
            0    8     2   callingPkg  Ljava/lang/String;
            0    8     3  callerToken  Landroid/os/IBinder;
            5    8     4       permOp  I
    MethodParameters:
             Name  Flags
      permission   
      callingPkg   
      callerToken  

  protected int enforceReadPermissionInner(android.net.Uri, java.lang.String, android.os.IBinder);
    descriptor: (Landroid/net/Uri;Ljava/lang/String;Landroid/os/IBinder;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.content.ContentProvider this
         0: .line 627
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.MANAGE_DOCUMENTS cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/ContentProvider;
    Exceptions:
      throws java.lang.SecurityException
    MethodParameters:
             Name  Flags
      uri          
      callingPkg   
      callerToken  

  protected int enforceWritePermissionInner(android.net.Uri, java.lang.String, android.os.IBinder);
    descriptor: (Landroid/net/Uri;Ljava/lang/String;Landroid/os/IBinder;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=19, args_size=4
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String callingPkg
        start local 3 // android.os.IBinder callerToken
         0: .line 642
            aload 0 /* this */
            invokevirtual android.content.ContentProvider.getContext:()Landroid/content/Context;
            astore 4 /* context */
        start local 4 // android.content.Context context
         1: .line 643
            invokestatic android.os.Binder.getCallingPid:()I
            istore 5 /* pid */
        start local 5 // int pid
         2: .line 644
            invokestatic android.os.Binder.getCallingUid:()I
            istore 6 /* uid */
        start local 6 // int uid
         3: .line 645
            aconst_null
            astore 7 /* missingPerm */
        start local 7 // java.lang.String missingPerm
         4: .line 646
            iconst_0
            istore 8 /* strongestMode */
        start local 8 // int strongestMode
         5: .line 648
            iload 6 /* uid */
            aload 0 /* this */
            getfield android.content.ContentProvider.mMyUid:I
            invokestatic android.os.UserHandle.isSameApp:(II)Z
            ifeq 7
         6: .line 649
            iconst_0
            ireturn
         7: .line 652
      StackMap locals: android.content.ContentProvider android.net.Uri java.lang.String android.os.IBinder android.content.Context int int java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield android.content.ContentProvider.mExported:Z
            ifeq 34
            aload 0 /* this */
            iload 5 /* pid */
            iload 6 /* uid */
            aload 4 /* context */
            invokevirtual android.content.ContentProvider.checkUser:(IILandroid/content/Context;)Z
            ifeq 34
         8: .line 653
            aload 0 /* this */
            invokevirtual android.content.ContentProvider.getWritePermission:()Ljava/lang/String;
            astore 9 /* componentPerm */
        start local 9 // java.lang.String componentPerm
         9: .line 654
            aload 9 /* componentPerm */
            ifnull 15
        10: .line 655
            aload 0 /* this */
            aload 9 /* componentPerm */
            aload 2 /* callingPkg */
            aload 3 /* callerToken */
            invokevirtual android.content.ContentProvider.checkPermissionAndAppOp:(Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
            istore 10 /* mode */
        start local 10 // int mode
        11: .line 656
            iload 10 /* mode */
            ifne 13
        12: .line 657
            iconst_0
            ireturn
        13: .line 659
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 9 /* componentPerm */
            astore 7 /* missingPerm */
        14: .line 660
            iload 8 /* strongestMode */
            iload 10 /* mode */
            invokestatic java.lang.Math.max:(II)I
            istore 8 /* strongestMode */
        end local 10 // int mode
        15: .line 666
      StackMap locals:
      StackMap stack:
            aload 9 /* componentPerm */
            ifnonnull 16
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 10 /* allowDefaultWrite */
        start local 10 // boolean allowDefaultWrite
        18: .line 668
            aload 0 /* this */
            invokevirtual android.content.ContentProvider.getPathPermissions:()[Landroid/content/pm/PathPermission;
            astore 11 /* pps */
        start local 11 // android.content.pm.PathPermission[] pps
        19: .line 669
            aload 11 /* pps */
            ifnull 33
        20: .line 670
            aload 1 /* uri */
            invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
            astore 12 /* path */
        start local 12 // java.lang.String path
        21: .line 671
            aload 11 /* pps */
            dup
            astore 16
            arraylength
            istore 15
            iconst_0
            istore 14
            goto 32
      StackMap locals: android.content.ContentProvider android.net.Uri java.lang.String android.os.IBinder android.content.Context int int java.lang.String int java.lang.String int android.content.pm.PathPermission[] java.lang.String top int int android.content.pm.PathPermission[]
      StackMap stack:
        22: aload 16
            iload 14
            aaload
            astore 13 /* pp */
        start local 13 // android.content.pm.PathPermission pp
        23: .line 672
            aload 13 /* pp */
            invokevirtual android.content.pm.PathPermission.getWritePermission:()Ljava/lang/String;
            astore 17 /* pathPerm */
        start local 17 // java.lang.String pathPerm
        24: .line 673
            aload 17 /* pathPerm */
            ifnull 31
            aload 13 /* pp */
            aload 12 /* path */
            invokevirtual android.content.pm.PathPermission.match:(Ljava/lang/String;)Z
            ifeq 31
        25: .line 674
            aload 0 /* this */
            aload 17 /* pathPerm */
            aload 2 /* callingPkg */
            aload 3 /* callerToken */
            invokevirtual android.content.ContentProvider.checkPermissionAndAppOp:(Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
            istore 18 /* mode */
        start local 18 // int mode
        26: .line 675
            iload 18 /* mode */
            ifne 28
        27: .line 676
            iconst_0
            ireturn
        28: .line 680
      StackMap locals: android.content.ContentProvider android.net.Uri java.lang.String android.os.IBinder android.content.Context int int java.lang.String int java.lang.String int android.content.pm.PathPermission[] java.lang.String android.content.pm.PathPermission int int android.content.pm.PathPermission[] java.lang.String int
      StackMap stack:
            iconst_0
            istore 10 /* allowDefaultWrite */
        29: .line 681
            aload 17 /* pathPerm */
            astore 7 /* missingPerm */
        30: .line 682
            iload 8 /* strongestMode */
            iload 18 /* mode */
            invokestatic java.lang.Math.max:(II)I
            istore 8 /* strongestMode */
        end local 18 // int mode
        end local 17 // java.lang.String pathPerm
        end local 13 // android.content.pm.PathPermission pp
        31: .line 671
      StackMap locals: android.content.ContentProvider android.net.Uri java.lang.String android.os.IBinder android.content.Context int int java.lang.String int java.lang.String int android.content.pm.PathPermission[] java.lang.String top int int android.content.pm.PathPermission[]
      StackMap stack:
            iinc 14 1
      StackMap locals:
      StackMap stack:
        32: iload 14
            iload 15
            if_icmplt 22
        end local 12 // java.lang.String path
        33: .line 690
      StackMap locals: android.content.ContentProvider android.net.Uri java.lang.String android.os.IBinder android.content.Context int int java.lang.String int java.lang.String int android.content.pm.PathPermission[]
      StackMap stack:
            iload 10 /* allowDefaultWrite */
            ifeq 34
            iconst_0
            ireturn
        end local 11 // android.content.pm.PathPermission[] pps
        end local 10 // boolean allowDefaultWrite
        end local 9 // java.lang.String componentPerm
        34: .line 694
      StackMap locals:
      StackMap stack:
            aload 4 /* context */
            aload 1 /* uri */
            iload 5 /* pid */
            iload 6 /* uid */
            iconst_2
        35: .line 695
            aload 3 /* callerToken */
        36: .line 694
            invokevirtual android.content.Context.checkUriPermission:(Landroid/net/Uri;IIILandroid/os/IBinder;)I
            ifne 38
        37: .line 696
            iconst_0
            ireturn
        38: .line 701
      StackMap locals:
      StackMap stack:
            iload 8 /* strongestMode */
            iconst_1
            if_icmpne 40
        39: .line 702
            iconst_1
            ireturn
        40: .line 705
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.content.ContentProvider.mExported:Z
            ifeq 42
        41: .line 706
            new java.lang.StringBuilder
            dup
            ldc " requires "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* missingPerm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", or grantUriPermission()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 43
        42: .line 707
      StackMap locals:
      StackMap stack:
            ldc " requires the provider be exported, or grantUriPermission()"
        43: .line 705
      StackMap locals:
      StackMap stack: java.lang.String
            astore 9 /* failReason */
        start local 9 // java.lang.String failReason
        44: .line 708
            new java.lang.SecurityException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Permission Denial: writing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        45: .line 709
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " uri "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " from pid="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* pid */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        46: .line 710
            ldc ", uid="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* uid */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            aload 9 /* failReason */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        47: .line 708
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.String failReason
        end local 8 // int strongestMode
        end local 7 // java.lang.String missingPerm
        end local 6 // int uid
        end local 5 // int pid
        end local 4 // android.content.Context context
        end local 3 // android.os.IBinder callerToken
        end local 2 // java.lang.String callingPkg
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   48     0               this  Landroid/content/ContentProvider;
            0   48     1                uri  Landroid/net/Uri;
            0   48     2         callingPkg  Ljava/lang/String;
            0   48     3        callerToken  Landroid/os/IBinder;
            1   48     4            context  Landroid/content/Context;
            2   48     5                pid  I
            3   48     6                uid  I
            4   48     7        missingPerm  Ljava/lang/String;
            5   48     8      strongestMode  I
            9   34     9      componentPerm  Ljava/lang/String;
           11   15    10               mode  I
           18   34    10  allowDefaultWrite  Z
           19   34    11                pps  [Landroid/content/pm/PathPermission;
           21   33    12               path  Ljava/lang/String;
           23   31    13                 pp  Landroid/content/pm/PathPermission;
           24   31    17           pathPerm  Ljava/lang/String;
           26   31    18               mode  I
           44   48     9         failReason  Ljava/lang/String;
    Exceptions:
      throws java.lang.SecurityException
    MethodParameters:
             Name  Flags
      uri          
      callingPkg   
      callerToken  

  public final android.content.Context getContext();
    descriptor: ()Landroid/content/Context;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.ContentProvider this
         0: .line 719
            aload 0 /* this */
            getfield android.content.ContentProvider.mContext:Landroid/content/Context;
            areturn
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/ContentProvider;

  private java.lang.String setCallingPackage(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // java.lang.String callingPackage
         0: .line 727
            aload 0 /* this */
            getfield android.content.ContentProvider.mCallingPackage:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* original */
        start local 2 // java.lang.String original
         1: .line 728
            aload 0 /* this */
            getfield android.content.ContentProvider.mCallingPackage:Ljava/lang/ThreadLocal;
            aload 1 /* callingPackage */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         2: .line 729
            aload 2 /* original */
            areturn
        end local 2 // java.lang.String original
        end local 1 // java.lang.String callingPackage
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Landroid/content/ContentProvider;
            0    3     1  callingPackage  Ljava/lang/String;
            1    3     2        original  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      callingPackage  

  public final java.lang.String getCallingPackage();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.content.ContentProvider this
         0: .line 747
            aload 0 /* this */
            getfield android.content.ContentProvider.mCallingPackage:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* pkg */
        start local 1 // java.lang.String pkg
         1: .line 748
            aload 1 /* pkg */
            ifnull 3
         2: .line 749
            aload 0 /* this */
            getfield android.content.ContentProvider.mTransport:Landroid/content/ContentProvider$Transport;
            getfield android.content.ContentProvider$Transport.mAppOpsManager:Landroid/app/AppOpsManager;
            invokestatic android.os.Binder.getCallingUid:()I
            aload 1 /* pkg */
            invokevirtual android.app.AppOpsManager.checkPackage:(ILjava/lang/String;)V
         3: .line 751
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* pkg */
            areturn
        end local 1 // java.lang.String pkg
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/content/ContentProvider;
            1    4     1   pkg  Ljava/lang/String;

  protected final void setAuthorities(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // java.lang.String authorities
         0: .line 762
            aload 1 /* authorities */
            ifnull 7
         1: .line 763
            aload 1 /* authorities */
            bipush 59
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 5
         2: .line 764
            aload 0 /* this */
            aload 1 /* authorities */
            putfield android.content.ContentProvider.mAuthority:Ljava/lang/String;
         3: .line 765
            aload 0 /* this */
            aconst_null
            putfield android.content.ContentProvider.mAuthorities:[Ljava/lang/String;
         4: .line 766
            goto 7
         5: .line 767
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.content.ContentProvider.mAuthority:Ljava/lang/String;
         6: .line 768
            aload 0 /* this */
            aload 1 /* authorities */
            ldc ";"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            putfield android.content.ContentProvider.mAuthorities:[Ljava/lang/String;
         7: .line 771
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String authorities
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Landroid/content/ContentProvider;
            0    8     1  authorities  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      authorities  

  protected final boolean matchesOurAuthorities(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // java.lang.String authority
         0: .line 775
            aload 0 /* this */
            getfield android.content.ContentProvider.mAuthority:Ljava/lang/String;
            ifnull 2
         1: .line 776
            aload 0 /* this */
            getfield android.content.ContentProvider.mAuthority:Ljava/lang/String;
            aload 1 /* authority */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
         2: .line 778
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.content.ContentProvider.mAuthorities:[Ljava/lang/String;
            ifnull 9
         3: .line 779
            aload 0 /* this */
            getfield android.content.ContentProvider.mAuthorities:[Ljava/lang/String;
            arraylength
            istore 2 /* length */
        start local 2 // int length
         4: .line 780
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 781
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield android.content.ContentProvider.mAuthorities:[Ljava/lang/String;
            iload 3 /* i */
            aaload
            aload 1 /* authority */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
            iconst_1
            ireturn
         7: .line 780
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 2 /* length */
            if_icmplt 6
        end local 3 // int i
        end local 2 // int length
         9: .line 784
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.String authority
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Landroid/content/ContentProvider;
            0   10     1  authority  Ljava/lang/String;
            4    9     2     length  I
            5    9     3          i  I
    MethodParameters:
           Name  Flags
      authority  

  protected final void setReadPermission(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // java.lang.String permission
         0: .line 796
            aload 0 /* this */
            aload 1 /* permission */
            putfield android.content.ContentProvider.mReadPermission:Ljava/lang/String;
         1: .line 797
            return
        end local 1 // java.lang.String permission
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/content/ContentProvider;
            0    2     1  permission  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      permission  

  public final java.lang.String getReadPermission();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.ContentProvider this
         0: .line 807
            aload 0 /* this */
            getfield android.content.ContentProvider.mReadPermission:Ljava/lang/String;
            areturn
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/ContentProvider;

  protected final void setWritePermission(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // java.lang.String permission
         0: .line 818
            aload 0 /* this */
            aload 1 /* permission */
            putfield android.content.ContentProvider.mWritePermission:Ljava/lang/String;
         1: .line 819
            return
        end local 1 // java.lang.String permission
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/content/ContentProvider;
            0    2     1  permission  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      permission  

  public final java.lang.String getWritePermission();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.ContentProvider this
         0: .line 829
            aload 0 /* this */
            getfield android.content.ContentProvider.mWritePermission:Ljava/lang/String;
            areturn
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/ContentProvider;

  protected final void setPathPermissions(android.content.pm.PathPermission[]);
    descriptor: ([Landroid/content/pm/PathPermission;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // android.content.pm.PathPermission[] permissions
         0: .line 840
            aload 0 /* this */
            aload 1 /* permissions */
            putfield android.content.ContentProvider.mPathPermissions:[Landroid/content/pm/PathPermission;
         1: .line 841
            return
        end local 1 // android.content.pm.PathPermission[] permissions
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Landroid/content/ContentProvider;
            0    2     1  permissions  [Landroid/content/pm/PathPermission;
    MethodParameters:
             Name  Flags
      permissions  

  public final android.content.pm.PathPermission[] getPathPermissions();
    descriptor: ()[Landroid/content/pm/PathPermission;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.ContentProvider this
         0: .line 851
            aload 0 /* this */
            getfield android.content.ContentProvider.mPathPermissions:[Landroid/content/pm/PathPermission;
            areturn
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/ContentProvider;

  public final void setAppOps(int, int);
    descriptor: (II)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.content.ContentProvider this
        start local 1 // int readOp
        start local 2 // int writeOp
         0: .line 856
            aload 0 /* this */
            getfield android.content.ContentProvider.mNoPerms:Z
            ifne 3
         1: .line 857
            aload 0 /* this */
            getfield android.content.ContentProvider.mTransport:Landroid/content/ContentProvider$Transport;
            iload 1 /* readOp */
            putfield android.content.ContentProvider$Transport.mReadOp:I
         2: .line 858
            aload 0 /* this */
            getfield android.content.ContentProvider.mTransport:Landroid/content/ContentProvider$Transport;
            iload 2 /* writeOp */
            putfield android.content.ContentProvider$Transport.mWriteOp:I
         3: .line 860
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int writeOp
        end local 1 // int readOp
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Landroid/content/ContentProvider;
            0    4     1   readOp  I
            0    4     2  writeOp  I
    MethodParameters:
         Name  Flags
      readOp   
      writeOp  

  public android.app.AppOpsManager getAppOpsManager();
    descriptor: ()Landroid/app/AppOpsManager;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.ContentProvider this
         0: .line 864
            aload 0 /* this */
            getfield android.content.ContentProvider.mTransport:Landroid/content/ContentProvider$Transport;
            getfield android.content.ContentProvider$Transport.mAppOpsManager:Landroid/app/AppOpsManager;
            areturn
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/ContentProvider;

  public abstract boolean onCreate();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void onConfigurationChanged(android.content.res.Configuration);
    descriptor: (Landroid/content/res/Configuration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // android.content.res.Configuration newConfig
         0: .line 906
            return
        end local 1 // android.content.res.Configuration newConfig
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Landroid/content/ContentProvider;
            0    1     1  newConfig  Landroid/content/res/Configuration;
    MethodParameters:
           Name  Flags
      newConfig  

  public void onLowMemory();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.content.ContentProvider this
         0: .line 918
            return
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/ContentProvider;

  public void onTrimMemory(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // int level
         0: .line 922
            return
        end local 1 // int level
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/content/ContentProvider;
            0    1     1  level  I
    MethodParameters:
       Name  Flags
      level  

  public abstract android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
    descriptor: (Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
               Name  Flags
      uri            
      projection     
      selection      
      selectionArgs  
      sortOrder      

  public android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, android.os.CancellationSignal);
    descriptor: (Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=7
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String[] projection
        start local 3 // java.lang.String selection
        start local 4 // java.lang.String[] selectionArgs
        start local 5 // java.lang.String sortOrder
        start local 6 // android.os.CancellationSignal cancellationSignal
         0: .line 1058
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* projection */
            aload 3 /* selection */
            aload 4 /* selectionArgs */
            aload 5 /* sortOrder */
            invokevirtual android.content.ContentProvider.query:(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
            areturn
        end local 6 // android.os.CancellationSignal cancellationSignal
        end local 5 // java.lang.String sortOrder
        end local 4 // java.lang.String[] selectionArgs
        end local 3 // java.lang.String selection
        end local 2 // java.lang.String[] projection
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Landroid/content/ContentProvider;
            0    1     1                 uri  Landroid/net/Uri;
            0    1     2          projection  [Ljava/lang/String;
            0    1     3           selection  Ljava/lang/String;
            0    1     4       selectionArgs  [Ljava/lang/String;
            0    1     5           sortOrder  Ljava/lang/String;
            0    1     6  cancellationSignal  Landroid/os/CancellationSignal;
    MethodParameters:
                    Name  Flags
      uri                 
      projection          
      selection           
      selectionArgs       
      sortOrder           
      cancellationSignal  

  public android.database.Cursor query(android.net.Uri, java.lang.String[], android.os.Bundle, android.os.CancellationSignal);
    descriptor: (Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String[] projection
        start local 3 // android.os.Bundle queryArgs
        start local 4 // android.os.CancellationSignal cancellationSignal
         0: .line 1141
            aload 3 /* queryArgs */
            ifnull 1
            aload 3 /* queryArgs */
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic android.os.Bundle.EMPTY:Landroid/os/Bundle;
      StackMap locals:
      StackMap stack: android.os.Bundle
         2: astore 3 /* queryArgs */
         3: .line 1145
            aload 3 /* queryArgs */
            ldc "android:query-arg-sql-sort-order"
            invokevirtual android.os.Bundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* sortClause */
        start local 5 // java.lang.String sortClause
         4: .line 1146
            aload 5 /* sortClause */
            ifnonnull 6
            aload 3 /* queryArgs */
            ldc "android:query-arg-sort-columns"
            invokevirtual android.os.Bundle.containsKey:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 1147
            aload 3 /* queryArgs */
            invokestatic android.content.ContentResolver.createSqlSortClause:(Landroid/os/Bundle;)Ljava/lang/String;
            astore 5 /* sortClause */
         6: .line 1150
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
         7: .line 1151
            aload 1 /* uri */
         8: .line 1152
            aload 2 /* projection */
         9: .line 1153
            aload 3 /* queryArgs */
            ldc "android:query-arg-sql-selection"
            invokevirtual android.os.Bundle.getString:(Ljava/lang/String;)Ljava/lang/String;
        10: .line 1154
            aload 3 /* queryArgs */
            ldc "android:query-arg-sql-selection-args"
            invokevirtual android.os.Bundle.getStringArray:(Ljava/lang/String;)[Ljava/lang/String;
        11: .line 1155
            aload 5 /* sortClause */
        12: .line 1156
            aload 4 /* cancellationSignal */
        13: .line 1150
            invokevirtual android.content.ContentProvider.query:(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
            areturn
        end local 5 // java.lang.String sortClause
        end local 4 // android.os.CancellationSignal cancellationSignal
        end local 3 // android.os.Bundle queryArgs
        end local 2 // java.lang.String[] projection
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   14     0                this  Landroid/content/ContentProvider;
            0   14     1                 uri  Landroid/net/Uri;
            0   14     2          projection  [Ljava/lang/String;
            0   14     3           queryArgs  Landroid/os/Bundle;
            0   14     4  cancellationSignal  Landroid/os/CancellationSignal;
            4   14     5          sortClause  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      uri                 
      projection          
      queryArgs           
      cancellationSignal  

  public abstract java.lang.String getType(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      uri   

  public android.net.Uri canonicalize(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Landroid/net/Uri;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri url
         0: .line 1210
            aconst_null
            areturn
        end local 1 // android.net.Uri url
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/ContentProvider;
            0    1     1   url  Landroid/net/Uri;
    MethodParameters:
      Name  Flags
      url   

  public android.net.Uri uncanonicalize(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Landroid/net/Uri;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri url
         0: .line 1228
            aload 1 /* url */
            areturn
        end local 1 // android.net.Uri url
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/ContentProvider;
            0    1     1   url  Landroid/net/Uri;
    MethodParameters:
      Name  Flags
      url   

  public boolean refresh(android.net.Uri, android.os.Bundle, android.os.CancellationSignal);
    descriptor: (Landroid/net/Uri;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // android.os.Bundle args
        start local 3 // android.os.CancellationSignal cancellationSignal
         0: .line 1255
            iconst_0
            ireturn
        end local 3 // android.os.CancellationSignal cancellationSignal
        end local 2 // android.os.Bundle args
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Landroid/content/ContentProvider;
            0    1     1                 uri  Landroid/net/Uri;
            0    1     2                args  Landroid/os/Bundle;
            0    1     3  cancellationSignal  Landroid/os/CancellationSignal;
    MethodParameters:
                    Name  Flags
      uri                 
      args                
      cancellationSignal  

  public android.net.Uri rejectInsert(android.net.Uri, android.content.ContentValues);
    descriptor: (Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // android.content.ContentValues values
         0: .line 1272
            aload 1 /* uri */
            invokevirtual android.net.Uri.buildUpon:()Landroid/net/Uri$Builder;
            ldc "0"
            invokevirtual android.net.Uri$Builder.appendPath:(Ljava/lang/String;)Landroid/net/Uri$Builder;
            invokevirtual android.net.Uri$Builder.build:()Landroid/net/Uri;
            areturn
        end local 2 // android.content.ContentValues values
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/content/ContentProvider;
            0    1     1     uri  Landroid/net/Uri;
            0    1     2  values  Landroid/content/ContentValues;
    MethodParameters:
        Name  Flags
      uri     
      values  

  public abstract android.net.Uri insert(android.net.Uri, android.content.ContentValues);
    descriptor: (Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      uri     
      values  

  public int bulkInsert(android.net.Uri, android.content.ContentValues[]);
    descriptor: (Landroid/net/Uri;[Landroid/content/ContentValues;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // android.content.ContentValues[] values
         0: .line 1305
            aload 2 /* values */
            arraylength
            istore 3 /* numValues */
        start local 3 // int numValues
         1: .line 1306
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 5
         3: .line 1307
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* values */
            iload 4 /* i */
            aaload
            invokevirtual android.content.ContentProvider.insert:(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
            pop
         4: .line 1306
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 4 /* i */
            iload 3 /* numValues */
            if_icmplt 3
        end local 4 // int i
         6: .line 1309
            iload 3 /* numValues */
            ireturn
        end local 3 // int numValues
        end local 2 // android.content.ContentValues[] values
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Landroid/content/ContentProvider;
            0    7     1        uri  Landroid/net/Uri;
            0    7     2     values  [Landroid/content/ContentValues;
            1    7     3  numValues  I
            2    6     4          i  I
    MethodParameters:
        Name  Flags
      uri     
      values  

  public abstract int delete(android.net.Uri, java.lang.String, java.lang.String[]);
    descriptor: (Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
               Name  Flags
      uri            
      selection      
      selectionArgs  

  public abstract int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
    descriptor: (Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
               Name  Flags
      uri            
      values         
      selection      
      selectionArgs  

  public android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String);
    descriptor: (Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String mode
         0: .line 1420
            new java.io.FileNotFoundException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No files supported by provider at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 1421
            aload 1 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         2: .line 1420
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String mode
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/content/ContentProvider;
            0    3     1   uri  Landroid/net/Uri;
            0    3     2  mode  Ljava/lang/String;
    Exceptions:
      throws java.io.FileNotFoundException
    MethodParameters:
      Name  Flags
      uri   
      mode  

  public android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal);
    descriptor: (Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String mode
        start local 3 // android.os.CancellationSignal signal
         0: .line 1490
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* mode */
            invokevirtual android.content.ContentProvider.openFile:(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
            areturn
        end local 3 // android.os.CancellationSignal signal
        end local 2 // java.lang.String mode
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/content/ContentProvider;
            0    1     1     uri  Landroid/net/Uri;
            0    1     2    mode  Ljava/lang/String;
            0    1     3  signal  Landroid/os/CancellationSignal;
    Exceptions:
      throws java.io.FileNotFoundException
    MethodParameters:
        Name  Flags
      uri     
      mode    
      signal  

  public android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri, java.lang.String);
    descriptor: (Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String mode
         0: .line 1546
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* mode */
            invokevirtual android.content.ContentProvider.openFile:(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
            astore 3 /* fd */
        start local 3 // android.os.ParcelFileDescriptor fd
         1: .line 1547
            aload 3 /* fd */
            ifnull 2
            new android.content.res.AssetFileDescriptor
            dup
            aload 3 /* fd */
            lconst_0
            ldc -1
            invokespecial android.content.res.AssetFileDescriptor.<init>:(Landroid/os/ParcelFileDescriptor;JJ)V
            goto 3
      StackMap locals: android.os.ParcelFileDescriptor
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: android.content.res.AssetFileDescriptor
         3: areturn
        end local 3 // android.os.ParcelFileDescriptor fd
        end local 2 // java.lang.String mode
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/content/ContentProvider;
            0    4     1   uri  Landroid/net/Uri;
            0    4     2  mode  Ljava/lang/String;
            1    4     3    fd  Landroid/os/ParcelFileDescriptor;
    Exceptions:
      throws java.io.FileNotFoundException
    MethodParameters:
      Name  Flags
      uri   
      mode  

  public android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri, java.lang.String, android.os.CancellationSignal);
    descriptor: (Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String mode
        start local 3 // android.os.CancellationSignal signal
         0: .line 1609
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* mode */
            invokevirtual android.content.ContentProvider.openAssetFile:(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
            areturn
        end local 3 // android.os.CancellationSignal signal
        end local 2 // java.lang.String mode
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/content/ContentProvider;
            0    1     1     uri  Landroid/net/Uri;
            0    1     2    mode  Ljava/lang/String;
            0    1     3  signal  Landroid/os/CancellationSignal;
    Exceptions:
      throws java.io.FileNotFoundException
    MethodParameters:
        Name  Flags
      uri     
      mode    
      signal  

  protected final android.os.ParcelFileDescriptor openFileHelper(android.net.Uri, java.lang.String);
    descriptor: (Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String mode
         0: .line 1628
            aload 0 /* this */
            aload 1 /* uri */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "_data"
            aastore
            aconst_null
            aconst_null
            aconst_null
            invokevirtual android.content.ContentProvider.query:(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
            astore 3 /* c */
        start local 3 // android.database.Cursor c
         1: .line 1629
            aload 3 /* c */
            ifnull 2
            aload 3 /* c */
            invokeinterface android.database.Cursor.getCount:()I
            goto 3
      StackMap locals: android.database.Cursor
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* count */
        start local 4 // int count
         4: .line 1630
            iload 4 /* count */
            iconst_1
            if_icmpeq 10
         5: .line 1633
            aload 3 /* c */
            ifnull 7
         6: .line 1634
            aload 3 /* c */
            invokeinterface android.database.Cursor.close:()V
         7: .line 1636
      StackMap locals: int
      StackMap stack:
            iload 4 /* count */
            ifne 9
         8: .line 1637
            new java.io.FileNotFoundException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No entry for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1639
      StackMap locals:
      StackMap stack:
            new java.io.FileNotFoundException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Multiple items at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 1642
      StackMap locals:
      StackMap stack:
            aload 3 /* c */
            invokeinterface android.database.Cursor.moveToFirst:()Z
            pop
        11: .line 1643
            aload 3 /* c */
            ldc "_data"
            invokeinterface android.database.Cursor.getColumnIndex:(Ljava/lang/String;)I
            istore 5 /* i */
        start local 5 // int i
        12: .line 1644
            iload 5 /* i */
            iflt 13
            aload 3 /* c */
            iload 5 /* i */
            invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
            goto 14
      StackMap locals: int
      StackMap stack:
        13: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
        14: astore 6 /* path */
        start local 6 // java.lang.String path
        15: .line 1645
            aload 3 /* c */
            invokeinterface android.database.Cursor.close:()V
        16: .line 1646
            aload 6 /* path */
            ifnonnull 18
        17: .line 1647
            new java.io.FileNotFoundException
            dup
            ldc "Column _data not found."
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 1650
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* mode */
            invokestatic android.os.ParcelFileDescriptor.parseMode:(Ljava/lang/String;)I
            istore 7 /* modeBits */
        start local 7 // int modeBits
        19: .line 1651
            new java.io.File
            dup
            aload 6 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            iload 7 /* modeBits */
            invokestatic android.os.ParcelFileDescriptor.open:(Ljava/io/File;I)Landroid/os/ParcelFileDescriptor;
            areturn
        end local 7 // int modeBits
        end local 6 // java.lang.String path
        end local 5 // int i
        end local 4 // int count
        end local 3 // android.database.Cursor c
        end local 2 // java.lang.String mode
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Landroid/content/ContentProvider;
            0   20     1       uri  Landroid/net/Uri;
            0   20     2      mode  Ljava/lang/String;
            1   20     3         c  Landroid/database/Cursor;
            4   20     4     count  I
           12   20     5         i  I
           15   20     6      path  Ljava/lang/String;
           19   20     7  modeBits  I
    Exceptions:
      throws java.io.FileNotFoundException
    MethodParameters:
      Name  Flags
      uri   
      mode  

  public java.lang.String[] getStreamTypes(android.net.Uri, java.lang.String);
    descriptor: (Landroid/net/Uri;Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String mimeTypeFilter
         0: .line 1674
            aconst_null
            areturn
        end local 2 // java.lang.String mimeTypeFilter
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Landroid/content/ContentProvider;
            0    1     1             uri  Landroid/net/Uri;
            0    1     2  mimeTypeFilter  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      uri             
      mimeTypeFilter  

  public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle);
    descriptor: (Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String mimeTypeFilter
        start local 3 // android.os.Bundle opts
         0: .line 1724
            ldc "*/*"
            aload 2 /* mimeTypeFilter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1726
            aload 0 /* this */
            aload 1 /* uri */
            ldc "r"
            invokevirtual android.content.ContentProvider.openAssetFile:(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
            areturn
         2: .line 1728
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* uri */
            invokevirtual android.content.ContentProvider.getType:(Landroid/net/Uri;)Ljava/lang/String;
            astore 4 /* baseType */
        start local 4 // java.lang.String baseType
         3: .line 1729
            aload 4 /* baseType */
            ifnull 5
            aload 4 /* baseType */
            aload 2 /* mimeTypeFilter */
            invokestatic android.content.ClipDescription.compareMimeTypes:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 5
         4: .line 1732
            aload 0 /* this */
            aload 1 /* uri */
            ldc "r"
            invokevirtual android.content.ContentProvider.openAssetFile:(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
            areturn
         5: .line 1734
      StackMap locals: java.lang.String
      StackMap stack:
            new java.io.FileNotFoundException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Can't open "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " as type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* mimeTypeFilter */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String baseType
        end local 3 // android.os.Bundle opts
        end local 2 // java.lang.String mimeTypeFilter
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Landroid/content/ContentProvider;
            0    6     1             uri  Landroid/net/Uri;
            0    6     2  mimeTypeFilter  Ljava/lang/String;
            0    6     3            opts  Landroid/os/Bundle;
            3    6     4        baseType  Ljava/lang/String;
    Exceptions:
      throws java.io.FileNotFoundException
    MethodParameters:
                Name  Flags
      uri             
      mimeTypeFilter  
      opts            

  public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle, android.os.CancellationSignal);
    descriptor: (Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String mimeTypeFilter
        start local 3 // android.os.Bundle opts
        start local 4 // android.os.CancellationSignal signal
         0: .line 1792
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* mimeTypeFilter */
            aload 3 /* opts */
            invokevirtual android.content.ContentProvider.openTypedAssetFile:(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;
            areturn
        end local 4 // android.os.CancellationSignal signal
        end local 3 // android.os.Bundle opts
        end local 2 // java.lang.String mimeTypeFilter
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Landroid/content/ContentProvider;
            0    1     1             uri  Landroid/net/Uri;
            0    1     2  mimeTypeFilter  Ljava/lang/String;
            0    1     3            opts  Landroid/os/Bundle;
            0    1     4          signal  Landroid/os/CancellationSignal;
    Exceptions:
      throws java.io.FileNotFoundException
    MethodParameters:
                Name  Flags
      uri             
      mimeTypeFilter  
      opts            
      signal          

  public <T> android.os.ParcelFileDescriptor openPipeHelper(android.net.Uri, java.lang.String, android.os.Bundle, T, android.content.ContentProvider$PipeDataWriter<T>);
    descriptor: (Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Ljava/lang/Object;Landroid/content/ContentProvider$PipeDataWriter;)Landroid/os/ParcelFileDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=8, args_size=6
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String mimeType
        start local 3 // android.os.Bundle opts
        start local 4 // java.lang.Object args
        start local 5 // android.content.ContentProvider$PipeDataWriter func
         0: .line 1838
            invokestatic android.os.ParcelFileDescriptor.createPipe:()[Landroid/os/ParcelFileDescriptor;
            astore 6 /* fds */
        start local 6 // android.os.ParcelFileDescriptor[] fds
         1: .line 1840
            new android.content.ContentProvider$1
            dup
            aload 0 /* this */
            aload 5 /* func */
            aload 6 /* fds */
            aload 1 /* uri */
            aload 2 /* mimeType */
            aload 3 /* opts */
            aload 4 /* args */
            invokespecial android.content.ContentProvider$1.<init>:(Landroid/content/ContentProvider;Landroid/content/ContentProvider$PipeDataWriter;[Landroid/os/ParcelFileDescriptor;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Ljava/lang/Object;)V
            astore 7 /* task */
        start local 7 // android.os.AsyncTask task
         2: .line 1852
            aload 7 /* task */
            getstatic android.os.AsyncTask.THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor;
            aconst_null
            invokevirtual android.os.AsyncTask.executeOnExecutor:(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/os/AsyncTask;
            pop
         3: .line 1854
            aload 6 /* fds */
            iconst_0
            aaload
         4: areturn
        end local 7 // android.os.AsyncTask task
        end local 6 // android.os.ParcelFileDescriptor[] fds
         5: .line 1855
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         6: .line 1856
            new java.io.FileNotFoundException
            dup
            ldc "failure making pipe"
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // android.content.ContentProvider$PipeDataWriter func
        end local 4 // java.lang.Object args
        end local 3 // android.os.Bundle opts
        end local 2 // java.lang.String mimeType
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/content/ContentProvider;
            0    7     1       uri  Landroid/net/Uri;
            0    7     2  mimeType  Ljava/lang/String;
            0    7     3      opts  Landroid/os/Bundle;
            0    7     4      args  TT;
            0    7     5      func  Landroid/content/ContentProvider$PipeDataWriter<TT;>;
            1    5     6       fds  [Landroid/os/ParcelFileDescriptor;
            2    5     7      task  Landroid/os/AsyncTask<Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;>;
      Exception table:
        from    to  target  type
           0     4       5  Class java.io.IOException
    Exceptions:
      throws java.io.FileNotFoundException
    Signature: <T:Ljava/lang/Object;>(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;TT;Landroid/content/ContentProvider$PipeDataWriter<TT;>;)Landroid/os/ParcelFileDescriptor;
    MethodParameters:
          Name  Flags
      uri       final
      mimeType  final
      opts      final
      args      final
      func      final

  protected boolean isTemporary();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.ContentProvider this
         0: .line 1865
            iconst_0
            ireturn
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/ContentProvider;

  public android.content.IContentProvider getIContentProvider();
    descriptor: ()Landroid/content/IContentProvider;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.ContentProvider this
         0: .line 1875
            aload 0 /* this */
            getfield android.content.ContentProvider.mTransport:Landroid/content/ContentProvider$Transport;
            areturn
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/ContentProvider;

  public void attachInfoForTesting(android.content.Context, android.content.pm.ProviderInfo);
    descriptor: (Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.content.ContentProvider this
        start local 1 // android.content.Context context
        start local 2 // android.content.pm.ProviderInfo info
         0: .line 1884
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* info */
            iconst_1
            invokevirtual android.content.ContentProvider.attachInfo:(Landroid/content/Context;Landroid/content/pm/ProviderInfo;Z)V
         1: .line 1885
            return
        end local 2 // android.content.pm.ProviderInfo info
        end local 1 // android.content.Context context
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/content/ContentProvider;
            0    2     1  context  Landroid/content/Context;
            0    2     2     info  Landroid/content/pm/ProviderInfo;
    MethodParameters:
         Name  Flags
      context  
      info     

  public void attachInfo(android.content.Context, android.content.pm.ProviderInfo);
    descriptor: (Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.content.ContentProvider this
        start local 1 // android.content.Context context
        start local 2 // android.content.pm.ProviderInfo info
         0: .line 1895
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* info */
            iconst_0
            invokevirtual android.content.ContentProvider.attachInfo:(Landroid/content/Context;Landroid/content/pm/ProviderInfo;Z)V
         1: .line 1896
            return
        end local 2 // android.content.pm.ProviderInfo info
        end local 1 // android.content.Context context
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/content/ContentProvider;
            0    2     1  context  Landroid/content/Context;
            0    2     2     info  Landroid/content/pm/ProviderInfo;
    MethodParameters:
         Name  Flags
      context  
      info     

  private void attachInfo(android.content.Context, android.content.pm.ProviderInfo, boolean);
    descriptor: (Landroid/content/Context;Landroid/content/pm/ProviderInfo;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.content.ContentProvider this
        start local 1 // android.content.Context context
        start local 2 // android.content.pm.ProviderInfo info
        start local 3 // boolean testing
         0: .line 1899
            aload 0 /* this */
            iload 3 /* testing */
            putfield android.content.ContentProvider.mNoPerms:Z
         1: .line 1905
            aload 0 /* this */
            getfield android.content.ContentProvider.mContext:Landroid/content/Context;
            ifnonnull 18
         2: .line 1906
            aload 0 /* this */
            aload 1 /* context */
            putfield android.content.ContentProvider.mContext:Landroid/content/Context;
         3: .line 1907
            aload 1 /* context */
            ifnull 7
            aload 0 /* this */
            getfield android.content.ContentProvider.mTransport:Landroid/content/ContentProvider$Transport;
            ifnull 7
         4: .line 1908
            aload 0 /* this */
            getfield android.content.ContentProvider.mTransport:Landroid/content/ContentProvider$Transport;
            aload 1 /* context */
         5: .line 1909
            ldc "appops"
         6: .line 1908
            invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast android.app.AppOpsManager
            putfield android.content.ContentProvider$Transport.mAppOpsManager:Landroid/app/AppOpsManager;
         7: .line 1911
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic android.os.Process.myUid:()I
            putfield android.content.ContentProvider.mMyUid:I
         8: .line 1912
            aload 2 /* info */
            ifnull 17
         9: .line 1913
            aload 0 /* this */
            aload 2 /* info */
            getfield android.content.pm.ProviderInfo.readPermission:Ljava/lang/String;
            invokevirtual android.content.ContentProvider.setReadPermission:(Ljava/lang/String;)V
        10: .line 1914
            aload 0 /* this */
            aload 2 /* info */
            getfield android.content.pm.ProviderInfo.writePermission:Ljava/lang/String;
            invokevirtual android.content.ContentProvider.setWritePermission:(Ljava/lang/String;)V
        11: .line 1915
            aload 0 /* this */
            aload 2 /* info */
            getfield android.content.pm.ProviderInfo.pathPermissions:[Landroid/content/pm/PathPermission;
            invokevirtual android.content.ContentProvider.setPathPermissions:([Landroid/content/pm/PathPermission;)V
        12: .line 1916
            aload 0 /* this */
            aload 2 /* info */
            getfield android.content.pm.ProviderInfo.exported:Z
            putfield android.content.ContentProvider.mExported:Z
        13: .line 1917
            aload 0 /* this */
            aload 2 /* info */
            getfield android.content.pm.ProviderInfo.flags:I
            ldc 1073741824
            iand
            ifeq 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack: android.content.ContentProvider
        14: iconst_0
      StackMap locals: android.content.ContentProvider android.content.Context android.content.pm.ProviderInfo int
      StackMap stack: android.content.ContentProvider int
        15: putfield android.content.ContentProvider.mSingleUser:Z
        16: .line 1918
            aload 0 /* this */
            aload 2 /* info */
            getfield android.content.pm.ProviderInfo.authority:Ljava/lang/String;
            invokevirtual android.content.ContentProvider.setAuthorities:(Ljava/lang/String;)V
        17: .line 1920
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.content.ContentProvider.onCreate:()Z
            pop
        18: .line 1922
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean testing
        end local 2 // android.content.pm.ProviderInfo info
        end local 1 // android.content.Context context
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Landroid/content/ContentProvider;
            0   19     1  context  Landroid/content/Context;
            0   19     2     info  Landroid/content/pm/ProviderInfo;
            0   19     3  testing  Z
    MethodParameters:
         Name  Flags
      context  
      info     
      testing  

  public android.content.ContentProviderResult[] applyBatch(java.util.ArrayList<android.content.ContentProviderOperation>);
    descriptor: (Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // java.util.ArrayList operations
         0: .line 1944
            aload 1 /* operations */
            invokevirtual java.util.ArrayList.size:()I
            istore 2 /* numOperations */
        start local 2 // int numOperations
         1: .line 1945
            iload 2 /* numOperations */
            anewarray android.content.ContentProviderResult
            astore 3 /* results */
        start local 3 // android.content.ContentProviderResult[] results
         2: .line 1946
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 1947
      StackMap locals: int android.content.ContentProviderResult[] int
      StackMap stack:
            aload 3 /* results */
            iload 4 /* i */
            aload 1 /* operations */
            iload 4 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.content.ContentProviderOperation
            aload 0 /* this */
            aload 3 /* results */
            iload 4 /* i */
            invokevirtual android.content.ContentProviderOperation.apply:(Landroid/content/ContentProvider;[Landroid/content/ContentProviderResult;I)Landroid/content/ContentProviderResult;
            aastore
         5: .line 1946
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            iload 2 /* numOperations */
            if_icmplt 4
        end local 4 // int i
         7: .line 1949
            aload 3 /* results */
            areturn
        end local 3 // android.content.ContentProviderResult[] results
        end local 2 // int numOperations
        end local 1 // java.util.ArrayList operations
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Landroid/content/ContentProvider;
            0    8     1     operations  Ljava/util/ArrayList<Landroid/content/ContentProviderOperation;>;
            1    8     2  numOperations  I
            2    8     3        results  [Landroid/content/ContentProviderResult;
            3    7     4              i  I
    Exceptions:
      throws android.content.OperationApplicationException
    Signature: (Ljava/util/ArrayList<Landroid/content/ContentProviderOperation;>;)[Landroid/content/ContentProviderResult;
    MethodParameters:
            Name  Flags
      operations  

  public android.os.Bundle call(java.lang.String, java.lang.String, android.os.Bundle);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // android.content.ContentProvider this
        start local 1 // java.lang.String method
        start local 2 // java.lang.String arg
        start local 3 // android.os.Bundle extras
         0: .line 1972
            aconst_null
            areturn
        end local 3 // android.os.Bundle extras
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String method
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/content/ContentProvider;
            0    1     1  method  Ljava/lang/String;
            0    1     2     arg  Ljava/lang/String;
            0    1     3  extras  Landroid/os/Bundle;
    MethodParameters:
        Name  Flags
      method  
      arg     
      extras  

  public void shutdown();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.content.ContentProvider this
         0: .line 1998
            ldc "ContentProvider"
            ldc "implement ContentProvider shutdown() to make sure all database connections are gracefully shutdown"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 2000
            return
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/content/ContentProvider;

  public void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
    descriptor: (Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // android.content.ContentProvider this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // java.io.PrintWriter writer
        start local 3 // java.lang.String[] args
         0: .line 2012
            aload 2 /* writer */
            ldc "nothing to dump"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 2013
            return
        end local 3 // java.lang.String[] args
        end local 2 // java.io.PrintWriter writer
        end local 1 // java.io.FileDescriptor fd
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/content/ContentProvider;
            0    2     1      fd  Ljava/io/FileDescriptor;
            0    2     2  writer  Ljava/io/PrintWriter;
            0    2     3    args  [Ljava/lang/String;
    MethodParameters:
        Name  Flags
      fd      
      writer  
      args    

  public android.net.Uri validateIncomingUri(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Landroid/net/Uri;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
         0: .line 2017
            aload 1 /* uri */
            invokevirtual android.net.Uri.getAuthority:()Ljava/lang/String;
            astore 2 /* auth */
        start local 2 // java.lang.String auth
         1: .line 2018
            aload 0 /* this */
            getfield android.content.ContentProvider.mSingleUser:Z
            ifne 7
         2: .line 2019
            aload 2 /* auth */
            bipush -2
            invokestatic android.content.ContentProvider.getUserIdFromAuthority:(Ljava/lang/String;I)I
            istore 3 /* userId */
        start local 3 // int userId
         3: .line 2020
            iload 3 /* userId */
            bipush -2
            if_icmpeq 7
            iload 3 /* userId */
            aload 0 /* this */
            getfield android.content.ContentProvider.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getUserId:()I
            if_icmpeq 7
         4: .line 2021
            new java.lang.SecurityException
            dup
            new java.lang.StringBuilder
            dup
            ldc "trying to query a ContentProvider in user "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 2022
            aload 0 /* this */
            getfield android.content.ContentProvider.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getUserId:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " with a uri belonging to user "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* userId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 2021
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int userId
         7: .line 2025
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* auth */
            invokestatic android.content.ContentProvider.getAuthorityWithoutUserId:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual android.content.ContentProvider.matchesOurAuthorities:(Ljava/lang/String;)Z
            ifne 16
         8: .line 2026
            new java.lang.StringBuilder
            dup
            ldc "The authority of the uri "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not match the one of the "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 2027
            ldc "contentProvider: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 2026
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* message */
        start local 3 // java.lang.String message
        11: .line 2028
            aload 0 /* this */
            getfield android.content.ContentProvider.mAuthority:Ljava/lang/String;
            ifnull 14
        12: .line 2029
            new java.lang.StringBuilder
            dup
            aload 3 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.content.ContentProvider.mAuthority:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* message */
        13: .line 2030
            goto 15
        14: .line 2031
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 3 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.content.ContentProvider.mAuthorities:[Ljava/lang/String;
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* message */
        15: .line 2033
      StackMap locals:
      StackMap stack:
            new java.lang.SecurityException
            dup
            aload 3 /* message */
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String message
        16: .line 2038
      StackMap locals:
      StackMap stack:
            aload 1 /* uri */
            invokevirtual android.net.Uri.getEncodedPath:()Ljava/lang/String;
            astore 3 /* encodedPath */
        start local 3 // java.lang.String encodedPath
        17: .line 2039
            aload 3 /* encodedPath */
            ifnull 25
            aload 3 /* encodedPath */
            ldc "//"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpeq 25
        18: .line 2040
            aload 1 /* uri */
            invokevirtual android.net.Uri.buildUpon:()Landroid/net/Uri$Builder;
        19: .line 2041
            aload 3 /* encodedPath */
            ldc "//+"
            ldc "/"
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual android.net.Uri$Builder.encodedPath:(Ljava/lang/String;)Landroid/net/Uri$Builder;
            invokevirtual android.net.Uri$Builder.build:()Landroid/net/Uri;
        20: .line 2040
            astore 4 /* normalized */
        start local 4 // android.net.Uri normalized
        21: .line 2042
            ldc "ContentProvider"
            new java.lang.StringBuilder
            dup
            ldc "Normalized "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* normalized */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        22: .line 2043
            ldc " to avoid possible security issues"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 2042
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        24: .line 2044
            aload 4 /* normalized */
            areturn
        end local 4 // android.net.Uri normalized
        25: .line 2046
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* uri */
            areturn
        end local 3 // java.lang.String encodedPath
        end local 2 // java.lang.String auth
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0         this  Landroid/content/ContentProvider;
            0   26     1          uri  Landroid/net/Uri;
            1   26     2         auth  Ljava/lang/String;
            3    7     3       userId  I
           11   16     3      message  Ljava/lang/String;
           17   26     3  encodedPath  Ljava/lang/String;
           21   25     4   normalized  Landroid/net/Uri;
    Exceptions:
      throws java.lang.SecurityException
    MethodParameters:
      Name  Flags
      uri   

  private android.net.Uri maybeGetUriWithoutUserId(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Landroid/net/Uri;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.content.ContentProvider this
        start local 1 // android.net.Uri uri
         0: .line 2052
            aload 0 /* this */
            getfield android.content.ContentProvider.mSingleUser:Z
            ifeq 2
         1: .line 2053
            aload 1 /* uri */
            areturn
         2: .line 2055
      StackMap locals:
      StackMap stack:
            aload 1 /* uri */
            invokestatic android.content.ContentProvider.getUriWithoutUserId:(Landroid/net/Uri;)Landroid/net/Uri;
            areturn
        end local 1 // android.net.Uri uri
        end local 0 // android.content.ContentProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/content/ContentProvider;
            0    3     1   uri  Landroid/net/Uri;
    MethodParameters:
      Name  Flags
      uri   

  public static int getUserIdFromAuthority(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.String auth
        start local 1 // int defaultUserId
         0: .line 2060
            aload 0 /* auth */
            ifnonnull 1
            iload 1 /* defaultUserId */
            ireturn
         1: .line 2061
      StackMap locals:
      StackMap stack:
            aload 0 /* auth */
            bipush 64
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* end */
        start local 2 // int end
         2: .line 2062
            iload 2 /* end */
            iconst_m1
            if_icmpne 3
            iload 1 /* defaultUserId */
            ireturn
         3: .line 2063
      StackMap locals: int
      StackMap stack:
            aload 0 /* auth */
            iconst_0
            iload 2 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* userIdString */
        start local 3 // java.lang.String userIdString
         4: .line 2065
            aload 3 /* userIdString */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
         5: ireturn
         6: .line 2066
      StackMap locals: java.lang.String int int java.lang.String
      StackMap stack: java.lang.NumberFormatException
            astore 4 /* e */
        start local 4 // java.lang.NumberFormatException e
         7: .line 2067
            ldc "ContentProvider"
            ldc "Error parsing userId."
            aload 4 /* e */
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         8: .line 2068
            sipush -10000
            ireturn
        end local 4 // java.lang.NumberFormatException e
        end local 3 // java.lang.String userIdString
        end local 2 // int end
        end local 1 // int defaultUserId
        end local 0 // java.lang.String auth
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           auth  Ljava/lang/String;
            0    9     1  defaultUserId  I
            2    9     2            end  I
            4    9     3   userIdString  Ljava/lang/String;
            7    9     4              e  Ljava/lang/NumberFormatException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.NumberFormatException
    MethodParameters:
               Name  Flags
      auth           
      defaultUserId  

  public static int getUserIdFromAuthority(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String auth
         0: .line 2074
            aload 0 /* auth */
            bipush -2
            invokestatic android.content.ContentProvider.getUserIdFromAuthority:(Ljava/lang/String;I)I
            ireturn
        end local 0 // java.lang.String auth
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  auth  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      auth  

  public static int getUserIdFromUri(android.net.Uri, int);
    descriptor: (Landroid/net/Uri;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.net.Uri uri
        start local 1 // int defaultUserId
         0: .line 2079
            aload 0 /* uri */
            ifnonnull 1
            iload 1 /* defaultUserId */
            ireturn
         1: .line 2080
      StackMap locals:
      StackMap stack:
            aload 0 /* uri */
            invokevirtual android.net.Uri.getAuthority:()Ljava/lang/String;
            iload 1 /* defaultUserId */
            invokestatic android.content.ContentProvider.getUserIdFromAuthority:(Ljava/lang/String;I)I
            ireturn
        end local 1 // int defaultUserId
        end local 0 // android.net.Uri uri
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0            uri  Landroid/net/Uri;
            0    2     1  defaultUserId  I
    MethodParameters:
               Name  Flags
      uri            
      defaultUserId  

  public static int getUserIdFromUri(android.net.Uri);
    descriptor: (Landroid/net/Uri;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.net.Uri uri
         0: .line 2085
            aload 0 /* uri */
            bipush -2
            invokestatic android.content.ContentProvider.getUserIdFromUri:(Landroid/net/Uri;I)I
            ireturn
        end local 0 // android.net.Uri uri
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   uri  Landroid/net/Uri;
    MethodParameters:
      Name  Flags
      uri   

  public static java.lang.String getAuthorityWithoutUserId(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String auth
         0: .line 2095
            aload 0 /* auth */
            ifnonnull 1
            aconst_null
            areturn
         1: .line 2096
      StackMap locals:
      StackMap stack:
            aload 0 /* auth */
            bipush 64
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* end */
        start local 1 // int end
         2: .line 2097
            aload 0 /* auth */
            iload 1 /* end */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 1 // int end
        end local 0 // java.lang.String auth
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  auth  Ljava/lang/String;
            2    3     1   end  I
    MethodParameters:
      Name  Flags
      auth  

  public static android.net.Uri getUriWithoutUserId(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Landroid/net/Uri;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.net.Uri uri
         0: .line 2102
            aload 0 /* uri */
            ifnonnull 1
            aconst_null
            areturn
         1: .line 2103
      StackMap locals:
      StackMap stack:
            aload 0 /* uri */
            invokevirtual android.net.Uri.buildUpon:()Landroid/net/Uri$Builder;
            astore 1 /* builder */
        start local 1 // android.net.Uri$Builder builder
         2: .line 2104
            aload 1 /* builder */
            aload 0 /* uri */
            invokevirtual android.net.Uri.getAuthority:()Ljava/lang/String;
            invokestatic android.content.ContentProvider.getAuthorityWithoutUserId:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual android.net.Uri$Builder.authority:(Ljava/lang/String;)Landroid/net/Uri$Builder;
            pop
         3: .line 2105
            aload 1 /* builder */
            invokevirtual android.net.Uri$Builder.build:()Landroid/net/Uri;
            areturn
        end local 1 // android.net.Uri$Builder builder
        end local 0 // android.net.Uri uri
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0      uri  Landroid/net/Uri;
            2    4     1  builder  Landroid/net/Uri$Builder;
    MethodParameters:
      Name  Flags
      uri   

  public static boolean uriHasUserId(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.net.Uri uri
         0: .line 2110
            aload 0 /* uri */
            ifnonnull 1
            iconst_0
            ireturn
         1: .line 2111
      StackMap locals:
      StackMap stack:
            aload 0 /* uri */
            invokevirtual android.net.Uri.getUserInfo:()Ljava/lang/String;
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 0 // android.net.Uri uri
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   uri  Landroid/net/Uri;
    MethodParameters:
      Name  Flags
      uri   

  public static android.net.Uri maybeAddUserId(android.net.Uri, int);
    descriptor: (Landroid/net/Uri;I)Landroid/net/Uri;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.net.Uri uri
        start local 1 // int userId
         0: .line 2116
            aload 0 /* uri */
            ifnonnull 1
            aconst_null
            areturn
         1: .line 2117
      StackMap locals:
      StackMap stack:
            iload 1 /* userId */
            bipush -2
            if_icmpeq 7
         2: .line 2118
            ldc "content"
            aload 0 /* uri */
            invokevirtual android.net.Uri.getScheme:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         3: .line 2119
            aload 0 /* uri */
            invokestatic android.content.ContentProvider.uriHasUserId:(Landroid/net/Uri;)Z
            ifne 7
         4: .line 2121
            aload 0 /* uri */
            invokevirtual android.net.Uri.buildUpon:()Landroid/net/Uri$Builder;
            astore 2 /* builder */
        start local 2 // android.net.Uri$Builder builder
         5: .line 2122
            aload 2 /* builder */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            iload 1 /* userId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "@"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* uri */
            invokevirtual android.net.Uri.getEncodedAuthority:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual android.net.Uri$Builder.encodedAuthority:(Ljava/lang/String;)Landroid/net/Uri$Builder;
            pop
         6: .line 2123
            aload 2 /* builder */
            invokevirtual android.net.Uri$Builder.build:()Landroid/net/Uri;
            areturn
        end local 2 // android.net.Uri$Builder builder
         7: .line 2126
      StackMap locals:
      StackMap stack:
            aload 0 /* uri */
            areturn
        end local 1 // int userId
        end local 0 // android.net.Uri uri
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0      uri  Landroid/net/Uri;
            0    8     1   userId  I
            5    7     2  builder  Landroid/net/Uri$Builder;
    MethodParameters:
        Name  Flags
      uri     
      userId  
}
SourceFile: "ContentProvider.java"
NestMembers:
  android.content.ContentProvider$1  android.content.ContentProvider$PipeDataWriter  android.content.ContentProvider$Transport
InnerClasses:
  android.content.ContentProvider$1
  public abstract PipeDataWriter = android.content.ContentProvider$PipeDataWriter of android.content.ContentProvider
  Transport = android.content.ContentProvider$Transport of android.content.ContentProvider
  public final Builder = android.net.Uri$Builder of android.net.Uri