public class android.telephony.mbms.MbmsDownloadReceiver extends android.content.BroadcastReceiver
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.telephony.mbms.MbmsDownloadReceiver
  super_class: android.content.BroadcastReceiver
{
  public static final java.lang.String DOWNLOAD_TOKEN_SUFFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: ".download_token"

  public static final java.lang.String MBMS_FILE_PROVIDER_META_DATA_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "mbms-file-provider-authority"

  private static final java.lang.String EMBMS_INTENT_PERMISSION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.permission.SEND_EMBMS_INTENTS"

  public static final int RESULT_OK;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public static final int RESULT_INVALID_ACTION;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public static final int RESULT_MALFORMED_INTENT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public static final int RESULT_BAD_TEMP_FILE_ROOT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public static final int RESULT_DOWNLOAD_FINALIZATION_ERROR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public static final int RESULT_TEMP_FILE_GENERATION_ERROR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public static final int RESULT_APP_NOTIFICATION_ERROR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

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

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

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

  private static final int MAX_TEMP_FILE_RETRIES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

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

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.telephony.mbms.MbmsDownloadReceiver this
         0: .line 60
            aload 0 /* this */
            invokespecial android.content.BroadcastReceiver.<init>:()V
         1: .line 137
            aload 0 /* this */
            aconst_null
            putfield android.telephony.mbms.MbmsDownloadReceiver.mFileProviderAuthorityCache:Ljava/lang/String;
         2: .line 138
            aload 0 /* this */
            aconst_null
            putfield android.telephony.mbms.MbmsDownloadReceiver.mMiddlewarePackageNameCache:Ljava/lang/String;
         3: .line 60
            return
        end local 0 // android.telephony.mbms.MbmsDownloadReceiver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/telephony/mbms/MbmsDownloadReceiver;

  public void onReceive(android.content.Context, android.content.Intent);
    descriptor: (Landroid/content/Context;Landroid/content/Intent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.telephony.mbms.MbmsDownloadReceiver this
        start local 1 // android.content.Context context
        start local 2 // android.content.Intent intent
         0: .line 143
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.verifyPermissionIntegrity:(Landroid/content/Context;)V
         1: .line 145
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* intent */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.verifyIntentContents:(Landroid/content/Context;Landroid/content/Intent;)Z
            ifne 4
         2: .line 146
            aload 0 /* this */
            iconst_2
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
         3: .line 147
            return
         4: .line 149
      StackMap locals:
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.TEMP_FILE_ROOT"
            invokevirtual android.content.Intent.getStringExtra:(Ljava/lang/String;)Ljava/lang/String;
         5: .line 150
            aload 1 /* context */
            invokestatic android.telephony.mbms.MbmsTempFileProvider.getEmbmsTempFileDir:(Landroid/content/Context;)Ljava/io/File;
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
         6: .line 149
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
         7: .line 150
            ifne 10
         8: .line 151
            aload 0 /* this */
            iconst_3
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
         9: .line 152
            return
        10: .line 155
      StackMap locals:
      StackMap stack:
            ldc "android.telephony.mbms.action.DOWNLOAD_RESULT_INTERNAL"
            aload 2 /* intent */
            invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        11: .line 156
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* intent */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.moveDownloadedFile:(Landroid/content/Context;Landroid/content/Intent;)V
        12: .line 157
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* intent */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.cleanupPostMove:(Landroid/content/Context;Landroid/content/Intent;)V
        13: .line 158
            goto 21
      StackMap locals:
      StackMap stack:
        14: ldc "android.telephony.mbms.action.FILE_DESCRIPTOR_REQUEST"
            aload 2 /* intent */
            invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 159
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* intent */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.generateTempFiles:(Landroid/content/Context;Landroid/content/Intent;)V
        16: .line 160
            goto 21
      StackMap locals:
      StackMap stack:
        17: ldc "android.telephony.mbms.action.CLEANUP"
            aload 2 /* intent */
            invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        18: .line 161
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* intent */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.cleanupTempFiles:(Landroid/content/Context;Landroid/content/Intent;)V
        19: .line 162
            goto 21
        20: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
        21: .line 165
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.content.Intent intent
        end local 1 // android.content.Context context
        end local 0 // android.telephony.mbms.MbmsDownloadReceiver this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Landroid/telephony/mbms/MbmsDownloadReceiver;
            0   22     1  context  Landroid/content/Context;
            0   22     2   intent  Landroid/content/Intent;
    MethodParameters:
         Name  Flags
      context  
      intent   

  private boolean verifyIntentContents(android.content.Context, android.content.Intent);
    descriptor: (Landroid/content/Context;Landroid/content/Intent;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // android.telephony.mbms.MbmsDownloadReceiver this
        start local 1 // android.content.Context context
        start local 2 // android.content.Intent intent
         0: .line 168
            ldc "android.telephony.mbms.action.DOWNLOAD_RESULT_INTERNAL"
            aload 2 /* intent */
            invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 35
         1: .line 169
            aload 2 /* intent */
            ldc "android.telephony.extra.MBMS_DOWNLOAD_RESULT"
            invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
            ifne 4
         2: .line 170
            ldc "MbmsDownloadReceiver"
            ldc "Download result did not include a result code. Ignoring."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         3: .line 171
            iconst_0
            ireturn
         4: .line 173
      StackMap locals:
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.extra.MBMS_DOWNLOAD_REQUEST"
            invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
            ifne 7
         5: .line 174
            ldc "MbmsDownloadReceiver"
            ldc "Download result did not include the associated request. Ignoring."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         6: .line 175
            iconst_0
            ireturn
         7: .line 178
      StackMap locals:
      StackMap stack:
            iconst_1
         8: .line 179
            aload 2 /* intent */
            ldc "android.telephony.extra.MBMS_DOWNLOAD_RESULT"
         9: .line 180
            iconst_2
        10: .line 179
            invokevirtual android.content.Intent.getIntExtra:(Ljava/lang/String;I)I
        11: .line 178
            if_icmpeq 13
        12: .line 181
            iconst_1
            ireturn
        13: .line 183
      StackMap locals:
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.TEMP_FILE_ROOT"
            invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
            ifne 16
        14: .line 184
            ldc "MbmsDownloadReceiver"
            ldc "Download result did not include the temp file root. Ignoring."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        15: .line 185
            iconst_0
            ireturn
        16: .line 187
      StackMap locals:
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.extra.MBMS_FILE_INFO"
            invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
            ifne 19
        17: .line 188
            ldc "MbmsDownloadReceiver"
            ldc "Download result did not include the associated file info. Ignoring."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        18: .line 190
            iconst_0
            ireturn
        19: .line 192
      StackMap locals:
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.FINAL_URI"
            invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
            ifne 22
        20: .line 193
            ldc "MbmsDownloadReceiver"
            ldc "Download result did not include the path to the final temp file. Ignoring."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        21: .line 195
            iconst_0
            ireturn
        22: .line 197
      StackMap locals:
      StackMap stack:
            aload 2 /* intent */
        23: .line 198
            ldc "android.telephony.extra.MBMS_DOWNLOAD_REQUEST"
        24: .line 197
            invokevirtual android.content.Intent.getParcelableExtra:(Ljava/lang/String;)Landroid/os/Parcelable;
            checkcast android.telephony.mbms.DownloadRequest
            astore 3 /* request */
        start local 3 // android.telephony.mbms.DownloadRequest request
        25: .line 199
            new java.lang.StringBuilder
            dup
            aload 3 /* request */
            invokevirtual android.telephony.mbms.DownloadRequest.getHash:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".download_token"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* expectedTokenFileName */
        start local 4 // java.lang.String expectedTokenFileName
        26: .line 200
            new java.io.File
            dup
        27: .line 201
            aload 1 /* context */
            aload 3 /* request */
            invokevirtual android.telephony.mbms.DownloadRequest.getFileServiceId:()Ljava/lang/String;
            invokestatic android.telephony.mbms.MbmsUtils.getEmbmsTempFileDirForService:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
        28: .line 202
            aload 4 /* expectedTokenFileName */
        29: .line 200
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 5 /* expectedTokenFile */
        start local 5 // java.io.File expectedTokenFile
        30: .line 203
            aload 5 /* expectedTokenFile */
            invokevirtual java.io.File.exists:()Z
            ifne 52
        31: .line 204
            ldc "MbmsDownloadReceiver"
            new java.lang.StringBuilder
            dup
            ldc "Supplied download request does not match a token that we have. Expected "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        32: .line 205
            aload 5 /* expectedTokenFile */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 204
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        34: .line 206
            iconst_0
            ireturn
        end local 5 // java.io.File expectedTokenFile
        end local 4 // java.lang.String expectedTokenFileName
        end local 3 // android.telephony.mbms.DownloadRequest request
        35: .line 208
      StackMap locals:
      StackMap stack:
            ldc "android.telephony.mbms.action.FILE_DESCRIPTOR_REQUEST"
            aload 2 /* intent */
            invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 42
        36: .line 209
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.SERVICE_ID"
            invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
            ifne 39
        37: .line 210
            ldc "MbmsDownloadReceiver"
            ldc "Temp file request did not include the associated service id. Ignoring."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        38: .line 212
            iconst_0
            ireturn
        39: .line 214
      StackMap locals:
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.TEMP_FILE_ROOT"
            invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
            ifne 52
        40: .line 215
            ldc "MbmsDownloadReceiver"
            ldc "Download result did not include the temp file root. Ignoring."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        41: .line 216
            iconst_0
            ireturn
        42: .line 218
      StackMap locals:
      StackMap stack:
            ldc "android.telephony.mbms.action.CLEANUP"
            aload 2 /* intent */
            invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 52
        43: .line 219
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.SERVICE_ID"
            invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
            ifne 46
        44: .line 220
            ldc "MbmsDownloadReceiver"
            ldc "Cleanup request did not include the associated service id. Ignoring."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        45: .line 222
            iconst_0
            ireturn
        46: .line 224
      StackMap locals:
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.TEMP_FILE_ROOT"
            invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
            ifne 49
        47: .line 225
            ldc "MbmsDownloadReceiver"
            ldc "Cleanup request did not include the temp file root. Ignoring."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        48: .line 226
            iconst_0
            ireturn
        49: .line 228
      StackMap locals:
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.TEMP_FILES_IN_USE"
            invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
            ifne 52
        50: .line 229
            ldc "MbmsDownloadReceiver"
            ldc "Cleanup request did not include the list of temp files in use. Ignoring."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        51: .line 231
            iconst_0
            ireturn
        52: .line 234
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // android.content.Intent intent
        end local 1 // android.content.Context context
        end local 0 // android.telephony.mbms.MbmsDownloadReceiver this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   53     0                   this  Landroid/telephony/mbms/MbmsDownloadReceiver;
            0   53     1                context  Landroid/content/Context;
            0   53     2                 intent  Landroid/content/Intent;
           25   35     3                request  Landroid/telephony/mbms/DownloadRequest;
           26   35     4  expectedTokenFileName  Ljava/lang/String;
           30   35     5      expectedTokenFile  Ljava/io/File;
    MethodParameters:
         Name  Flags
      context  
      intent   

  private void moveDownloadedFile(android.content.Context, android.content.Intent);
    descriptor: (Landroid/content/Context;Landroid/content/Intent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // android.telephony.mbms.MbmsDownloadReceiver this
        start local 1 // android.content.Context context
        start local 2 // android.content.Intent intent
         0: .line 238
            aload 2 /* intent */
         1: .line 239
            ldc "android.telephony.extra.MBMS_DOWNLOAD_REQUEST"
         2: .line 238
            invokevirtual android.content.Intent.getParcelableExtra:(Ljava/lang/String;)Landroid/os/Parcelable;
            checkcast android.telephony.mbms.DownloadRequest
            astore 3 /* request */
        start local 3 // android.telephony.mbms.DownloadRequest request
         3: .line 240
            aload 3 /* request */
            invokevirtual android.telephony.mbms.DownloadRequest.getIntentForApp:()Landroid/content/Intent;
            astore 4 /* intentForApp */
        start local 4 // android.content.Intent intentForApp
         4: .line 241
            aload 4 /* intentForApp */
            ifnonnull 8
         5: .line 242
            ldc "MbmsDownloadReceiver"
            ldc "Malformed app notification intent"
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         6: .line 243
            aload 0 /* this */
            bipush 6
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
         7: .line 244
            return
         8: .line 247
      StackMap locals: android.telephony.mbms.DownloadRequest android.content.Intent
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.extra.MBMS_DOWNLOAD_RESULT"
         9: .line 248
            iconst_2
        10: .line 247
            invokevirtual android.content.Intent.getIntExtra:(Ljava/lang/String;I)I
            istore 5 /* result */
        start local 5 // int result
        11: .line 249
            aload 4 /* intentForApp */
            ldc "android.telephony.extra.MBMS_DOWNLOAD_RESULT"
            iload 5 /* result */
            invokevirtual android.content.Intent.putExtra:(Ljava/lang/String;I)Landroid/content/Intent;
            pop
        12: .line 250
            aload 4 /* intentForApp */
            ldc "android.telephony.extra.MBMS_DOWNLOAD_REQUEST"
            aload 3 /* request */
            invokevirtual android.content.Intent.putExtra:(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
            pop
        13: .line 252
            iload 5 /* result */
            iconst_1
            if_icmpeq 18
        14: .line 253
            ldc "MbmsDownloadReceiver"
            ldc "Download request indicated a failed download. Aborting."
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        15: .line 254
            aload 1 /* context */
            aload 4 /* intentForApp */
            invokevirtual android.content.Context.sendBroadcast:(Landroid/content/Intent;)V
        16: .line 255
            aload 0 /* this */
            iconst_0
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
        17: .line 256
            return
        18: .line 259
      StackMap locals: int
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.FINAL_URI"
            invokevirtual android.content.Intent.getParcelableExtra:(Ljava/lang/String;)Landroid/os/Parcelable;
            checkcast android.net.Uri
            astore 6 /* finalTempFile */
        start local 6 // android.net.Uri finalTempFile
        19: .line 260
            aload 1 /* context */
            aload 3 /* request */
            invokevirtual android.telephony.mbms.DownloadRequest.getFileServiceId:()Ljava/lang/String;
            aload 6 /* finalTempFile */
            invokestatic android.telephony.mbms.MbmsDownloadReceiver.verifyTempFilePath:(Landroid/content/Context;Ljava/lang/String;Landroid/net/Uri;)Z
            ifne 23
        20: .line 261
            ldc "MbmsDownloadReceiver"
            new java.lang.StringBuilder
            dup
            ldc "Download result specified an invalid temp file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* finalTempFile */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        21: .line 262
            aload 0 /* this */
            iconst_4
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
        22: .line 263
            return
        23: .line 267
      StackMap locals: android.net.Uri
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.extra.MBMS_FILE_INFO"
            invokevirtual android.content.Intent.getParcelableExtra:(Ljava/lang/String;)Landroid/os/Parcelable;
            checkcast android.telephony.mbms.FileInfo
        24: .line 266
            astore 7 /* completedFileInfo */
        start local 7 // android.telephony.mbms.FileInfo completedFileInfo
        25: .line 268
            invokestatic java.nio.file.FileSystems.getDefault:()Ljava/nio/file/FileSystem;
        26: .line 269
            aload 3 /* request */
            invokevirtual android.telephony.mbms.DownloadRequest.getDestinationUri:()Landroid/net/Uri;
            invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
        27: .line 268
            invokevirtual java.nio.file.FileSystem.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 8 /* appSpecifiedDestination */
        start local 8 // java.nio.file.Path appSpecifiedDestination
        28: .line 273
            aload 3 /* request */
            invokevirtual android.telephony.mbms.DownloadRequest.getSourceUri:()Landroid/net/Uri;
            invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
        29: .line 274
            aload 7 /* completedFileInfo */
            invokevirtual android.telephony.mbms.FileInfo.getUri:()Landroid/net/Uri;
            invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
        30: .line 273
            invokestatic android.telephony.mbms.MbmsDownloadReceiver.getFileRelativePath:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* relativeLocation */
        start local 10 // java.lang.String relativeLocation
        31: .line 275
            aload 6 /* finalTempFile */
            aload 8 /* appSpecifiedDestination */
        32: .line 276
            aload 10 /* relativeLocation */
        33: .line 275
            invokestatic android.telephony.mbms.MbmsDownloadReceiver.moveToFinalLocation:(Landroid/net/Uri;Ljava/nio/file/Path;Ljava/lang/String;)Landroid/net/Uri;
            astore 9 /* finalLocation */
        end local 10 // java.lang.String relativeLocation
        start local 9 // android.net.Uri finalLocation
        34: .line 277
            goto 39
        end local 9 // android.net.Uri finalLocation
      StackMap locals: android.telephony.mbms.MbmsDownloadReceiver android.content.Context android.content.Intent android.telephony.mbms.DownloadRequest android.content.Intent int android.net.Uri android.telephony.mbms.FileInfo java.nio.file.Path
      StackMap stack: java.io.IOException
        35: pop
        36: .line 278
            ldc "MbmsDownloadReceiver"
            ldc "Failed to move temp file to final destination"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        37: .line 279
            aload 0 /* this */
            iconst_4
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
        38: .line 280
            return
        start local 9 // android.net.Uri finalLocation
        39: .line 282
      StackMap locals: android.net.Uri
      StackMap stack:
            aload 4 /* intentForApp */
            ldc "android.telephony.extra.MBMS_COMPLETED_FILE_URI"
            aload 9 /* finalLocation */
            invokevirtual android.content.Intent.putExtra:(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
            pop
        40: .line 283
            aload 4 /* intentForApp */
            ldc "android.telephony.extra.MBMS_FILE_INFO"
            aload 7 /* completedFileInfo */
            invokevirtual android.content.Intent.putExtra:(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
            pop
        41: .line 285
            aload 1 /* context */
            aload 4 /* intentForApp */
            invokevirtual android.content.Context.sendBroadcast:(Landroid/content/Intent;)V
        42: .line 286
            aload 0 /* this */
            iconst_0
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
        43: .line 287
            return
        end local 9 // android.net.Uri finalLocation
        end local 8 // java.nio.file.Path appSpecifiedDestination
        end local 7 // android.telephony.mbms.FileInfo completedFileInfo
        end local 6 // android.net.Uri finalTempFile
        end local 5 // int result
        end local 4 // android.content.Intent intentForApp
        end local 3 // android.telephony.mbms.DownloadRequest request
        end local 2 // android.content.Intent intent
        end local 1 // android.content.Context context
        end local 0 // android.telephony.mbms.MbmsDownloadReceiver this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   44     0                     this  Landroid/telephony/mbms/MbmsDownloadReceiver;
            0   44     1                  context  Landroid/content/Context;
            0   44     2                   intent  Landroid/content/Intent;
            3   44     3                  request  Landroid/telephony/mbms/DownloadRequest;
            4   44     4             intentForApp  Landroid/content/Intent;
           11   44     5                   result  I
           19   44     6            finalTempFile  Landroid/net/Uri;
           25   44     7        completedFileInfo  Landroid/telephony/mbms/FileInfo;
           28   44     8  appSpecifiedDestination  Ljava/nio/file/Path;
           34   35     9            finalLocation  Landroid/net/Uri;
           39   44     9            finalLocation  Landroid/net/Uri;
           31   34    10         relativeLocation  Ljava/lang/String;
      Exception table:
        from    to  target  type
          28    34      35  Class java.io.IOException
    MethodParameters:
         Name  Flags
      context  
      intent   

  private void cleanupPostMove(android.content.Context, android.content.Intent);
    descriptor: (Landroid/content/Context;Landroid/content/Intent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // android.telephony.mbms.MbmsDownloadReceiver this
        start local 1 // android.content.Context context
        start local 2 // android.content.Intent intent
         0: .line 290
            aload 2 /* intent */
         1: .line 291
            ldc "android.telephony.extra.MBMS_DOWNLOAD_REQUEST"
         2: .line 290
            invokevirtual android.content.Intent.getParcelableExtra:(Ljava/lang/String;)Landroid/os/Parcelable;
            checkcast android.telephony.mbms.DownloadRequest
            astore 3 /* request */
        start local 3 // android.telephony.mbms.DownloadRequest request
         3: .line 292
            aload 3 /* request */
            ifnonnull 6
         4: .line 293
            ldc "MbmsDownloadReceiver"
            ldc "Intent does not include a DownloadRequest. Ignoring."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 294
            return
         6: .line 297
      StackMap locals: android.telephony.mbms.DownloadRequest
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.TEMP_LIST"
            invokevirtual android.content.Intent.getParcelableArrayListExtra:(Ljava/lang/String;)Ljava/util/ArrayList;
            astore 4 /* tempFiles */
        start local 4 // java.util.List tempFiles
         7: .line 298
            aload 4 /* tempFiles */
            ifnonnull 9
         8: .line 299
            return
         9: .line 302
      StackMap locals: java.util.List
      StackMap stack:
            aload 4 /* tempFiles */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: android.telephony.mbms.MbmsDownloadReceiver android.content.Context android.content.Intent android.telephony.mbms.DownloadRequest java.util.List top java.util.Iterator
      StackMap stack:
        10: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.net.Uri
            astore 5 /* tempFileUri */
        start local 5 // android.net.Uri tempFileUri
        11: .line 303
            aload 1 /* context */
            aload 3 /* request */
            invokevirtual android.telephony.mbms.DownloadRequest.getFileServiceId:()Ljava/lang/String;
            aload 5 /* tempFileUri */
            invokestatic android.telephony.mbms.MbmsDownloadReceiver.verifyTempFilePath:(Landroid/content/Context;Ljava/lang/String;Landroid/net/Uri;)Z
            ifeq 15
        12: .line 304
            new java.io.File
            dup
            aload 5 /* tempFileUri */
            invokevirtual android.net.Uri.getSchemeSpecificPart:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 7 /* tempFile */
        start local 7 // java.io.File tempFile
        13: .line 305
            aload 7 /* tempFile */
            invokevirtual java.io.File.delete:()Z
            ifne 15
        14: .line 306
            ldc "MbmsDownloadReceiver"
            new java.lang.StringBuilder
            dup
            ldc "Failed to delete temp file at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* tempFile */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            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
        end local 7 // java.io.File tempFile
        end local 5 // android.net.Uri tempFileUri
        15: .line 302
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        16: .line 310
            return
        end local 4 // java.util.List tempFiles
        end local 3 // android.telephony.mbms.DownloadRequest request
        end local 2 // android.content.Intent intent
        end local 1 // android.content.Context context
        end local 0 // android.telephony.mbms.MbmsDownloadReceiver this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Landroid/telephony/mbms/MbmsDownloadReceiver;
            0   17     1      context  Landroid/content/Context;
            0   17     2       intent  Landroid/content/Intent;
            3   17     3      request  Landroid/telephony/mbms/DownloadRequest;
            7   17     4    tempFiles  Ljava/util/List<Landroid/net/Uri;>;
           11   15     5  tempFileUri  Landroid/net/Uri;
           13   15     7     tempFile  Ljava/io/File;
    MethodParameters:
         Name  Flags
      context  
      intent   

  private void generateTempFiles(android.content.Context, android.content.Intent);
    descriptor: (Landroid/content/Context;Landroid/content/Intent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // android.telephony.mbms.MbmsDownloadReceiver this
        start local 1 // android.content.Context context
        start local 2 // android.content.Intent intent
         0: .line 313
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.SERVICE_ID"
            invokevirtual android.content.Intent.getStringExtra:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* serviceId */
        start local 3 // java.lang.String serviceId
         1: .line 314
            aload 3 /* serviceId */
            ifnonnull 5
         2: .line 315
            ldc "MbmsDownloadReceiver"
            ldc "Temp file request did not include the associated service id. Ignoring."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         3: .line 317
            aload 0 /* this */
            iconst_2
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
         4: .line 318
            return
         5: .line 320
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.FD_COUNT"
            iconst_0
            invokevirtual android.content.Intent.getIntExtra:(Ljava/lang/String;I)I
            istore 4 /* fdCount */
        start local 4 // int fdCount
         6: .line 321
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.PAUSED_LIST"
            invokevirtual android.content.Intent.getParcelableArrayListExtra:(Ljava/lang/String;)Ljava/util/ArrayList;
            astore 5 /* pausedList */
        start local 5 // java.util.List pausedList
         7: .line 323
            iload 4 /* fdCount */
            ifne 12
            aload 5 /* pausedList */
            ifnull 8
            aload 5 /* pausedList */
            invokeinterface java.util.List.size:()I
            ifne 12
         8: .line 324
      StackMap locals: int java.util.List
      StackMap stack:
            ldc "MbmsDownloadReceiver"
            ldc "No temp files actually requested. Ending."
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 325
            aload 0 /* this */
            iconst_0
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
        10: .line 326
            aload 0 /* this */
            getstatic android.os.Bundle.EMPTY:Landroid/os/Bundle;
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultExtras:(Landroid/os/Bundle;)V
        11: .line 327
            return
        12: .line 331
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* serviceId */
            iload 4 /* fdCount */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.generateFreshTempFiles:(Landroid/content/Context;Ljava/lang/String;I)Ljava/util/ArrayList;
        13: .line 330
            astore 6 /* freshTempFiles */
        start local 6 // java.util.ArrayList freshTempFiles
        14: .line 333
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* serviceId */
            aload 5 /* pausedList */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.generateUrisForPausedFiles:(Landroid/content/Context;Ljava/lang/String;Ljava/util/List;)Ljava/util/ArrayList;
        15: .line 332
            astore 7 /* pausedFiles */
        start local 7 // java.util.ArrayList pausedFiles
        16: .line 335
            new android.os.Bundle
            dup
            invokespecial android.os.Bundle.<init>:()V
            astore 8 /* result */
        start local 8 // android.os.Bundle result
        17: .line 336
            aload 8 /* result */
            ldc "android.telephony.mbms.extra.FREE_URI_LIST"
            aload 6 /* freshTempFiles */
            invokevirtual android.os.Bundle.putParcelableArrayList:(Ljava/lang/String;Ljava/util/ArrayList;)V
        18: .line 337
            aload 8 /* result */
            ldc "android.telephony.mbms.extra.PAUSED_URI_LIST"
            aload 7 /* pausedFiles */
            invokevirtual android.os.Bundle.putParcelableArrayList:(Ljava/lang/String;Ljava/util/ArrayList;)V
        19: .line 338
            aload 0 /* this */
            iconst_0
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
        20: .line 339
            aload 0 /* this */
            aload 8 /* result */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultExtras:(Landroid/os/Bundle;)V
        21: .line 340
            return
        end local 8 // android.os.Bundle result
        end local 7 // java.util.ArrayList pausedFiles
        end local 6 // java.util.ArrayList freshTempFiles
        end local 5 // java.util.List pausedList
        end local 4 // int fdCount
        end local 3 // java.lang.String serviceId
        end local 2 // android.content.Intent intent
        end local 1 // android.content.Context context
        end local 0 // android.telephony.mbms.MbmsDownloadReceiver this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Landroid/telephony/mbms/MbmsDownloadReceiver;
            0   22     1         context  Landroid/content/Context;
            0   22     2          intent  Landroid/content/Intent;
            1   22     3       serviceId  Ljava/lang/String;
            6   22     4         fdCount  I
            7   22     5      pausedList  Ljava/util/List<Landroid/net/Uri;>;
           14   22     6  freshTempFiles  Ljava/util/ArrayList<Landroid/telephony/mbms/UriPathPair;>;
           16   22     7     pausedFiles  Ljava/util/ArrayList<Landroid/telephony/mbms/UriPathPair;>;
           17   22     8          result  Landroid/os/Bundle;
    MethodParameters:
         Name  Flags
      context  
      intent   

  private java.util.ArrayList<android.telephony.mbms.UriPathPair> generateFreshTempFiles(android.content.Context, java.lang.String, int);
    descriptor: (Landroid/content/Context;Ljava/lang/String;I)Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // android.telephony.mbms.MbmsDownloadReceiver this
        start local 1 // android.content.Context context
        start local 2 // java.lang.String serviceId
        start local 3 // int freshFdCount
         0: .line 344
            aload 1 /* context */
            aload 2 /* serviceId */
            invokestatic android.telephony.mbms.MbmsUtils.getEmbmsTempFileDirForService:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
            astore 4 /* tempFileDir */
        start local 4 // java.io.File tempFileDir
         1: .line 345
            aload 4 /* tempFileDir */
            invokevirtual java.io.File.exists:()Z
            ifne 3
         2: .line 346
            aload 4 /* tempFileDir */
            invokevirtual java.io.File.mkdirs:()Z
            pop
         3: .line 351
      StackMap locals: java.io.File
      StackMap stack:
            new java.util.ArrayList
            dup
            iload 3 /* freshFdCount */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* result */
        start local 5 // java.util.ArrayList result
         4: .line 352
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 19
         6: .line 353
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 4 /* tempFileDir */
            invokestatic android.telephony.mbms.MbmsDownloadReceiver.generateSingleTempFile:(Ljava/io/File;)Ljava/io/File;
            astore 7 /* tempFile */
        start local 7 // java.io.File tempFile
         7: .line 354
            aload 7 /* tempFile */
            ifnonnull 11
         8: .line 355
            aload 0 /* this */
            iconst_5
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
         9: .line 356
            ldc "MbmsDownloadReceiver"
            ldc "Failed to generate a temp file. Moving on."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        10: .line 357
            goto 18
        11: .line 359
      StackMap locals: java.io.File
      StackMap stack:
            aload 7 /* tempFile */
            invokestatic android.net.Uri.fromFile:(Ljava/io/File;)Landroid/net/Uri;
            astore 8 /* fileUri */
        start local 8 // android.net.Uri fileUri
        12: .line 361
            aload 1 /* context */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.getFileProviderAuthorityCached:(Landroid/content/Context;)Ljava/lang/String;
            aload 7 /* tempFile */
        13: .line 360
            invokestatic android.telephony.mbms.MbmsTempFileProvider.getUriForFile:(Landroid/content/Context;Ljava/lang/String;Ljava/io/File;)Landroid/net/Uri;
            astore 9 /* contentUri */
        start local 9 // android.net.Uri contentUri
        14: .line 362
            aload 1 /* context */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.getMiddlewarePackageCached:(Landroid/content/Context;)Ljava/lang/String;
            aload 9 /* contentUri */
        15: .line 363
            iconst_3
        16: .line 362
            invokevirtual android.content.Context.grantUriPermission:(Ljava/lang/String;Landroid/net/Uri;I)V
        17: .line 364
            aload 5 /* result */
            new android.telephony.mbms.UriPathPair
            dup
            aload 8 /* fileUri */
            aload 9 /* contentUri */
            invokespecial android.telephony.mbms.UriPathPair.<init>:(Landroid/net/Uri;Landroid/net/Uri;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // android.net.Uri contentUri
        end local 8 // android.net.Uri fileUri
        end local 7 // java.io.File tempFile
        18: .line 352
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            iload 3 /* freshFdCount */
            if_icmplt 6
        end local 6 // int i
        20: .line 367
            aload 5 /* result */
            areturn
        end local 5 // java.util.ArrayList result
        end local 4 // java.io.File tempFileDir
        end local 3 // int freshFdCount
        end local 2 // java.lang.String serviceId
        end local 1 // android.content.Context context
        end local 0 // android.telephony.mbms.MbmsDownloadReceiver this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Landroid/telephony/mbms/MbmsDownloadReceiver;
            0   21     1       context  Landroid/content/Context;
            0   21     2     serviceId  Ljava/lang/String;
            0   21     3  freshFdCount  I
            1   21     4   tempFileDir  Ljava/io/File;
            4   21     5        result  Ljava/util/ArrayList<Landroid/telephony/mbms/UriPathPair;>;
            5   20     6             i  I
            7   18     7      tempFile  Ljava/io/File;
           12   18     8       fileUri  Landroid/net/Uri;
           14   18     9    contentUri  Landroid/net/Uri;
    Signature: (Landroid/content/Context;Ljava/lang/String;I)Ljava/util/ArrayList<Landroid/telephony/mbms/UriPathPair;>;
    MethodParameters:
              Name  Flags
      context       
      serviceId     
      freshFdCount  

  private static java.io.File generateSingleTempFile(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/io/File;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.io.File tempFileDir
         0: .line 371
            iconst_0
            istore 1 /* numTries */
        start local 1 // int numTries
         1: .line 372
            goto 9
         2: .line 373
      StackMap locals: int
      StackMap stack:
            iinc 1 /* numTries */ 1
         3: .line 374
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            invokestatic java.util.UUID.randomUUID:()Ljava/util/UUID;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ".embms.temp"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* fileName */
        start local 2 // java.lang.String fileName
         4: .line 375
            new java.io.File
            dup
            aload 0 /* tempFileDir */
            aload 2 /* fileName */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 3 /* tempFile */
        start local 3 // java.io.File tempFile
         5: .line 377
            aload 3 /* tempFile */
            invokevirtual java.io.File.createNewFile:()Z
            ifeq 9
         6: .line 378
            aload 3 /* tempFile */
            invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
         7: areturn
         8: .line 380
      StackMap locals: java.io.File int java.lang.String java.io.File
      StackMap stack: java.io.IOException
            pop
        end local 3 // java.io.File tempFile
        end local 2 // java.lang.String fileName
         9: .line 372
      StackMap locals:
      StackMap stack:
            iload 1 /* numTries */
            iconst_5
            if_icmplt 2
        10: .line 384
            aconst_null
            areturn
        end local 1 // int numTries
        end local 0 // java.io.File tempFileDir
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0  tempFileDir  Ljava/io/File;
            1   11     1     numTries  I
            4    9     2     fileName  Ljava/lang/String;
            5    9     3     tempFile  Ljava/io/File;
      Exception table:
        from    to  target  type
           5     7       8  Class java.io.IOException
    MethodParameters:
             Name  Flags
      tempFileDir  

  private java.util.ArrayList<android.telephony.mbms.UriPathPair> generateUrisForPausedFiles(android.content.Context, java.lang.String, java.util.List<android.net.Uri>);
    descriptor: (Landroid/content/Context;Ljava/lang/String;Ljava/util/List;)Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // android.telephony.mbms.MbmsDownloadReceiver this
        start local 1 // android.content.Context context
        start local 2 // java.lang.String serviceId
        start local 3 // java.util.List pausedFiles
         0: .line 389
            aload 3 /* pausedFiles */
            ifnonnull 2
         1: .line 390
            new java.util.ArrayList
            dup
            iconst_0
            invokespecial java.util.ArrayList.<init>:(I)V
            areturn
         2: .line 392
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 3 /* pausedFiles */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* result */
        start local 4 // java.util.ArrayList result
         3: .line 394
            aload 3 /* pausedFiles */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 20
      StackMap locals: android.telephony.mbms.MbmsDownloadReceiver android.content.Context java.lang.String java.util.List java.util.ArrayList top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.net.Uri
            astore 5 /* fileUri */
        start local 5 // android.net.Uri fileUri
         5: .line 395
            aload 1 /* context */
            aload 2 /* serviceId */
            aload 5 /* fileUri */
            invokestatic android.telephony.mbms.MbmsDownloadReceiver.verifyTempFilePath:(Landroid/content/Context;Ljava/lang/String;Landroid/net/Uri;)Z
            ifne 9
         6: .line 396
            ldc "MbmsDownloadReceiver"
            new java.lang.StringBuilder
            dup
            ldc "Supplied file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* fileUri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not a valid temp file to resume"
            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
         7: .line 397
            aload 0 /* this */
            iconst_5
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
         8: .line 398
            goto 20
         9: .line 400
      StackMap locals: android.telephony.mbms.MbmsDownloadReceiver android.content.Context java.lang.String java.util.List java.util.ArrayList android.net.Uri java.util.Iterator
      StackMap stack:
            new java.io.File
            dup
            aload 5 /* fileUri */
            invokevirtual android.net.Uri.getSchemeSpecificPart:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 7 /* tempFile */
        start local 7 // java.io.File tempFile
        10: .line 401
            aload 7 /* tempFile */
            invokevirtual java.io.File.exists:()Z
            ifne 14
        11: .line 402
            ldc "MbmsDownloadReceiver"
            new java.lang.StringBuilder
            dup
            ldc "Supplied file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* fileUri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not exist."
            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
        12: .line 403
            aload 0 /* this */
            iconst_5
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
        13: .line 404
            goto 20
        14: .line 407
      StackMap locals: java.io.File
      StackMap stack:
            aload 1 /* context */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.getFileProviderAuthorityCached:(Landroid/content/Context;)Ljava/lang/String;
            aload 7 /* tempFile */
        15: .line 406
            invokestatic android.telephony.mbms.MbmsTempFileProvider.getUriForFile:(Landroid/content/Context;Ljava/lang/String;Ljava/io/File;)Landroid/net/Uri;
            astore 8 /* contentUri */
        start local 8 // android.net.Uri contentUri
        16: .line 408
            aload 1 /* context */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual android.telephony.mbms.MbmsDownloadReceiver.getMiddlewarePackageCached:(Landroid/content/Context;)Ljava/lang/String;
            aload 8 /* contentUri */
        17: .line 409
            iconst_3
        18: .line 408
            invokevirtual android.content.Context.grantUriPermission:(Ljava/lang/String;Landroid/net/Uri;I)V
        19: .line 411
            aload 4 /* result */
            new android.telephony.mbms.UriPathPair
            dup
            aload 5 /* fileUri */
            aload 8 /* contentUri */
            invokespecial android.telephony.mbms.UriPathPair.<init>:(Landroid/net/Uri;Landroid/net/Uri;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // android.net.Uri contentUri
        end local 7 // java.io.File tempFile
        end local 5 // android.net.Uri fileUri
        20: .line 394
      StackMap locals: android.telephony.mbms.MbmsDownloadReceiver android.content.Context java.lang.String java.util.List java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        21: .line 413
            aload 4 /* result */
            areturn
        end local 4 // java.util.ArrayList result
        end local 3 // java.util.List pausedFiles
        end local 2 // java.lang.String serviceId
        end local 1 // android.content.Context context
        end local 0 // android.telephony.mbms.MbmsDownloadReceiver this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   22     0         this  Landroid/telephony/mbms/MbmsDownloadReceiver;
            0   22     1      context  Landroid/content/Context;
            0   22     2    serviceId  Ljava/lang/String;
            0   22     3  pausedFiles  Ljava/util/List<Landroid/net/Uri;>;
            3   22     4       result  Ljava/util/ArrayList<Landroid/telephony/mbms/UriPathPair;>;
            5   20     5      fileUri  Landroid/net/Uri;
           10   20     7     tempFile  Ljava/io/File;
           16   20     8   contentUri  Landroid/net/Uri;
    Signature: (Landroid/content/Context;Ljava/lang/String;Ljava/util/List<Landroid/net/Uri;>;)Ljava/util/ArrayList<Landroid/telephony/mbms/UriPathPair;>;
    MethodParameters:
             Name  Flags
      context      
      serviceId    
      pausedFiles  

  private void cleanupTempFiles(android.content.Context, android.content.Intent);
    descriptor: (Landroid/content/Context;Landroid/content/Intent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // android.telephony.mbms.MbmsDownloadReceiver this
        start local 1 // android.content.Context context
        start local 2 // android.content.Intent intent
         0: .line 417
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.SERVICE_ID"
            invokevirtual android.content.Intent.getStringExtra:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* serviceId */
        start local 3 // java.lang.String serviceId
         1: .line 418
            aload 1 /* context */
            aload 3 /* serviceId */
            invokestatic android.telephony.mbms.MbmsUtils.getEmbmsTempFileDirForService:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
            astore 4 /* tempFileDir */
        start local 4 // java.io.File tempFileDir
         2: .line 420
            aload 2 /* intent */
            ldc "android.telephony.mbms.extra.TEMP_FILES_IN_USE"
            invokevirtual android.content.Intent.getParcelableArrayListExtra:(Ljava/lang/String;)Ljava/util/ArrayList;
         3: .line 419
            astore 5 /* filesInUse */
        start local 5 // java.util.List filesInUse
         4: .line 421
            aload 4 /* tempFileDir */
            new android.telephony.mbms.MbmsDownloadReceiver$1
            dup
            aload 0 /* this */
            aload 5 /* filesInUse */
            invokespecial android.telephony.mbms.MbmsDownloadReceiver$1.<init>:(Landroid/telephony/mbms/MbmsDownloadReceiver;Ljava/util/List;)V
            invokevirtual java.io.File.listFiles:(Ljava/io/FileFilter;)[Ljava/io/File;
            astore 6 /* filesToDelete */
        start local 6 // java.io.File[] filesToDelete
         5: .line 442
            aload 6 /* filesToDelete */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 9
      StackMap locals: android.telephony.mbms.MbmsDownloadReceiver android.content.Context android.content.Intent java.lang.String java.io.File java.util.List java.io.File[] top int int java.io.File[]
      StackMap stack:
         6: aload 10
            iload 8
            aaload
            astore 7 /* fileToDelete */
        start local 7 // java.io.File fileToDelete
         7: .line 443
            aload 7 /* fileToDelete */
            invokevirtual java.io.File.delete:()Z
            pop
        end local 7 // java.io.File fileToDelete
         8: .line 442
            iinc 8 1
      StackMap locals:
      StackMap stack:
         9: iload 8
            iload 9
            if_icmplt 6
        10: .line 445
            return
        end local 6 // java.io.File[] filesToDelete
        end local 5 // java.util.List filesInUse
        end local 4 // java.io.File tempFileDir
        end local 3 // java.lang.String serviceId
        end local 2 // android.content.Intent intent
        end local 1 // android.content.Context context
        end local 0 // android.telephony.mbms.MbmsDownloadReceiver this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Landroid/telephony/mbms/MbmsDownloadReceiver;
            0   11     1        context  Landroid/content/Context;
            0   11     2         intent  Landroid/content/Intent;
            1   11     3      serviceId  Ljava/lang/String;
            2   11     4    tempFileDir  Ljava/io/File;
            4   11     5     filesInUse  Ljava/util/List<Landroid/net/Uri;>;
            5   11     6  filesToDelete  [Ljava/io/File;
            7    8     7   fileToDelete  Ljava/io/File;
    MethodParameters:
         Name  Flags
      context  
      intent   

  private static android.net.Uri moveToFinalLocation(android.net.Uri, java.nio.file.Path, java.lang.String);
    descriptor: (Landroid/net/Uri;Ljava/nio/file/Path;Ljava/lang/String;)Landroid/net/Uri;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // android.net.Uri fromPath
        start local 1 // java.nio.file.Path appSpecifiedPath
        start local 2 // java.lang.String relativeLocation
         0: .line 452
            ldc "file"
            aload 0 /* fromPath */
            invokevirtual android.net.Uri.getScheme:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         1: .line 453
            ldc "MbmsDownloadReceiver"
            new java.lang.StringBuilder
            dup
            ldc "Downloaded file location uri "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* fromPath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         2: .line 454
            ldc " does not have a file scheme"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 453
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 455
            aconst_null
            areturn
         5: .line 458
      StackMap locals:
      StackMap stack:
            invokestatic java.nio.file.FileSystems.getDefault:()Ljava/nio/file/FileSystem;
            aload 0 /* fromPath */
            invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokevirtual java.nio.file.FileSystem.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 3 /* fromFile */
        start local 3 // java.nio.file.Path fromFile
         6: .line 459
            aload 1 /* appSpecifiedPath */
            aload 2 /* relativeLocation */
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 4 /* toFile */
        start local 4 // java.nio.file.Path toFile
         7: .line 461
            aload 4 /* toFile */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 9
         8: .line 462
            aload 4 /* toFile */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
         9: .line 464
      StackMap locals: java.nio.file.Path java.nio.file.Path
      StackMap stack:
            aload 3 /* fromFile */
            aload 4 /* toFile */
            iconst_2
            anewarray java.nio.file.CopyOption
            dup
            iconst_0
        10: .line 465
            getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
            aastore
            dup
            iconst_1
            getstatic java.nio.file.StandardCopyOption.ATOMIC_MOVE:Ljava/nio/file/StandardCopyOption;
            aastore
        11: .line 464
            invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
            astore 5 /* result */
        start local 5 // java.nio.file.Path result
        12: .line 467
            aload 5 /* result */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            invokestatic android.net.Uri.fromFile:(Ljava/io/File;)Landroid/net/Uri;
            areturn
        end local 5 // java.nio.file.Path result
        end local 4 // java.nio.file.Path toFile
        end local 3 // java.nio.file.Path fromFile
        end local 2 // java.lang.String relativeLocation
        end local 1 // java.nio.file.Path appSpecifiedPath
        end local 0 // android.net.Uri fromPath
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0          fromPath  Landroid/net/Uri;
            0   13     1  appSpecifiedPath  Ljava/nio/file/Path;
            0   13     2  relativeLocation  Ljava/lang/String;
            6   13     3          fromFile  Ljava/nio/file/Path;
            7   13     4            toFile  Ljava/nio/file/Path;
           12   13     5            result  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      fromPath          
      appSpecifiedPath  
      relativeLocation  

  public static java.lang.String getFileRelativePath(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.String sourceUriPath
        start local 1 // java.lang.String fileInfoPath
         0: .line 475
            aload 0 /* sourceUriPath */
            ldc "*"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 478
            aload 0 /* sourceUriPath */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* lastSlash */
        start local 2 // int lastSlash
         2: .line 479
            aload 0 /* sourceUriPath */
            iconst_0
            iload 2 /* lastSlash */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* sourceUriPath */
        end local 2 // int lastSlash
         3: .line 481
      StackMap locals:
      StackMap stack:
            aload 1 /* fileInfoPath */
            aload 0 /* sourceUriPath */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 8
         4: .line 482
            ldc "MbmsDownloadReceiver"
            new java.lang.StringBuilder
            dup
            ldc "File location specified in FileInfo does not match the source URI. source: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 483
            aload 0 /* sourceUriPath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " fileinfo path: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* fileInfoPath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 482
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         7: .line 484
            aconst_null
            areturn
         8: .line 486
      StackMap locals:
      StackMap stack:
            aload 1 /* fileInfoPath */
            invokevirtual java.lang.String.length:()I
            aload 0 /* sourceUriPath */
            invokevirtual java.lang.String.length:()I
            if_icmpne 10
         9: .line 489
            aload 0 /* sourceUriPath */
            aload 0 /* sourceUriPath */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        10: .line 492
      StackMap locals:
      StackMap stack:
            aload 1 /* fileInfoPath */
            aload 0 /* sourceUriPath */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* prefixOmittedPath */
        start local 2 // java.lang.String prefixOmittedPath
        11: .line 493
            aload 2 /* prefixOmittedPath */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 13
        12: .line 494
            aload 2 /* prefixOmittedPath */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* prefixOmittedPath */
        13: .line 496
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* prefixOmittedPath */
            areturn
        end local 2 // java.lang.String prefixOmittedPath
        end local 1 // java.lang.String fileInfoPath
        end local 0 // java.lang.String sourceUriPath
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0      sourceUriPath  Ljava/lang/String;
            0   14     1       fileInfoPath  Ljava/lang/String;
            2    3     2          lastSlash  I
           11   14     2  prefixOmittedPath  Ljava/lang/String;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
               Name  Flags
      sourceUriPath  
      fileInfoPath   

  private static boolean verifyTempFilePath(android.content.Context, java.lang.String, android.net.Uri);
    descriptor: (Landroid/content/Context;Ljava/lang/String;Landroid/net/Uri;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.content.Context context
        start local 1 // java.lang.String serviceId
        start local 2 // android.net.Uri filePath
         0: .line 501
            ldc "file"
            aload 2 /* filePath */
            invokevirtual android.net.Uri.getScheme:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         1: .line 502
            ldc "MbmsDownloadReceiver"
            new java.lang.StringBuilder
            dup
            ldc "Uri "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* filePath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not have a file scheme"
            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
         2: .line 503
            iconst_0
            ireturn
         3: .line 506
      StackMap locals:
      StackMap stack:
            aload 2 /* filePath */
            invokevirtual android.net.Uri.getSchemeSpecificPart:()Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         4: .line 507
            new java.io.File
            dup
            aload 3 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 4 /* tempFile */
        start local 4 // java.io.File tempFile
         5: .line 508
            aload 4 /* tempFile */
            invokevirtual java.io.File.exists:()Z
            ifne 8
         6: .line 509
            ldc "MbmsDownloadReceiver"
            new java.lang.StringBuilder
            dup
            ldc "File at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " does not exist."
            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
         7: .line 510
            iconst_0
            ireturn
         8: .line 514
      StackMap locals: java.lang.String java.io.File
      StackMap stack:
            aload 0 /* context */
            aload 1 /* serviceId */
            invokestatic android.telephony.mbms.MbmsUtils.getEmbmsTempFileDirForService:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
            aload 4 /* tempFile */
         9: .line 513
            invokestatic android.telephony.mbms.MbmsUtils.isContainedIn:(Ljava/io/File;Ljava/io/File;)Z
        10: .line 514
            ifne 15
        11: .line 515
            ldc "MbmsDownloadReceiver"
            new java.lang.StringBuilder
            dup
            ldc "File at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is not contained in the temp file root,"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 516
            ldc " which is "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* context */
            aload 1 /* serviceId */
            invokestatic android.telephony.mbms.MbmsUtils.getEmbmsTempFileDirForService:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 515
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        14: .line 517
            iconst_0
            ireturn
        15: .line 520
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // java.io.File tempFile
        end local 3 // java.lang.String path
        end local 2 // android.net.Uri filePath
        end local 1 // java.lang.String serviceId
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0    context  Landroid/content/Context;
            0   16     1  serviceId  Ljava/lang/String;
            0   16     2   filePath  Landroid/net/Uri;
            4   16     3       path  Ljava/lang/String;
            5   16     4   tempFile  Ljava/io/File;
    MethodParameters:
           Name  Flags
      context    
      serviceId  
      filePath   

  private java.lang.String getFileProviderAuthorityCached(android.content.Context);
    descriptor: (Landroid/content/Context;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.telephony.mbms.MbmsDownloadReceiver this
        start local 1 // android.content.Context context
         0: .line 524
            aload 0 /* this */
            getfield android.telephony.mbms.MbmsDownloadReceiver.mFileProviderAuthorityCache:Ljava/lang/String;
            ifnull 2
         1: .line 525
            aload 0 /* this */
            getfield android.telephony.mbms.MbmsDownloadReceiver.mFileProviderAuthorityCache:Ljava/lang/String;
            areturn
         2: .line 528
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokestatic android.telephony.mbms.MbmsDownloadReceiver.getFileProviderAuthority:(Landroid/content/Context;)Ljava/lang/String;
            putfield android.telephony.mbms.MbmsDownloadReceiver.mFileProviderAuthorityCache:Ljava/lang/String;
         3: .line 529
            aload 0 /* this */
            getfield android.telephony.mbms.MbmsDownloadReceiver.mFileProviderAuthorityCache:Ljava/lang/String;
            areturn
        end local 1 // android.content.Context context
        end local 0 // android.telephony.mbms.MbmsDownloadReceiver this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Landroid/telephony/mbms/MbmsDownloadReceiver;
            0    4     1  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  private static java.lang.String getFileProviderAuthority(android.content.Context);
    descriptor: (Landroid/content/Context;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // android.content.Context context
         0: .line 535
            aload 0 /* context */
            invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
         1: .line 536
            aload 0 /* context */
            invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
            sipush 128
            invokevirtual android.content.pm.PackageManager.getApplicationInfo:(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
         2: .line 535
            astore 1 /* appInfo */
        start local 1 // android.content.pm.ApplicationInfo appInfo
         3: .line 537
            goto 6
        end local 1 // android.content.pm.ApplicationInfo appInfo
      StackMap locals:
      StackMap stack: android.content.pm.PackageManager$NameNotFoundException
         4: pop
         5: .line 538
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Package manager couldn't find "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* context */
            invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // android.content.pm.ApplicationInfo appInfo
         6: .line 540
      StackMap locals: android.content.pm.ApplicationInfo
      StackMap stack:
            aload 1 /* appInfo */
            getfield android.content.pm.ApplicationInfo.metaData:Landroid/os/Bundle;
            ifnonnull 8
         7: .line 541
            new java.lang.RuntimeException
            dup
            ldc "App must declare the file provider authority as metadata in the manifest."
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 544
      StackMap locals:
      StackMap stack:
            aload 1 /* appInfo */
            getfield android.content.pm.ApplicationInfo.metaData:Landroid/os/Bundle;
            ldc "mbms-file-provider-authority"
            invokevirtual android.os.Bundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* authority */
        start local 2 // java.lang.String authority
         9: .line 545
            aload 2 /* authority */
            ifnonnull 11
        10: .line 546
            new java.lang.RuntimeException
            dup
            ldc "App must declare the file provider authority as metadata in the manifest."
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 549
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* authority */
            areturn
        end local 2 // java.lang.String authority
        end local 1 // android.content.pm.ApplicationInfo appInfo
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0    context  Landroid/content/Context;
            3    4     1    appInfo  Landroid/content/pm/ApplicationInfo;
            6   12     1    appInfo  Landroid/content/pm/ApplicationInfo;
            9   12     2  authority  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     3       4  Class android.content.pm.PackageManager$NameNotFoundException
    MethodParameters:
         Name  Flags
      context  

  private java.lang.String getMiddlewarePackageCached(android.content.Context);
    descriptor: (Landroid/content/Context;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.telephony.mbms.MbmsDownloadReceiver this
        start local 1 // android.content.Context context
         0: .line 553
            aload 0 /* this */
            getfield android.telephony.mbms.MbmsDownloadReceiver.mMiddlewarePackageNameCache:Ljava/lang/String;
            ifnonnull 6
         1: .line 554
            aload 0 /* this */
            aload 1 /* context */
         2: .line 555
            ldc "android.telephony.action.EmbmsDownload"
         3: .line 554
            invokestatic android.telephony.mbms.MbmsUtils.getMiddlewareServiceInfo:(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/ServiceInfo;
         4: .line 555
            getfield android.content.pm.ServiceInfo.packageName:Ljava/lang/String;
         5: .line 554
            putfield android.telephony.mbms.MbmsDownloadReceiver.mMiddlewarePackageNameCache:Ljava/lang/String;
         6: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.telephony.mbms.MbmsDownloadReceiver.mMiddlewarePackageNameCache:Ljava/lang/String;
            areturn
        end local 1 // android.content.Context context
        end local 0 // android.telephony.mbms.MbmsDownloadReceiver this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/telephony/mbms/MbmsDownloadReceiver;
            0    7     1  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  private void verifyPermissionIntegrity(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // android.telephony.mbms.MbmsDownloadReceiver this
        start local 1 // android.content.Context context
         0: .line 561
            aload 1 /* context */
            invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
            astore 2 /* pm */
        start local 2 // android.content.pm.PackageManager pm
         1: .line 562
            new android.content.Intent
            dup
            aload 1 /* context */
            ldc Landroid/telephony/mbms/MbmsDownloadReceiver;
            invokespecial android.content.Intent.<init>:(Landroid/content/Context;Ljava/lang/Class;)V
            astore 3 /* queryIntent */
        start local 3 // android.content.Intent queryIntent
         2: .line 563
            aload 2 /* pm */
            aload 3 /* queryIntent */
            iconst_0
            invokevirtual android.content.pm.PackageManager.queryBroadcastReceivers:(Landroid/content/Intent;I)Ljava/util/List;
            astore 4 /* infos */
        start local 4 // java.util.List infos
         3: .line 564
            aload 4 /* infos */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpeq 5
         4: .line 565
            new java.lang.IllegalStateException
            dup
            ldc "Non-unique download receiver in your app"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 567
      StackMap locals: android.content.pm.PackageManager android.content.Intent java.util.List
      StackMap stack:
            aload 4 /* infos */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.content.pm.ResolveInfo
            getfield android.content.pm.ResolveInfo.activityInfo:Landroid/content/pm/ActivityInfo;
            astore 5 /* selfInfo */
        start local 5 // android.content.pm.ActivityInfo selfInfo
         6: .line 568
            aload 5 /* selfInfo */
            ifnonnull 8
         7: .line 569
            new java.lang.IllegalStateException
            dup
            ldc "Queried ResolveInfo does not contain a receiver"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 571
      StackMap locals: android.content.pm.ActivityInfo
      StackMap stack:
            aload 1 /* context */
         9: .line 572
            ldc "android.telephony.action.EmbmsDownload"
        10: .line 571
            invokestatic android.telephony.mbms.MbmsUtils.getOverrideServiceName:(Landroid/content/Context;Ljava/lang/String;)Landroid/content/ComponentName;
            ifnull 16
        11: .line 574
            aload 5 /* selfInfo */
            getfield android.content.pm.ActivityInfo.permission:Ljava/lang/String;
            ifnonnull 15
        12: .line 575
            new java.lang.IllegalStateException
            dup
        13: .line 576
            ldc "MbmsDownloadReceiver must require some permission"
        14: .line 575
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 578
      StackMap locals:
      StackMap stack:
            return
        16: .line 580
      StackMap locals:
      StackMap stack:
            ldc "android.permission.SEND_EMBMS_INTENTS"
            aload 5 /* selfInfo */
            getfield android.content.pm.ActivityInfo.permission:Ljava/lang/String;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 18
        17: .line 581
            new java.lang.IllegalStateException
            dup
            ldc "MbmsDownloadReceiver must require the SEND_EMBMS_INTENTS permission."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 584
      StackMap locals:
      StackMap stack:
            return
        end local 5 // android.content.pm.ActivityInfo selfInfo
        end local 4 // java.util.List infos
        end local 3 // android.content.Intent queryIntent
        end local 2 // android.content.pm.PackageManager pm
        end local 1 // android.content.Context context
        end local 0 // android.telephony.mbms.MbmsDownloadReceiver this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Landroid/telephony/mbms/MbmsDownloadReceiver;
            0   19     1      context  Landroid/content/Context;
            1   19     2           pm  Landroid/content/pm/PackageManager;
            2   19     3  queryIntent  Landroid/content/Intent;
            3   19     4        infos  Ljava/util/List<Landroid/content/pm/ResolveInfo;>;
            6   19     5     selfInfo  Landroid/content/pm/ActivityInfo;
    MethodParameters:
         Name  Flags
      context  
}
SourceFile: "MbmsDownloadReceiver.java"
NestMembers:
  android.telephony.mbms.MbmsDownloadReceiver$1
InnerClasses:
  public NameNotFoundException = android.content.pm.PackageManager$NameNotFoundException of android.content.pm.PackageManager
  android.telephony.mbms.MbmsDownloadReceiver$1