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

  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

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

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

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

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

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

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

  android.os.Handler mHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0000) 

  private final android.os.IBinder mBinder;
    descriptor: Landroid/os/IBinder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  android.os.Handler getHandler();
    descriptor: ()Landroid/os/Handler;
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.app.backup.BackupAgent this
         0: .line 180
            aload 0 /* this */
            getfield android.app.backup.BackupAgent.mHandler:Landroid/os/Handler;
            ifnonnull 2
         1: .line 181
            aload 0 /* this */
            new android.os.Handler
            dup
            invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
            invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
            putfield android.app.backup.BackupAgent.mHandler:Landroid/os/Handler;
         2: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.backup.BackupAgent.mHandler:Landroid/os/Handler;
            areturn
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/app/backup/BackupAgent;

  private void waitForSharedPrefs();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.app.backup.BackupAgent this
         0: .line 198
            aload 0 /* this */
            invokevirtual android.app.backup.BackupAgent.getHandler:()Landroid/os/Handler;
            astore 1 /* h */
        start local 1 // android.os.Handler h
         1: .line 199
            new android.app.backup.BackupAgent$SharedPrefsSynchronizer
            dup
            aload 0 /* this */
            invokespecial android.app.backup.BackupAgent$SharedPrefsSynchronizer.<init>:(Landroid/app/backup/BackupAgent;)V
            astore 2 /* s */
        start local 2 // android.app.backup.BackupAgent$SharedPrefsSynchronizer s
         2: .line 200
            aload 1 /* h */
            aload 2 /* s */
            invokevirtual android.os.Handler.postAtFrontOfQueue:(Ljava/lang/Runnable;)Z
            pop
         3: .line 202
            aload 2 /* s */
            getfield android.app.backup.BackupAgent$SharedPrefsSynchronizer.mLatch:Ljava/util/concurrent/CountDownLatch;
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
         4: .line 203
            goto 6
      StackMap locals: android.app.backup.BackupAgent android.os.Handler android.app.backup.BackupAgent$SharedPrefsSynchronizer
      StackMap stack: java.lang.InterruptedException
         5: pop
         6: .line 204
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.app.backup.BackupAgent$SharedPrefsSynchronizer s
        end local 1 // android.os.Handler h
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/app/backup/BackupAgent;
            1    7     1     h  Landroid/os/Handler;
            2    7     2     s  Landroid/app/backup/BackupAgent$SharedPrefsSynchronizer;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.InterruptedException

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.app.backup.BackupAgent this
         0: .line 208
            aload 0 /* this */
            aconst_null
            invokespecial android.content.ContextWrapper.<init>:(Landroid/content/Context;)V
         1: .line 177
            aload 0 /* this */
            aconst_null
            putfield android.app.backup.BackupAgent.mHandler:Landroid/os/Handler;
         2: .line 960
            aload 0 /* this */
            new android.app.backup.BackupAgent$BackupServiceBinder
            dup
            aload 0 /* this */
            invokespecial android.app.backup.BackupAgent$BackupServiceBinder.<init>:(Landroid/app/backup/BackupAgent;)V
            invokevirtual android.app.backup.BackupAgent$BackupServiceBinder.asBinder:()Landroid/os/IBinder;
            putfield android.app.backup.BackupAgent.mBinder:Landroid/os/IBinder;
         3: .line 209
            return
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/app/backup/BackupAgent;

  public void onCreate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.app.backup.BackupAgent this
         0: .line 218
            return
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/backup/BackupAgent;

  public void onDestroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.app.backup.BackupAgent this
         0: .line 227
            return
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/backup/BackupAgent;

  public abstract void onBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor);
    descriptor: (Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      oldState  
      data      
      newState  

  public abstract void onRestore(android.app.backup.BackupDataInput, int, android.os.ParcelFileDescriptor);
    descriptor: (Landroid/app/backup/BackupDataInput;ILandroid/os/ParcelFileDescriptor;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      data            
      appVersionCode  
      newState        

  public void onRestore(android.app.backup.BackupDataInput, long, android.os.ParcelFileDescriptor);
    descriptor: (Landroid/app/backup/BackupDataInput;JLandroid/os/ParcelFileDescriptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // android.app.backup.BackupAgent this
        start local 1 // android.app.backup.BackupDataInput data
        start local 2 // long appVersionCode
        start local 4 // android.os.ParcelFileDescriptor newState
         0: .line 304
            aload 0 /* this */
            aload 1 /* data */
            lload 2 /* appVersionCode */
            l2i
            aload 4 /* newState */
            invokevirtual android.app.backup.BackupAgent.onRestore:(Landroid/app/backup/BackupDataInput;ILandroid/os/ParcelFileDescriptor;)V
         1: .line 305
            return
        end local 4 // android.os.ParcelFileDescriptor newState
        end local 2 // long appVersionCode
        end local 1 // android.app.backup.BackupDataInput data
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Landroid/app/backup/BackupAgent;
            0    2     1            data  Landroid/app/backup/BackupDataInput;
            0    2     2  appVersionCode  J
            0    2     4        newState  Landroid/os/ParcelFileDescriptor;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      data            
      appVersionCode  
      newState        

  public void onFullBackup(android.app.backup.FullBackupDataOutput);
    descriptor: (Landroid/app/backup/FullBackupDataOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.app.backup.BackupAgent this
         0: .line 351
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe method maybeParseAndGetCanonicalIncludePaths() from the type FullBackup.BackupScheme refers to the missing type XmlPullParserException\n\tThe method maybeParseAndGetCanonicalExcludePaths() from the type FullBackup.BackupScheme refers to the missing type XmlPullParserException\n\tNo exception of type Object can be thrown; an exception type must be a subclass of Throwable\n\tXmlPullParserException cannot be resolved to a type\n\tThe method v(String, String, Throwable) in the type Log is not applicable for the arguments (String, String, Object)\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/backup/BackupAgent;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  

  public void onQuotaExceeded(long, long);
    descriptor: (JJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=5, args_size=3
        start local 0 // android.app.backup.BackupAgent this
        start local 1 // long backupDataBytes
        start local 3 // long quotaBytes
         0: .line 513
            return
        end local 3 // long quotaBytes
        end local 1 // long backupDataBytes
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Landroid/app/backup/BackupAgent;
            0    1     1  backupDataBytes  J
            0    1     3       quotaBytes  J
    MethodParameters:
                 Name  Flags
      backupDataBytes  
      quotaBytes       

  private void applyXmlFiltersAndDoFullBackupForDomain(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.util.Set<android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags>>, android.util.ArraySet<android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags>, android.util.ArraySet<java.lang.String>, android.app.backup.FullBackupDataOutput);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Landroid/util/ArraySet;Landroid/util/ArraySet;Landroid/app/backup/FullBackupDataOutput;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=7
        start local 0 // android.app.backup.BackupAgent this
        start local 1 // java.lang.String packageName
        start local 2 // java.lang.String domainToken
        start local 3 // java.util.Map includeMap
        start local 4 // android.util.ArraySet filterSet
        start local 5 // android.util.ArraySet traversalExcludeSet
        start local 6 // android.app.backup.FullBackupDataOutput data
         0: .line 525
            aload 3 /* includeMap */
            ifnull 1
            aload 3 /* includeMap */
            invokeinterface java.util.Map.size:()I
            ifne 6
         1: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* packageName */
            aload 2 /* domainToken */
         2: .line 528
            aload 0 /* this */
            invokestatic android.app.backup.FullBackup.getBackupScheme:(Landroid/content/Context;)Landroid/app/backup/FullBackup$BackupScheme;
            aload 2 /* domainToken */
            invokevirtual android.app.backup.FullBackup$BackupScheme.tokenToDirectoryPath:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 529
            aload 4 /* filterSet */
            aload 5 /* traversalExcludeSet */
            aload 6 /* data */
         4: .line 527
            invokevirtual android.app.backup.BackupAgent.fullBackupFileTree:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArraySet;Landroid/util/ArraySet;Landroid/app/backup/FullBackupDataOutput;)V
         5: .line 530
            goto 17
      StackMap locals:
      StackMap stack:
         6: aload 3 /* includeMap */
            aload 2 /* domainToken */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 17
         7: .line 533
            aload 3 /* includeMap */
            aload 2 /* domainToken */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 16
      StackMap locals: android.app.backup.BackupAgent java.lang.String java.lang.String java.util.Map android.util.ArraySet android.util.ArraySet android.app.backup.FullBackupDataOutput top java.util.Iterator
      StackMap stack:
         8: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags
            astore 7 /* includeFile */
        start local 7 // android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags includeFile
         9: .line 534
            aload 0 /* this */
            aload 7 /* includeFile */
            invokevirtual android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags.getRequiredFlags:()I
        10: .line 535
            aload 6 /* data */
            invokevirtual android.app.backup.FullBackupDataOutput.getTransportFlags:()I
        11: .line 534
            invokevirtual android.app.backup.BackupAgent.areIncludeRequiredTransportFlagsSatisfied:(II)Z
        12: .line 535
            ifeq 16
        13: .line 536
            aload 0 /* this */
            aload 1 /* packageName */
            aload 2 /* domainToken */
            aload 7 /* includeFile */
            invokevirtual android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags.getPath:()Ljava/lang/String;
            aload 4 /* filterSet */
        14: .line 537
            aload 5 /* traversalExcludeSet */
            aload 6 /* data */
        15: .line 536
            invokevirtual android.app.backup.BackupAgent.fullBackupFileTree:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArraySet;Landroid/util/ArraySet;Landroid/app/backup/FullBackupDataOutput;)V
        end local 7 // android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags includeFile
        16: .line 533
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        17: .line 541
      StackMap locals: android.app.backup.BackupAgent java.lang.String java.lang.String java.util.Map android.util.ArraySet android.util.ArraySet android.app.backup.FullBackupDataOutput
      StackMap stack:
            return
        end local 6 // android.app.backup.FullBackupDataOutput data
        end local 5 // android.util.ArraySet traversalExcludeSet
        end local 4 // android.util.ArraySet filterSet
        end local 3 // java.util.Map includeMap
        end local 2 // java.lang.String domainToken
        end local 1 // java.lang.String packageName
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   18     0                 this  Landroid/app/backup/BackupAgent;
            0   18     1          packageName  Ljava/lang/String;
            0   18     2          domainToken  Ljava/lang/String;
            0   18     3           includeMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;>;>;
            0   18     4            filterSet  Landroid/util/ArraySet<Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;>;
            0   18     5  traversalExcludeSet  Landroid/util/ArraySet<Ljava/lang/String;>;
            0   18     6                 data  Landroid/app/backup/FullBackupDataOutput;
            9   16     7          includeFile  Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;>;>;Landroid/util/ArraySet<Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;>;Landroid/util/ArraySet<Ljava/lang/String;>;Landroid/app/backup/FullBackupDataOutput;)V
    MethodParameters:
                     Name  Flags
      packageName          
      domainToken          
      includeMap           
      filterSet            
      traversalExcludeSet  
      data                 

  private boolean areIncludeRequiredTransportFlagsSatisfied(int, int);
    descriptor: (II)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.app.backup.BackupAgent this
        start local 1 // int includeFlags
        start local 2 // int transportFlags
         0: .line 546
            iload 2 /* transportFlags */
            iload 1 /* includeFlags */
            iand
            iload 1 /* includeFlags */
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // int transportFlags
        end local 1 // int includeFlags
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Landroid/app/backup/BackupAgent;
            0    2     1    includeFlags  I
            0    2     2  transportFlags  I
    MethodParameters:
                Name  Flags
      includeFlags    
      transportFlags  

  public final void fullBackupFile(java.io.File, android.app.backup.FullBackupDataOutput);
    descriptor: (Ljava/io/File;Landroid/app/backup/FullBackupDataOutput;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=24, args_size=3
        start local 0 // android.app.backup.BackupAgent this
        start local 1 // java.io.File file
        start local 2 // android.app.backup.FullBackupDataOutput output
         0: .line 583
            aconst_null
            astore 18 /* efDir */
        start local 18 // java.lang.String efDir
         1: .line 586
            aload 0 /* this */
            invokevirtual android.app.backup.BackupAgent.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
            astore 20 /* appInfo */
        start local 20 // android.content.pm.ApplicationInfo appInfo
         2: .line 591
            aload 0 /* this */
            invokevirtual android.app.backup.BackupAgent.createCredentialProtectedStorageContext:()Landroid/content/Context;
            astore 21 /* ceContext */
        start local 21 // android.content.Context ceContext
         3: .line 592
            aload 21 /* ceContext */
            invokevirtual android.content.Context.getDataDir:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 3 /* rootDir */
        start local 3 // java.lang.String rootDir
         4: .line 593
            aload 21 /* ceContext */
            invokevirtual android.content.Context.getFilesDir:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 4 /* filesDir */
        start local 4 // java.lang.String filesDir
         5: .line 594
            aload 21 /* ceContext */
            invokevirtual android.content.Context.getNoBackupFilesDir:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 5 /* nbFilesDir */
        start local 5 // java.lang.String nbFilesDir
         6: .line 595
            aload 21 /* ceContext */
            ldc "foo"
            invokevirtual android.content.Context.getDatabasePath:(Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 6 /* dbDir */
        start local 6 // java.lang.String dbDir
         7: .line 596
            aload 21 /* ceContext */
            ldc "foo"
            invokevirtual android.content.Context.getSharedPreferencesPath:(Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 7 /* spDir */
        start local 7 // java.lang.String spDir
         8: .line 597
            aload 21 /* ceContext */
            invokevirtual android.content.Context.getCacheDir:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 8 /* cacheDir */
        start local 8 // java.lang.String cacheDir
         9: .line 598
            aload 21 /* ceContext */
            invokevirtual android.content.Context.getCodeCacheDir:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 9 /* codeCacheDir */
        start local 9 // java.lang.String codeCacheDir
        10: .line 600
            aload 0 /* this */
            invokevirtual android.app.backup.BackupAgent.createDeviceProtectedStorageContext:()Landroid/content/Context;
            astore 22 /* deContext */
        start local 22 // android.content.Context deContext
        11: .line 601
            aload 22 /* deContext */
            invokevirtual android.content.Context.getDataDir:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 10 /* deviceRootDir */
        start local 10 // java.lang.String deviceRootDir
        12: .line 602
            aload 22 /* deContext */
            invokevirtual android.content.Context.getFilesDir:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 11 /* deviceFilesDir */
        start local 11 // java.lang.String deviceFilesDir
        13: .line 603
            aload 22 /* deContext */
            invokevirtual android.content.Context.getNoBackupFilesDir:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 12 /* deviceNbFilesDir */
        start local 12 // java.lang.String deviceNbFilesDir
        14: .line 604
            aload 22 /* deContext */
            ldc "foo"
            invokevirtual android.content.Context.getDatabasePath:(Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 13 /* deviceDbDir */
        start local 13 // java.lang.String deviceDbDir
        15: .line 605
            aload 22 /* deContext */
            ldc "foo"
            invokevirtual android.content.Context.getSharedPreferencesPath:(Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
        16: .line 606
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
        17: .line 605
            astore 14 /* deviceSpDir */
        start local 14 // java.lang.String deviceSpDir
        18: .line 607
            aload 22 /* deContext */
            invokevirtual android.content.Context.getCacheDir:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 15 /* deviceCacheDir */
        start local 15 // java.lang.String deviceCacheDir
        19: .line 608
            aload 22 /* deContext */
            invokevirtual android.content.Context.getCodeCacheDir:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 16 /* deviceCodeCacheDir */
        start local 16 // java.lang.String deviceCodeCacheDir
        20: .line 610
            aload 20 /* appInfo */
            getfield android.content.pm.ApplicationInfo.nativeLibraryDir:Ljava/lang/String;
            ifnonnull 22
        21: .line 611
            aconst_null
            goto 23
        22: .line 612
      StackMap locals: android.app.backup.BackupAgent java.io.File android.app.backup.FullBackupDataOutput java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String top java.lang.String top android.content.pm.ApplicationInfo android.content.Context android.content.Context
      StackMap stack:
            new java.io.File
            dup
            aload 20 /* appInfo */
            getfield android.content.pm.ApplicationInfo.nativeLibraryDir:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
        23: .line 610
      StackMap locals:
      StackMap stack: java.lang.String
            astore 17 /* libDir */
        start local 17 // java.lang.String libDir
        24: .line 615
            invokestatic android.os.Process.myUid:()I
            sipush 1000
            if_icmpeq 28
        25: .line 616
            aload 0 /* this */
            aconst_null
            invokevirtual android.app.backup.BackupAgent.getExternalFilesDir:(Ljava/lang/String;)Ljava/io/File;
            astore 23 /* efLocation */
        start local 23 // java.io.File efLocation
        26: .line 617
            aload 23 /* efLocation */
            ifnull 28
        27: .line 618
            aload 23 /* efLocation */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 18 /* efDir */
        end local 23 // java.io.File efLocation
        28: .line 625
      StackMap locals: android.app.backup.BackupAgent java.io.File android.app.backup.FullBackupDataOutput java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String top android.content.pm.ApplicationInfo android.content.Context android.content.Context
      StackMap stack:
            aload 1 /* file */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 19 /* filePath */
        end local 22 // android.content.Context deContext
        end local 21 // android.content.Context ceContext
        start local 19 // java.lang.String filePath
        29: .line 626
            goto 33
        end local 19 // java.lang.String filePath
        end local 17 // java.lang.String libDir
        end local 16 // java.lang.String deviceCodeCacheDir
        end local 15 // java.lang.String deviceCacheDir
        end local 14 // java.lang.String deviceSpDir
        end local 13 // java.lang.String deviceDbDir
        end local 12 // java.lang.String deviceNbFilesDir
        end local 11 // java.lang.String deviceFilesDir
        end local 10 // java.lang.String deviceRootDir
        end local 9 // java.lang.String codeCacheDir
        end local 8 // java.lang.String cacheDir
        end local 7 // java.lang.String spDir
        end local 6 // java.lang.String dbDir
        end local 5 // java.lang.String nbFilesDir
        end local 4 // java.lang.String filesDir
        end local 3 // java.lang.String rootDir
      StackMap locals: android.app.backup.BackupAgent java.io.File android.app.backup.FullBackupDataOutput top top top top top top top top top top top top top top top java.lang.String top android.content.pm.ApplicationInfo
      StackMap stack: java.io.IOException
        30: pop
        31: .line 627
            ldc "BackupAgent"
            ldc "Unable to obtain canonical paths"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        32: .line 628
            return
        start local 3 // java.lang.String rootDir
        start local 4 // java.lang.String filesDir
        start local 5 // java.lang.String nbFilesDir
        start local 6 // java.lang.String dbDir
        start local 7 // java.lang.String spDir
        start local 8 // java.lang.String cacheDir
        start local 9 // java.lang.String codeCacheDir
        start local 10 // java.lang.String deviceRootDir
        start local 11 // java.lang.String deviceFilesDir
        start local 12 // java.lang.String deviceNbFilesDir
        start local 13 // java.lang.String deviceDbDir
        start local 14 // java.lang.String deviceSpDir
        start local 15 // java.lang.String deviceCacheDir
        start local 16 // java.lang.String deviceCodeCacheDir
        start local 17 // java.lang.String libDir
        start local 19 // java.lang.String filePath
        33: .line 631
      StackMap locals: android.app.backup.BackupAgent java.io.File android.app.backup.FullBackupDataOutput java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String android.content.pm.ApplicationInfo
      StackMap stack:
            aload 19 /* filePath */
            aload 8 /* cacheDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 40
        34: .line 632
            aload 19 /* filePath */
            aload 9 /* codeCacheDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 40
        35: .line 633
            aload 19 /* filePath */
            aload 5 /* nbFilesDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 40
        36: .line 634
            aload 19 /* filePath */
            aload 15 /* deviceCacheDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 40
        37: .line 635
            aload 19 /* filePath */
            aload 16 /* deviceCodeCacheDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 40
        38: .line 636
            aload 19 /* filePath */
            aload 12 /* deviceNbFilesDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 40
        39: .line 637
            aload 19 /* filePath */
            aload 17 /* libDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 42
        40: .line 638
      StackMap locals:
      StackMap stack:
            ldc "BackupAgent"
            ldc "lib, cache, code_cache, and no_backup files are not backed up"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        41: .line 639
            return
        42: .line 643
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 22 /* rootpath */
        start local 22 // java.lang.String rootpath
        43: .line 644
            aload 19 /* filePath */
            aload 6 /* dbDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 47
        44: .line 645
            ldc "db"
            astore 21 /* domain */
        start local 21 // java.lang.String domain
        45: .line 646
            aload 6 /* dbDir */
            astore 22 /* rootpath */
        46: .line 647
            goto 81
        end local 21 // java.lang.String domain
      StackMap locals: android.app.backup.BackupAgent java.io.File android.app.backup.FullBackupDataOutput java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String android.content.pm.ApplicationInfo top java.lang.String
      StackMap stack:
        47: aload 19 /* filePath */
            aload 7 /* spDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 51
        48: .line 648
            ldc "sp"
            astore 21 /* domain */
        start local 21 // java.lang.String domain
        49: .line 649
            aload 7 /* spDir */
            astore 22 /* rootpath */
        50: .line 650
            goto 81
        end local 21 // java.lang.String domain
      StackMap locals:
      StackMap stack:
        51: aload 19 /* filePath */
            aload 4 /* filesDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 55
        52: .line 651
            ldc "f"
            astore 21 /* domain */
        start local 21 // java.lang.String domain
        53: .line 652
            aload 4 /* filesDir */
            astore 22 /* rootpath */
        54: .line 653
            goto 81
        end local 21 // java.lang.String domain
      StackMap locals:
      StackMap stack:
        55: aload 19 /* filePath */
            aload 3 /* rootDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 59
        56: .line 654
            ldc "r"
            astore 21 /* domain */
        start local 21 // java.lang.String domain
        57: .line 655
            aload 3 /* rootDir */
            astore 22 /* rootpath */
        58: .line 656
            goto 81
        end local 21 // java.lang.String domain
      StackMap locals:
      StackMap stack:
        59: aload 19 /* filePath */
            aload 13 /* deviceDbDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 63
        60: .line 657
            ldc "d_db"
            astore 21 /* domain */
        start local 21 // java.lang.String domain
        61: .line 658
            aload 13 /* deviceDbDir */
            astore 22 /* rootpath */
        62: .line 659
            goto 81
        end local 21 // java.lang.String domain
      StackMap locals:
      StackMap stack:
        63: aload 19 /* filePath */
            aload 14 /* deviceSpDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 67
        64: .line 660
            ldc "d_sp"
            astore 21 /* domain */
        start local 21 // java.lang.String domain
        65: .line 661
            aload 14 /* deviceSpDir */
            astore 22 /* rootpath */
        66: .line 662
            goto 81
        end local 21 // java.lang.String domain
      StackMap locals:
      StackMap stack:
        67: aload 19 /* filePath */
            aload 11 /* deviceFilesDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 71
        68: .line 663
            ldc "d_f"
            astore 21 /* domain */
        start local 21 // java.lang.String domain
        69: .line 664
            aload 11 /* deviceFilesDir */
            astore 22 /* rootpath */
        70: .line 665
            goto 81
        end local 21 // java.lang.String domain
      StackMap locals:
      StackMap stack:
        71: aload 19 /* filePath */
            aload 10 /* deviceRootDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 75
        72: .line 666
            ldc "d_r"
            astore 21 /* domain */
        start local 21 // java.lang.String domain
        73: .line 667
            aload 10 /* deviceRootDir */
            astore 22 /* rootpath */
        74: .line 668
            goto 81
        end local 21 // java.lang.String domain
      StackMap locals:
      StackMap stack:
        75: aload 18 /* efDir */
            ifnull 79
            aload 19 /* filePath */
            aload 18 /* efDir */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 79
        76: .line 669
            ldc "ef"
            astore 21 /* domain */
        start local 21 // java.lang.String domain
        77: .line 670
            aload 18 /* efDir */
            astore 22 /* rootpath */
        78: .line 671
            goto 81
        end local 21 // java.lang.String domain
        79: .line 672
      StackMap locals:
      StackMap stack:
            ldc "BackupAgent"
            new java.lang.StringBuilder
            dup
            ldc "File "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 19 /* filePath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is in an unsupported location; skipping"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        80: .line 673
            return
        start local 21 // java.lang.String domain
        81: .line 682
      StackMap locals: android.app.backup.BackupAgent java.io.File android.app.backup.FullBackupDataOutput java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String android.content.pm.ApplicationInfo java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.app.backup.BackupAgent.getPackageName:()Ljava/lang/String;
            aload 21 /* domain */
            aconst_null
            aload 22 /* rootpath */
            aload 19 /* filePath */
            aload 2 /* output */
            invokestatic android.app.backup.FullBackup.backupToTar:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/backup/FullBackupDataOutput;)I
            pop
        82: .line 683
            return
        end local 22 // java.lang.String rootpath
        end local 21 // java.lang.String domain
        end local 20 // android.content.pm.ApplicationInfo appInfo
        end local 19 // java.lang.String filePath
        end local 18 // java.lang.String efDir
        end local 17 // java.lang.String libDir
        end local 16 // java.lang.String deviceCodeCacheDir
        end local 15 // java.lang.String deviceCacheDir
        end local 14 // java.lang.String deviceSpDir
        end local 13 // java.lang.String deviceDbDir
        end local 12 // java.lang.String deviceNbFilesDir
        end local 11 // java.lang.String deviceFilesDir
        end local 10 // java.lang.String deviceRootDir
        end local 9 // java.lang.String codeCacheDir
        end local 8 // java.lang.String cacheDir
        end local 7 // java.lang.String spDir
        end local 6 // java.lang.String dbDir
        end local 5 // java.lang.String nbFilesDir
        end local 4 // java.lang.String filesDir
        end local 3 // java.lang.String rootDir
        end local 2 // android.app.backup.FullBackupDataOutput output
        end local 1 // java.io.File file
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   83     0                this  Landroid/app/backup/BackupAgent;
            0   83     1                file  Ljava/io/File;
            0   83     2              output  Landroid/app/backup/FullBackupDataOutput;
            4   30     3             rootDir  Ljava/lang/String;
           33   83     3             rootDir  Ljava/lang/String;
            5   30     4            filesDir  Ljava/lang/String;
           33   83     4            filesDir  Ljava/lang/String;
            6   30     5          nbFilesDir  Ljava/lang/String;
           33   83     5          nbFilesDir  Ljava/lang/String;
            7   30     6               dbDir  Ljava/lang/String;
           33   83     6               dbDir  Ljava/lang/String;
            8   30     7               spDir  Ljava/lang/String;
           33   83     7               spDir  Ljava/lang/String;
            9   30     8            cacheDir  Ljava/lang/String;
           33   83     8            cacheDir  Ljava/lang/String;
           10   30     9        codeCacheDir  Ljava/lang/String;
           33   83     9        codeCacheDir  Ljava/lang/String;
           12   30    10       deviceRootDir  Ljava/lang/String;
           33   83    10       deviceRootDir  Ljava/lang/String;
           13   30    11      deviceFilesDir  Ljava/lang/String;
           33   83    11      deviceFilesDir  Ljava/lang/String;
           14   30    12    deviceNbFilesDir  Ljava/lang/String;
           33   83    12    deviceNbFilesDir  Ljava/lang/String;
           15   30    13         deviceDbDir  Ljava/lang/String;
           33   83    13         deviceDbDir  Ljava/lang/String;
           18   30    14         deviceSpDir  Ljava/lang/String;
           33   83    14         deviceSpDir  Ljava/lang/String;
           19   30    15      deviceCacheDir  Ljava/lang/String;
           33   83    15      deviceCacheDir  Ljava/lang/String;
           20   30    16  deviceCodeCacheDir  Ljava/lang/String;
           33   83    16  deviceCodeCacheDir  Ljava/lang/String;
           24   30    17              libDir  Ljava/lang/String;
           33   83    17              libDir  Ljava/lang/String;
            1   83    18               efDir  Ljava/lang/String;
           29   30    19            filePath  Ljava/lang/String;
           33   83    19            filePath  Ljava/lang/String;
            2   83    20             appInfo  Landroid/content/pm/ApplicationInfo;
            3   29    21           ceContext  Landroid/content/Context;
           11   29    22           deContext  Landroid/content/Context;
           26   28    23          efLocation  Ljava/io/File;
           45   47    21              domain  Ljava/lang/String;
           49   51    21              domain  Ljava/lang/String;
           53   55    21              domain  Ljava/lang/String;
           57   59    21              domain  Ljava/lang/String;
           61   63    21              domain  Ljava/lang/String;
           65   67    21              domain  Ljava/lang/String;
           69   71    21              domain  Ljava/lang/String;
           73   75    21              domain  Ljava/lang/String;
           77   79    21              domain  Ljava/lang/String;
           81   83    21              domain  Ljava/lang/String;
           43   83    22            rootpath  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2    29      30  Class java.io.IOException
    MethodParameters:
        Name  Flags
      file    
      output  

  protected final void fullBackupFileTree(java.lang.String, java.lang.String, java.lang.String, android.util.ArraySet<android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags>, android.util.ArraySet<java.lang.String>, android.app.backup.FullBackupDataOutput);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArraySet;Landroid/util/ArraySet;Landroid/app/backup/FullBackupDataOutput;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=7, args_size=7
        start local 0 // android.app.backup.BackupAgent this
         0: .line 715
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tStructStat cannot be resolved to a type\n\tOs cannot be resolved\n\tOsConstants cannot be resolved\n\tOsConstants cannot be resolved\n\tOsConstants cannot be resolved\n\tErrnoException cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/backup/BackupAgent;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArraySet<Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;>;Landroid/util/ArraySet<Ljava/lang/String;>;Landroid/app/backup/FullBackupDataOutput;)V
    MethodParameters:
                  Name  Flags
      packageName       
      domain            
      startingPath      
      manifestExcludes  
      systemExcludes    
      output            

  private boolean manifestExcludesContainFilePath(android.util.ArraySet<android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags>, java.lang.String);
    descriptor: (Landroid/util/ArraySet;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // android.app.backup.BackupAgent this
        start local 1 // android.util.ArraySet manifestExcludes
        start local 2 // java.lang.String filePath
         0: .line 765
            aload 1 /* manifestExcludes */
            invokevirtual android.util.ArraySet.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: android.app.backup.BackupAgent android.util.ArraySet java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags
            astore 3 /* exclude */
        start local 3 // android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags exclude
         2: .line 766
            aload 3 /* exclude */
            invokevirtual android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags.getPath:()Ljava/lang/String;
            astore 5 /* excludePath */
        start local 5 // java.lang.String excludePath
         3: .line 767
            aload 5 /* excludePath */
            ifnull 5
            aload 5 /* excludePath */
            aload 2 /* filePath */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 768
            iconst_1
            ireturn
        end local 5 // java.lang.String excludePath
        end local 3 // android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags exclude
         5: .line 765
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         6: .line 771
            iconst_0
            ireturn
        end local 2 // java.lang.String filePath
        end local 1 // android.util.ArraySet manifestExcludes
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Landroid/app/backup/BackupAgent;
            0    7     1  manifestExcludes  Landroid/util/ArraySet<Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;>;
            0    7     2          filePath  Ljava/lang/String;
            2    5     3           exclude  Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;
            3    5     5       excludePath  Ljava/lang/String;
    Signature: (Landroid/util/ArraySet<Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;>;Ljava/lang/String;)Z
    MethodParameters:
                  Name  Flags
      manifestExcludes  
      filePath          

  public void onRestoreFile(android.os.ParcelFileDescriptor, long, java.io.File, int, long, long);
    descriptor: (Landroid/os/ParcelFileDescriptor;JLjava/io/File;IJJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=11, args_size=7
        start local 0 // android.app.backup.BackupAgent this
        start local 1 // android.os.ParcelFileDescriptor data
        start local 2 // long size
        start local 4 // java.io.File destination
        start local 5 // int type
        start local 6 // long mode
        start local 8 // long mtime
         0: .line 804
            aload 0 /* this */
            aload 4 /* destination */
            invokevirtual android.app.backup.BackupAgent.isFileEligibleForRestore:(Ljava/io/File;)Z
            istore 10 /* accept */
        start local 10 // boolean accept
         1: .line 806
            aload 1 /* data */
            lload 2 /* size */
            iload 5 /* type */
            lload 6 /* mode */
            lload 8 /* mtime */
            iload 10 /* accept */
            ifeq 2
            aload 4 /* destination */
            goto 3
      StackMap locals: android.app.backup.BackupAgent android.os.ParcelFileDescriptor long java.io.File int long long int
      StackMap stack: android.os.ParcelFileDescriptor long int long long
         2: aconst_null
      StackMap locals: android.app.backup.BackupAgent android.os.ParcelFileDescriptor long java.io.File int long long int
      StackMap stack: android.os.ParcelFileDescriptor long int long long java.io.File
         3: invokestatic android.app.backup.FullBackup.restoreFile:(Landroid/os/ParcelFileDescriptor;JIJJLjava/io/File;)V
         4: .line 807
            return
        end local 10 // boolean accept
        end local 8 // long mtime
        end local 6 // long mode
        end local 5 // int type
        end local 4 // java.io.File destination
        end local 2 // long size
        end local 1 // android.os.ParcelFileDescriptor data
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Landroid/app/backup/BackupAgent;
            0    5     1         data  Landroid/os/ParcelFileDescriptor;
            0    5     2         size  J
            0    5     4  destination  Ljava/io/File;
            0    5     5         type  I
            0    5     6         mode  J
            0    5     8        mtime  J
            1    5    10       accept  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      data         
      size         
      destination  
      type         
      mode         
      mtime        

  private boolean isFileEligibleForRestore(java.io.File);
    descriptor: (Ljava/io/File;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.app.backup.BackupAgent this
         0: .line 824
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe method maybeParseAndGetCanonicalIncludePaths() from the type FullBackup.BackupScheme refers to the missing type XmlPullParserException\n\tThe method maybeParseAndGetCanonicalExcludePaths() from the type FullBackup.BackupScheme refers to the missing type XmlPullParserException\n\tXmlPullParserException cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/backup/BackupAgent;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      destination  

  private boolean isFileSpecifiedInPathList(java.io.File, java.util.Collection<android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags>);
    descriptor: (Ljava/io/File;Ljava/util/Collection;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // android.app.backup.BackupAgent this
        start local 1 // java.io.File file
        start local 2 // java.util.Collection canonicalPathList
         0: .line 875
            aload 2 /* canonicalPathList */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 10
      StackMap locals: android.app.backup.BackupAgent java.io.File java.util.Collection top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags
            astore 3 /* canonical */
        start local 3 // android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags canonical
         2: .line 876
            aload 3 /* canonical */
            invokevirtual android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags.getPath:()Ljava/lang/String;
            astore 5 /* canonicalPath */
        start local 5 // java.lang.String canonicalPath
         3: .line 877
            new java.io.File
            dup
            aload 5 /* canonicalPath */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* fileFromList */
        start local 6 // java.io.File fileFromList
         4: .line 878
            aload 6 /* fileFromList */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 8
         5: .line 879
            aload 1 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 7
         6: .line 881
            aload 1 /* file */
            aload 6 /* fileFromList */
            invokevirtual java.io.File.equals:(Ljava/lang/Object;)Z
            ireturn
         7: .line 884
      StackMap locals: android.app.backup.BackupAgent java.io.File java.util.Collection android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags java.util.Iterator java.lang.String java.io.File
      StackMap stack:
            aload 1 /* file */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            aload 5 /* canonicalPath */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ireturn
         8: .line 887
      StackMap locals:
      StackMap stack:
            aload 1 /* file */
            aload 6 /* fileFromList */
            invokevirtual java.io.File.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 889
            iconst_1
            ireturn
        end local 6 // java.io.File fileFromList
        end local 5 // java.lang.String canonicalPath
        end local 3 // android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags canonical
        10: .line 875
      StackMap locals: android.app.backup.BackupAgent java.io.File java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        11: .line 893
            iconst_0
            ireturn
        end local 2 // java.util.Collection canonicalPathList
        end local 1 // java.io.File file
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Landroid/app/backup/BackupAgent;
            0   12     1               file  Ljava/io/File;
            0   12     2  canonicalPathList  Ljava/util/Collection<Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;>;
            2   10     3          canonical  Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;
            3   10     5      canonicalPath  Ljava/lang/String;
            4   10     6       fileFromList  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/File;Ljava/util/Collection<Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;>;)Z
    MethodParameters:
                   Name  Flags
      file               
      canonicalPathList  

  protected void onRestoreFile(android.os.ParcelFileDescriptor, long, int, java.lang.String, java.lang.String, long, long);
    descriptor: (Landroid/os/ParcelFileDescriptor;JILjava/lang/String;Ljava/lang/String;JJ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=10, locals=14, args_size=8
        start local 0 // android.app.backup.BackupAgent this
        start local 1 // android.os.ParcelFileDescriptor data
        start local 2 // long size
        start local 4 // int type
        start local 5 // java.lang.String domain
        start local 6 // java.lang.String path
        start local 7 // long mode
        start local 9 // long mtime
         0: .line 904
            aconst_null
            astore 11 /* basePath */
        start local 11 // java.lang.String basePath
         1: .line 910
            aload 0 /* this */
            invokestatic android.app.backup.FullBackup.getBackupScheme:(Landroid/content/Context;)Landroid/app/backup/FullBackup$BackupScheme;
            aload 5 /* domain */
            invokevirtual android.app.backup.FullBackup$BackupScheme.tokenToDirectoryPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 11 /* basePath */
         2: .line 911
            aload 5 /* domain */
            ldc "ef"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 912
            ldc -1
            lstore 7 /* mode */
         4: .line 916
      StackMap locals: java.lang.String
      StackMap stack:
            aload 11 /* basePath */
            ifnull 10
         5: .line 918
            new java.io.File
            dup
            aload 11 /* basePath */
            aload 6 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 12 /* outFile */
        start local 12 // java.io.File outFile
         6: .line 919
            aload 12 /* outFile */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 13 /* outPath */
        start local 13 // java.lang.String outPath
         7: .line 920
            aload 13 /* outPath */
            new java.lang.StringBuilder
            dup
            aload 11 /* basePath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
         8: .line 922
            aload 0 /* this */
            aload 1 /* data */
            lload 2 /* size */
            aload 12 /* outFile */
            iload 4 /* type */
            lload 7 /* mode */
            lload 9 /* mtime */
            invokevirtual android.app.backup.BackupAgent.onRestoreFile:(Landroid/os/ParcelFileDescriptor;JLjava/io/File;IJJ)V
         9: .line 923
            return
        end local 13 // java.lang.String outPath
        end local 12 // java.io.File outFile
        10: .line 936
      StackMap locals:
      StackMap stack:
            aload 1 /* data */
            lload 2 /* size */
            iload 4 /* type */
            lload 7 /* mode */
            lload 9 /* mtime */
            aconst_null
            invokestatic android.app.backup.FullBackup.restoreFile:(Landroid/os/ParcelFileDescriptor;JIJJLjava/io/File;)V
        11: .line 937
            return
        end local 11 // java.lang.String basePath
        end local 9 // long mtime
        end local 7 // long mode
        end local 6 // java.lang.String path
        end local 5 // java.lang.String domain
        end local 4 // int type
        end local 2 // long size
        end local 1 // android.os.ParcelFileDescriptor data
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Landroid/app/backup/BackupAgent;
            0   12     1      data  Landroid/os/ParcelFileDescriptor;
            0   12     2      size  J
            0   12     4      type  I
            0   12     5    domain  Ljava/lang/String;
            0   12     6      path  Ljava/lang/String;
            0   12     7      mode  J
            0   12     9     mtime  J
            1   12    11  basePath  Ljava/lang/String;
            6   10    12   outFile  Ljava/io/File;
            7   10    13   outPath  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      data    
      size    
      type    
      domain  
      path    
      mode    
      mtime   

  public void onRestoreFinished();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.app.backup.BackupAgent this
         0: .line 951
            return
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/backup/BackupAgent;

  public final android.os.IBinder onBind();
    descriptor: ()Landroid/os/IBinder;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.backup.BackupAgent this
         0: .line 957
            aload 0 /* this */
            getfield android.app.backup.BackupAgent.mBinder:Landroid/os/IBinder;
            areturn
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/backup/BackupAgent;

  public void attach(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.app.backup.BackupAgent this
        start local 1 // android.content.Context context
         0: .line 964
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual android.app.backup.BackupAgent.attachBaseContext:(Landroid/content/Context;)V
         1: .line 965
            return
        end local 1 // android.content.Context context
        end local 0 // android.app.backup.BackupAgent this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/app/backup/BackupAgent;
            0    2     1  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  
}
SourceFile: "BackupAgent.java"
NestMembers:
  android.app.backup.BackupAgent$BackupServiceBinder  android.app.backup.BackupAgent$FailRunnable  android.app.backup.BackupAgent$SharedPrefsSynchronizer
InnerClasses:
  private BackupServiceBinder = android.app.backup.BackupAgent$BackupServiceBinder of android.app.backup.BackupAgent
  FailRunnable = android.app.backup.BackupAgent$FailRunnable of android.app.backup.BackupAgent
  SharedPrefsSynchronizer = android.app.backup.BackupAgent$SharedPrefsSynchronizer of android.app.backup.BackupAgent
  public BackupScheme = android.app.backup.FullBackup$BackupScheme of android.app.backup.FullBackup
  public PathWithRequiredFlags = android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags of android.app.backup.FullBackup$BackupScheme