public class sun.security.provider.PolicyFile extends java.security.Policy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.provider.PolicyFile
  super_class: java.security.Policy
{
  private static final sun.security.util.Debug debug;
    descriptor: Lsun/security/util/Debug;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String SELF;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "${{self}}"

  private static final java.lang.String X500PRINCIPAL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.auth.x500.X500Principal"

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

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

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

  private volatile sun.security.provider.PolicyFile$PolicyInfo policyInfo;
    descriptor: Lsun/security/provider/PolicyFile$PolicyInfo;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

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

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

  private java.net.URL url;
    descriptor: Ljava/net/URL;
    flags: (0x0002) ACC_PRIVATE

  private static final java.lang.Class<?>[] PARAMS0;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

  private static final java.lang.Class<?>[] PARAMS1;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

  private static final java.lang.Class<?>[] PARAMS2;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

  private static java.util.Set<java.net.URL> badPolicyURLs;
    descriptor: Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/Set<Ljava/net/URL;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 243
            ldc "policy"
            invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
            putstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
         1: .line 263
            iconst_0
            anewarray java.lang.Class
            putstatic sun.security.provider.PolicyFile.PARAMS0:[Ljava/lang/Class;
         2: .line 264
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            putstatic sun.security.provider.PolicyFile.PARAMS1:[Ljava/lang/Class;
         3: .line 265
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/String;
            aastore
            putstatic sun.security.provider.PolicyFile.PARAMS2:[Ljava/lang/Class;
         4: .line 276
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
         5: .line 275
            putstatic sun.security.provider.PolicyFile.badPolicyURLs:Ljava/util/Set;
         6: .line 276
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.provider.PolicyFile this
         0: .line 282
            aload 0 /* this */
            invokespecial java.security.Policy.<init>:()V
         1: .line 257
            aload 0 /* this */
            iconst_1
            putfield sun.security.provider.PolicyFile.expandProperties:Z
         2: .line 258
            aload 0 /* this */
            iconst_1
            putfield sun.security.provider.PolicyFile.allowSystemProperties:Z
         3: .line 259
            aload 0 /* this */
            iconst_0
            putfield sun.security.provider.PolicyFile.notUtf8:Z
         4: .line 283
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.provider.PolicyFile.init:(Ljava/net/URL;)V
         5: .line 284
            return
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/provider/PolicyFile;

  public void <init>(java.net.URL);
    descriptor: (Ljava/net/URL;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.net.URL url
         0: .line 290
            aload 0 /* this */
            invokespecial java.security.Policy.<init>:()V
         1: .line 257
            aload 0 /* this */
            iconst_1
            putfield sun.security.provider.PolicyFile.expandProperties:Z
         2: .line 258
            aload 0 /* this */
            iconst_1
            putfield sun.security.provider.PolicyFile.allowSystemProperties:Z
         3: .line 259
            aload 0 /* this */
            iconst_0
            putfield sun.security.provider.PolicyFile.notUtf8:Z
         4: .line 291
            aload 0 /* this */
            aload 1 /* url */
            putfield sun.security.provider.PolicyFile.url:Ljava/net/URL;
         5: .line 292
            aload 0 /* this */
            aload 1 /* url */
            invokevirtual sun.security.provider.PolicyFile.init:(Ljava/net/URL;)V
         6: .line 293
            return
        end local 1 // java.net.URL url
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/provider/PolicyFile;
            0    7     1   url  Ljava/net/URL;
    MethodParameters:
      Name  Flags
      url   

  private void init(java.net.URL);
    descriptor: (Ljava/net/URL;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.net.URL url
         0: .line 306
            new sun.security.provider.PolicyFile$1
            dup
            aload 0 /* this */
            invokespecial sun.security.provider.PolicyFile$1.<init>:(Lsun/security/provider/PolicyFile;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
         1: .line 305
            astore 2 /* numCacheStr */
        start local 2 // java.lang.String numCacheStr
         2: .line 319
            aload 2 /* numCacheStr */
            ifnull 8
         3: .line 321
            aload 2 /* numCacheStr */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 3 /* numCaches */
        start local 3 // int numCaches
         4: .line 322
            goto 9
        end local 3 // int numCaches
      StackMap locals: sun.security.provider.PolicyFile java.net.URL java.lang.String
      StackMap stack: java.lang.NumberFormatException
         5: pop
         6: .line 323
            iconst_1
            istore 3 /* numCaches */
        start local 3 // int numCaches
         7: .line 325
            goto 9
        end local 3 // int numCaches
         8: .line 326
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* numCaches */
        start local 3 // int numCaches
         9: .line 328
      StackMap locals: int
      StackMap stack:
            new sun.security.provider.PolicyFile$PolicyInfo
            dup
            iload 3 /* numCaches */
            invokespecial sun.security.provider.PolicyFile$PolicyInfo.<init>:(I)V
            astore 4 /* newInfo */
        start local 4 // sun.security.provider.PolicyFile$PolicyInfo newInfo
        10: .line 329
            aload 0 /* this */
            aload 4 /* newInfo */
            aload 1 /* url */
            invokevirtual sun.security.provider.PolicyFile.initPolicyFile:(Lsun/security/provider/PolicyFile$PolicyInfo;Ljava/net/URL;)V
        11: .line 330
            aload 0 /* this */
            aload 4 /* newInfo */
            putfield sun.security.provider.PolicyFile.policyInfo:Lsun/security/provider/PolicyFile$PolicyInfo;
        12: .line 331
            return
        end local 4 // sun.security.provider.PolicyFile$PolicyInfo newInfo
        end local 3 // int numCaches
        end local 2 // java.lang.String numCacheStr
        end local 1 // java.net.URL url
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lsun/security/provider/PolicyFile;
            0   13     1          url  Ljava/net/URL;
            2   13     2  numCacheStr  Ljava/lang/String;
            4    5     3    numCaches  I
            7    8     3    numCaches  I
            9   13     3    numCaches  I
           10   13     4      newInfo  Lsun/security/provider/PolicyFile$PolicyInfo;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.NumberFormatException
    MethodParameters:
      Name  Flags
      url   

  private void initPolicyFile(sun.security.provider.PolicyFile$PolicyInfo, java.net.URL);
    descriptor: (Lsun/security/provider/PolicyFile$PolicyInfo;Ljava/net/URL;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // sun.security.provider.PolicyFile$PolicyInfo newInfo
        start local 2 // java.net.URL url
         0: .line 336
            new sun.security.provider.PolicyFile$2
            dup
            aload 0 /* this */
            aload 1 /* newInfo */
            invokespecial sun.security.provider.PolicyFile$2.<init>:(Lsun/security/provider/PolicyFile;Lsun/security/provider/PolicyFile$PolicyInfo;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         1: .line 344
            aload 2 /* url */
            ifnull 6
         2: .line 351
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 4
         3: .line 352
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "reading "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* url */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         4: .line 354
      StackMap locals:
      StackMap stack:
            new sun.security.provider.PolicyFile$3
            dup
            aload 0 /* this */
            aload 2 /* url */
            aload 1 /* newInfo */
            invokespecial sun.security.provider.PolicyFile$3.<init>:(Lsun/security/provider/PolicyFile;Ljava/net/URL;Lsun/security/provider/PolicyFile$PolicyInfo;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         5: .line 365
            goto 9
         6: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "java.security.policy"
            ldc "policy.url."
            aload 1 /* newInfo */
            invokevirtual sun.security.provider.PolicyFile.initPolicyFile:(Ljava/lang/String;Ljava/lang/String;Lsun/security/provider/PolicyFile$PolicyInfo;)Z
            istore 3 /* loaded_one */
        start local 3 // boolean loaded_one
         7: .line 375
            iload 3 /* loaded_one */
            ifne 9
         8: .line 377
            aload 0 /* this */
            aload 1 /* newInfo */
            invokevirtual sun.security.provider.PolicyFile.initStaticPolicy:(Lsun/security/provider/PolicyFile$PolicyInfo;)V
        end local 3 // boolean loaded_one
         9: .line 380
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.net.URL url
        end local 1 // sun.security.provider.PolicyFile$PolicyInfo newInfo
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lsun/security/provider/PolicyFile;
            0   10     1     newInfo  Lsun/security/provider/PolicyFile$PolicyInfo;
            0   10     2         url  Ljava/net/URL;
            7    9     3  loaded_one  Z
    MethodParameters:
         Name  Flags
      newInfo  final
      url      final

  private boolean initPolicyFile(java.lang.String, java.lang.String, sun.security.provider.PolicyFile$PolicyInfo);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lsun/security/provider/PolicyFile$PolicyInfo;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.lang.String propname
        start local 2 // java.lang.String urlname
        start local 3 // sun.security.provider.PolicyFile$PolicyInfo newInfo
         0: .line 385
            new sun.security.provider.PolicyFile$4
            dup
            aload 0 /* this */
            aload 1 /* propname */
            aload 3 /* newInfo */
            aload 2 /* urlname */
            invokespecial sun.security.provider.PolicyFile$4.<init>:(Lsun/security/provider/PolicyFile;Ljava/lang/String;Lsun/security/provider/PolicyFile$PolicyInfo;Ljava/lang/String;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
         1: .line 384
            istore 4 /* loadedPolicy */
        start local 4 // boolean loadedPolicy
         2: .line 473
            iload 4 /* loadedPolicy */
            ireturn
        end local 4 // boolean loadedPolicy
        end local 3 // sun.security.provider.PolicyFile$PolicyInfo newInfo
        end local 2 // java.lang.String urlname
        end local 1 // java.lang.String propname
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lsun/security/provider/PolicyFile;
            0    3     1      propname  Ljava/lang/String;
            0    3     2       urlname  Ljava/lang/String;
            0    3     3       newInfo  Lsun/security/provider/PolicyFile$PolicyInfo;
            2    3     4  loadedPolicy  Z
    MethodParameters:
          Name  Flags
      propname  final
      urlname   final
      newInfo   final

  private void initDefaultPolicy(sun.security.provider.PolicyFile$PolicyInfo);
    descriptor: (Lsun/security/provider/PolicyFile$PolicyInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // sun.security.provider.PolicyFile$PolicyInfo newInfo
         0: .line 477
            invokestatic jdk.internal.util.StaticProperty.javaHome:()Ljava/lang/String;
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 478
            ldc "lib"
            aastore
            dup
            iconst_1
         2: .line 479
            ldc "security"
            aastore
            dup
            iconst_2
         3: .line 480
            ldc "default.policy"
            aastore
         4: .line 477
            invokestatic java.nio.file.Path.of:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 2 /* defaultPolicy */
        start local 2 // java.nio.file.Path defaultPolicy
         5: .line 481
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 7
         6: .line 482
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "reading "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* defaultPolicy */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         7: .line 484
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aconst_null
            astore 3
            aconst_null
            astore 4
         8: aload 2 /* defaultPolicy */
            invokestatic java.nio.file.Files.newBufferedReader:(Ljava/nio/file/Path;)Ljava/io/BufferedReader;
            astore 5 /* br */
        start local 5 // java.io.BufferedReader br
         9: .line 486
            new sun.security.provider.PolicyParser
            dup
            aload 0 /* this */
            getfield sun.security.provider.PolicyFile.expandProperties:Z
            invokespecial sun.security.provider.PolicyParser.<init>:(Z)V
            astore 6 /* pp */
        start local 6 // sun.security.provider.PolicyParser pp
        10: .line 487
            aload 6 /* pp */
            aload 5 /* br */
            invokevirtual sun.security.provider.PolicyParser.read:(Ljava/io/Reader;)V
        11: .line 489
            aload 6 /* pp */
            invokevirtual sun.security.provider.PolicyParser.grantElements:()Ljava/util/Enumeration;
            astore 7 /* enum_ */
        start local 7 // java.util.Enumeration enum_
        12: .line 490
            goto 15
        13: .line 491
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyFile$PolicyInfo java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.BufferedReader sun.security.provider.PolicyParser java.util.Enumeration
      StackMap stack:
            aload 7 /* enum_ */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast sun.security.provider.PolicyParser$GrantEntry
            astore 8 /* ge */
        start local 8 // sun.security.provider.PolicyParser$GrantEntry ge
        14: .line 492
            aload 0 /* this */
            aload 8 /* ge */
            aconst_null
            aload 1 /* newInfo */
            invokevirtual sun.security.provider.PolicyFile.addGrantEntry:(Lsun/security/provider/PolicyParser$GrantEntry;Ljava/security/KeyStore;Lsun/security/provider/PolicyFile$PolicyInfo;)V
        end local 8 // sun.security.provider.PolicyParser$GrantEntry ge
        15: .line 490
      StackMap locals:
      StackMap stack:
            aload 7 /* enum_ */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 13
        end local 7 // java.util.Enumeration enum_
        end local 6 // sun.security.provider.PolicyParser pp
        16: .line 494
            aload 5 /* br */
            ifnull 24
            aload 5 /* br */
            invokevirtual java.io.BufferedReader.close:()V
            goto 24
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyFile$PolicyInfo java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.BufferedReader
      StackMap stack: java.lang.Throwable
        17: astore 3
            aload 5 /* br */
            ifnull 18
            aload 5 /* br */
            invokevirtual java.io.BufferedReader.close:()V
        end local 5 // java.io.BufferedReader br
      StackMap locals:
      StackMap stack:
        18: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 4
            aload 3
            ifnonnull 20
            aload 4
            astore 3
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 3
            aload 4
            if_acmpeq 21
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        21: aload 3
            athrow
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyFile$PolicyInfo java.nio.file.Path
      StackMap stack: java.lang.Exception
        22: astore 3 /* e */
        start local 3 // java.lang.Exception e
        23: .line 495
            new java.lang.InternalError
            dup
            ldc "Failed to load default.policy"
            aload 3 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception e
        24: .line 497
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.nio.file.Path defaultPolicy
        end local 1 // sun.security.provider.PolicyFile$PolicyInfo newInfo
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   25     0           this  Lsun/security/provider/PolicyFile;
            0   25     1        newInfo  Lsun/security/provider/PolicyFile$PolicyInfo;
            5   25     2  defaultPolicy  Ljava/nio/file/Path;
            9   18     5             br  Ljava/io/BufferedReader;
           10   16     6             pp  Lsun/security/provider/PolicyParser;
           12   16     7          enum_  Ljava/util/Enumeration<Lsun/security/provider/PolicyParser$GrantEntry;>;
           14   15     8             ge  Lsun/security/provider/PolicyParser$GrantEntry;
           23   24     3              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           9    16      17  any
           8    19      19  any
           7    22      22  Class java.lang.Exception
    MethodParameters:
         Name  Flags
      newInfo  

  private boolean init(java.net.URL, sun.security.provider.PolicyFile$PolicyInfo);
    descriptor: (Ljava/net/URL;Lsun/security/provider/PolicyFile$PolicyInfo;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.net.URL policy
        start local 2 // sun.security.provider.PolicyFile$PolicyInfo newInfo
         0: .line 507
            getstatic sun.security.provider.PolicyFile.badPolicyURLs:Ljava/util/Set;
            aload 1 /* policy */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 508
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 3
         2: .line 509
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "skipping bad policy file: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* policy */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         3: .line 511
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 514
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3
            aconst_null
            astore 4
         5: .line 515
            aload 0 /* this */
            aload 1 /* policy */
            invokestatic sun.security.util.PolicyUtil.getInputStream:(Ljava/net/URL;)Ljava/io/InputStream;
            invokevirtual sun.security.provider.PolicyFile.getInputStreamReader:(Ljava/io/InputStream;)Ljava/io/InputStreamReader;
         6: .line 514
            astore 5 /* isr */
        start local 5 // java.io.InputStreamReader isr
         7: .line 517
            new sun.security.provider.PolicyParser
            dup
            aload 0 /* this */
            getfield sun.security.provider.PolicyFile.expandProperties:Z
            invokespecial sun.security.provider.PolicyParser.<init>:(Z)V
            astore 6 /* pp */
        start local 6 // sun.security.provider.PolicyParser pp
         8: .line 518
            aload 6 /* pp */
            aload 5 /* isr */
            invokevirtual sun.security.provider.PolicyParser.read:(Ljava/io/Reader;)V
         9: .line 520
            aconst_null
            astore 7 /* keyStore */
        start local 7 // java.security.KeyStore keyStore
        10: .line 523
            aload 1 /* policy */
        11: .line 524
            aload 6 /* pp */
            invokevirtual sun.security.provider.PolicyParser.getKeyStoreUrl:()Ljava/lang/String;
        12: .line 525
            aload 6 /* pp */
            invokevirtual sun.security.provider.PolicyParser.getKeyStoreType:()Ljava/lang/String;
        13: .line 526
            aload 6 /* pp */
            invokevirtual sun.security.provider.PolicyParser.getKeyStoreProvider:()Ljava/lang/String;
        14: .line 527
            aload 6 /* pp */
            invokevirtual sun.security.provider.PolicyParser.getStorePassURL:()Ljava/lang/String;
        15: .line 528
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
        16: .line 522
            invokestatic sun.security.util.PolicyUtil.getKeyStore:(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lsun/security/util/Debug;)Ljava/security/KeyStore;
            astore 7 /* keyStore */
        17: .line 529
            goto 22
      StackMap locals: sun.security.provider.PolicyFile java.net.URL sun.security.provider.PolicyFile$PolicyInfo java.lang.Throwable java.lang.Throwable java.io.InputStreamReader sun.security.provider.PolicyParser java.security.KeyStore
      StackMap stack: java.lang.Exception
        18: astore 8 /* e */
        start local 8 // java.lang.Exception e
        19: .line 531
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 22
        20: .line 532
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ldc "Debug info only. Ignoring exception."
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        21: .line 533
            aload 8 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 8 // java.lang.Exception e
        22: .line 537
      StackMap locals:
      StackMap stack:
            aload 6 /* pp */
            invokevirtual sun.security.provider.PolicyParser.grantElements:()Ljava/util/Enumeration;
            astore 8 /* enum_ */
        start local 8 // java.util.Enumeration enum_
        23: .line 538
            goto 26
        24: .line 539
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 8 /* enum_ */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast sun.security.provider.PolicyParser$GrantEntry
            astore 9 /* ge */
        start local 9 // sun.security.provider.PolicyParser$GrantEntry ge
        25: .line 540
            aload 0 /* this */
            aload 9 /* ge */
            aload 7 /* keyStore */
            aload 2 /* newInfo */
            invokevirtual sun.security.provider.PolicyFile.addGrantEntry:(Lsun/security/provider/PolicyParser$GrantEntry;Ljava/security/KeyStore;Lsun/security/provider/PolicyFile$PolicyInfo;)V
        end local 9 // sun.security.provider.PolicyParser$GrantEntry ge
        26: .line 538
      StackMap locals:
      StackMap stack:
            aload 8 /* enum_ */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 24
        27: .line 543
            aload 5 /* isr */
            ifnull 28
            aload 5 /* isr */
            invokevirtual java.io.InputStreamReader.close:()V
        28: .line 542
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 8 // java.util.Enumeration enum_
        end local 7 // java.security.KeyStore keyStore
        end local 6 // sun.security.provider.PolicyParser pp
      StackMap locals: sun.security.provider.PolicyFile java.net.URL sun.security.provider.PolicyFile$PolicyInfo java.lang.Throwable java.lang.Throwable java.io.InputStreamReader
      StackMap stack: java.lang.Throwable
        29: astore 3
        30: .line 543
            aload 5 /* isr */
            ifnull 31
            aload 5 /* isr */
            invokevirtual java.io.InputStreamReader.close:()V
        end local 5 // java.io.InputStreamReader isr
      StackMap locals:
      StackMap stack:
        31: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 4
            aload 3
            ifnonnull 33
            aload 4
            astore 3
            goto 34
      StackMap locals:
      StackMap stack:
        33: aload 3
            aload 4
            if_acmpeq 34
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        34: aload 3
            athrow
      StackMap locals: sun.security.provider.PolicyFile java.net.URL sun.security.provider.PolicyFile$PolicyInfo
      StackMap stack: sun.security.provider.PolicyParser$ParsingException
        35: astore 3 /* pe */
        start local 3 // sun.security.provider.PolicyParser$ParsingException pe
        36: .line 545
            getstatic sun.security.provider.PolicyFile.badPolicyURLs:Ljava/util/Set;
            aload 1 /* policy */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        37: .line 546
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* policy */
            aastore
            dup
            iconst_1
            aload 3 /* pe */
            invokevirtual sun.security.provider.PolicyParser$ParsingException.getNonlocalizedMessage:()Ljava/lang/String;
            aastore
            astore 4 /* source */
        start local 4 // java.lang.Object[] source
        38: .line 547
            getstatic java.lang.System.err:Ljava/io/PrintStream;
        39: .line 548
            ldc "java.security.policy.error.parsing.policy.message"
            aload 4 /* source */
        40: .line 547
            invokestatic sun.security.util.LocalizedMessage.getNonlocalized:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        41: .line 549
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 49
        42: .line 550
            aload 3 /* pe */
            invokevirtual sun.security.provider.PolicyParser$ParsingException.printStackTrace:()V
        end local 4 // java.lang.Object[] source
        end local 3 // sun.security.provider.PolicyParser$ParsingException pe
        43: goto 49
        44: .line 552
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        45: .line 553
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 49
        46: .line 554
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "error parsing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* policy */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        47: .line 555
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            aload 3 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        48: .line 556
            aload 3 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 3 // java.lang.Exception e
        49: .line 560
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // sun.security.provider.PolicyFile$PolicyInfo newInfo
        end local 1 // java.net.URL policy
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   50     0      this  Lsun/security/provider/PolicyFile;
            0   50     1    policy  Ljava/net/URL;
            0   50     2   newInfo  Lsun/security/provider/PolicyFile$PolicyInfo;
            7   31     5       isr  Ljava/io/InputStreamReader;
            8   29     6        pp  Lsun/security/provider/PolicyParser;
           10   29     7  keyStore  Ljava/security/KeyStore;
           19   22     8         e  Ljava/lang/Exception;
           23   29     8     enum_  Ljava/util/Enumeration<Lsun/security/provider/PolicyParser$GrantEntry;>;
           25   26     9        ge  Lsun/security/provider/PolicyParser$GrantEntry;
           36   43     3        pe  Lsun/security/provider/PolicyParser$ParsingException;
           38   43     4    source  [Ljava/lang/Object;
           45   49     3         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          10    17      18  Class java.lang.Exception
           7    27      29  any
           5    28      32  any
          29    32      32  any
           4    28      35  Class sun.security.provider.PolicyParser$ParsingException
          29    35      35  Class sun.security.provider.PolicyParser$ParsingException
           4    28      44  Class java.lang.Exception
          29    35      44  Class java.lang.Exception
    MethodParameters:
         Name  Flags
      policy   
      newInfo  

  private java.io.InputStreamReader getInputStreamReader(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/io/InputStreamReader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.io.InputStream is
         0: .line 570
            aload 0 /* this */
            getfield sun.security.provider.PolicyFile.notUtf8:Z
            ifeq 2
         1: .line 571
            new java.io.InputStreamReader
            dup
            aload 1 /* is */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            goto 3
         2: .line 572
      StackMap locals:
      StackMap stack:
            new java.io.InputStreamReader
            dup
            aload 1 /* is */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
         3: .line 570
      StackMap locals:
      StackMap stack: java.io.InputStreamReader
            areturn
        end local 1 // java.io.InputStream is
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/provider/PolicyFile;
            0    4     1    is  Ljava/io/InputStream;
    MethodParameters:
      Name  Flags
      is    

  private void initStaticPolicy(sun.security.provider.PolicyFile$PolicyInfo);
    descriptor: (Lsun/security/provider/PolicyFile$PolicyInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // sun.security.provider.PolicyFile$PolicyInfo newInfo
         0: .line 576
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 2
         1: .line 577
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ldc "Initializing with static permissions"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         2: .line 579
      StackMap locals:
      StackMap stack:
            new sun.security.provider.PolicyFile$5
            dup
            aload 0 /* this */
            aload 1 /* newInfo */
            invokespecial sun.security.provider.PolicyFile$5.<init>:(Lsun/security/provider/PolicyFile;Lsun/security/provider/PolicyFile$PolicyInfo;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         3: .line 636
            return
        end local 1 // sun.security.provider.PolicyFile$PolicyInfo newInfo
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lsun/security/provider/PolicyFile;
            0    4     1  newInfo  Lsun/security/provider/PolicyFile$PolicyInfo;
    MethodParameters:
         Name  Flags
      newInfo  final

  private java.security.CodeSource getCodeSource(sun.security.provider.PolicyParser$GrantEntry, java.security.KeyStore, sun.security.provider.PolicyFile$PolicyInfo);
    descriptor: (Lsun/security/provider/PolicyParser$GrantEntry;Ljava/security/KeyStore;Lsun/security/provider/PolicyFile$PolicyInfo;)Ljava/security/CodeSource;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // sun.security.provider.PolicyParser$GrantEntry ge
        start local 2 // java.security.KeyStore keyStore
        start local 3 // sun.security.provider.PolicyFile$PolicyInfo newInfo
         0: .line 646
            aconst_null
            astore 4 /* certs */
        start local 4 // java.security.cert.Certificate[] certs
         1: .line 647
            aload 1 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.signedBy:Ljava/lang/String;
            ifnull 9
         2: .line 648
            aload 0 /* this */
            aload 2 /* keyStore */
            aload 1 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.signedBy:Ljava/lang/String;
            aload 3 /* newInfo */
            invokevirtual sun.security.provider.PolicyFile.getCertificates:(Ljava/security/KeyStore;Ljava/lang/String;Lsun/security/provider/PolicyFile$PolicyInfo;)[Ljava/security/cert/Certificate;
            astore 4 /* certs */
         3: .line 649
            aload 4 /* certs */
            ifnonnull 9
         4: .line 652
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 8
         5: .line 653
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  -- No certs for alias '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 654
            aload 1 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.signedBy:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' - ignoring entry"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 653
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         8: .line 656
      StackMap locals: java.security.cert.Certificate[]
      StackMap stack:
            aconst_null
            areturn
         9: .line 662
      StackMap locals:
      StackMap stack:
            aload 1 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.codeBase:Ljava/lang/String;
            ifnull 12
        10: .line 663
            new java.net.URL
            dup
            aload 1 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.codeBase:Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 5 /* location */
        start local 5 // java.net.URL location
        11: goto 13
        end local 5 // java.net.URL location
        12: .line 665
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* location */
        start local 5 // java.net.URL location
        13: .line 667
      StackMap locals: java.net.URL
      StackMap stack:
            aload 0 /* this */
            new java.security.CodeSource
            dup
            aload 5 /* location */
            aload 4 /* certs */
            invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/cert/Certificate;)V
            iconst_0
            invokevirtual sun.security.provider.PolicyFile.canonicalizeCodebase:(Ljava/security/CodeSource;Z)Ljava/security/CodeSource;
            areturn
        end local 5 // java.net.URL location
        end local 4 // java.security.cert.Certificate[] certs
        end local 3 // sun.security.provider.PolicyFile$PolicyInfo newInfo
        end local 2 // java.security.KeyStore keyStore
        end local 1 // sun.security.provider.PolicyParser$GrantEntry ge
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lsun/security/provider/PolicyFile;
            0   14     1        ge  Lsun/security/provider/PolicyParser$GrantEntry;
            0   14     2  keyStore  Ljava/security/KeyStore;
            0   14     3   newInfo  Lsun/security/provider/PolicyFile$PolicyInfo;
            1   14     4     certs  [Ljava/security/cert/Certificate;
           11   12     5  location  Ljava/net/URL;
           13   14     5  location  Ljava/net/URL;
    Exceptions:
      throws java.net.MalformedURLException
    MethodParameters:
          Name  Flags
      ge        
      keyStore  
      newInfo   

  private void addGrantEntry(sun.security.provider.PolicyParser$GrantEntry, java.security.KeyStore, sun.security.provider.PolicyFile$PolicyInfo);
    descriptor: (Lsun/security/provider/PolicyParser$GrantEntry;Ljava/security/KeyStore;Lsun/security/provider/PolicyFile$PolicyInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // sun.security.provider.PolicyParser$GrantEntry ge
        start local 2 // java.security.KeyStore keyStore
        start local 3 // sun.security.provider.PolicyFile$PolicyInfo newInfo
         0: .line 676
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 9
         1: .line 677
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ldc "Adding policy entry: "
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         2: .line 678
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  signedBy "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.signedBy:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         3: .line 679
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  codeBase "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.codeBase:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         4: .line 680
            aload 1 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.principals:Ljava/util/LinkedList;
            ifnull 9
         5: .line 681
            aload 1 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.principals:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$GrantEntry java.security.KeyStore sun.security.provider.PolicyFile$PolicyInfo top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.provider.PolicyParser$PrincipalEntry
            astore 4 /* pppe */
        start local 4 // sun.security.provider.PolicyParser$PrincipalEntry pppe
         7: .line 682
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* pppe */
            invokevirtual sun.security.provider.PolicyParser$PrincipalEntry.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 4 // sun.security.provider.PolicyParser$PrincipalEntry pppe
         8: .line 681
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 688
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$GrantEntry java.security.KeyStore sun.security.provider.PolicyFile$PolicyInfo
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ge */
            aload 2 /* keyStore */
            aload 3 /* newInfo */
            invokevirtual sun.security.provider.PolicyFile.getCodeSource:(Lsun/security/provider/PolicyParser$GrantEntry;Ljava/security/KeyStore;Lsun/security/provider/PolicyFile$PolicyInfo;)Ljava/security/CodeSource;
            astore 4 /* codesource */
        start local 4 // java.security.CodeSource codesource
        10: .line 690
            aload 4 /* codesource */
            ifnonnull 12
        11: return
        12: .line 696
      StackMap locals: java.security.CodeSource
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.principals:Ljava/util/LinkedList;
            aload 2 /* keyStore */
            invokevirtual sun.security.provider.PolicyFile.replacePrincipals:(Ljava/util/List;Ljava/security/KeyStore;)Z
            ifne 14
        13: .line 697
            return
        14: .line 698
      StackMap locals:
      StackMap stack:
            new sun.security.provider.PolicyFile$PolicyEntry
            dup
            aload 4 /* codesource */
            aload 1 /* ge */
            getfield sun.security.provider.PolicyParser$GrantEntry.principals:Ljava/util/LinkedList;
            invokespecial sun.security.provider.PolicyFile$PolicyEntry.<init>:(Ljava/security/CodeSource;Ljava/util/List;)V
            astore 5 /* entry */
        start local 5 // sun.security.provider.PolicyFile$PolicyEntry entry
        15: .line 700
            aload 1 /* ge */
            invokevirtual sun.security.provider.PolicyParser$GrantEntry.permissionElements:()Ljava/util/Enumeration;
        16: .line 699
            astore 6 /* enum_ */
        start local 6 // java.util.Enumeration enum_
        17: .line 701
            goto 88
        18: .line 702
      StackMap locals: sun.security.provider.PolicyFile$PolicyEntry java.util.Enumeration
      StackMap stack:
            aload 6 /* enum_ */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast sun.security.provider.PolicyParser$PermissionEntry
            astore 7 /* pe */
        start local 7 // sun.security.provider.PolicyParser$PermissionEntry pe
        19: .line 706
            aload 0 /* this */
            aload 7 /* pe */
            aload 2 /* keyStore */
            invokevirtual sun.security.provider.PolicyFile.expandPermissionName:(Lsun/security/provider/PolicyParser$PermissionEntry;Ljava/security/KeyStore;)V
        20: .line 710
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.permission:Ljava/lang/String;
        21: .line 711
            ldc "javax.security.auth.PrivateCredentialPermission"
        22: .line 710
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
        23: .line 711
            ifeq 28
        24: .line 712
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            ldc " self"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 28
        25: .line 713
            aload 7 /* pe */
            new java.lang.StringBuilder
            dup
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            iconst_0
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            ldc "self"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        26: .line 714
            ldc "${{self}}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        27: .line 713
            putfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
        28: .line 717
      StackMap locals: sun.security.provider.PolicyParser$PermissionEntry
      StackMap stack:
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            ifnull 42
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            ldc "${{self}}"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpeq 42
        29: .line 723
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.signedBy:Ljava/lang/String;
            ifnull 35
        30: .line 724
            aload 0 /* this */
            aload 2 /* keyStore */
        31: .line 725
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.signedBy:Ljava/lang/String;
        32: .line 726
            aload 3 /* newInfo */
        33: .line 724
            invokevirtual sun.security.provider.PolicyFile.getCertificates:(Ljava/security/KeyStore;Ljava/lang/String;Lsun/security/provider/PolicyFile$PolicyInfo;)[Ljava/security/cert/Certificate;
            astore 9 /* certs */
        start local 9 // java.security.cert.Certificate[] certs
        34: .line 727
            goto 36
        end local 9 // java.security.cert.Certificate[] certs
        35: .line 728
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 9 /* certs */
        start local 9 // java.security.cert.Certificate[] certs
        36: .line 730
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$GrantEntry java.security.KeyStore sun.security.provider.PolicyFile$PolicyInfo java.security.CodeSource sun.security.provider.PolicyFile$PolicyEntry java.util.Enumeration sun.security.provider.PolicyParser$PermissionEntry top java.security.cert.Certificate[]
      StackMap stack:
            new sun.security.provider.PolicyFile$SelfPermission
            dup
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.permission:Ljava/lang/String;
        37: .line 731
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
        38: .line 732
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.action:Ljava/lang/String;
        39: .line 733
            aload 9 /* certs */
        40: .line 730
            invokespecial sun.security.provider.PolicyFile$SelfPermission.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/security/cert/Certificate;)V
            astore 8 /* perm */
        end local 9 // java.security.cert.Certificate[] certs
        start local 8 // java.security.Permission perm
        41: .line 734
            goto 46
        end local 8 // java.security.Permission perm
        42: .line 735
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$GrantEntry java.security.KeyStore sun.security.provider.PolicyFile$PolicyInfo java.security.CodeSource sun.security.provider.PolicyFile$PolicyEntry java.util.Enumeration sun.security.provider.PolicyParser$PermissionEntry
      StackMap stack:
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.permission:Ljava/lang/String;
        43: .line 736
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
        44: .line 737
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.action:Ljava/lang/String;
        45: .line 735
            invokestatic sun.security.provider.PolicyFile.getInstance:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Permission;
            astore 8 /* perm */
        start local 8 // java.security.Permission perm
        46: .line 739
      StackMap locals: java.security.Permission
      StackMap stack:
            aload 5 /* entry */
            aload 8 /* perm */
            invokevirtual sun.security.provider.PolicyFile$PolicyEntry.add:(Ljava/security/Permission;)V
        47: .line 740
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 88
        48: .line 741
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* perm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 8 // java.security.Permission perm
        49: .line 743
            goto 88
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$GrantEntry java.security.KeyStore sun.security.provider.PolicyFile$PolicyInfo java.security.CodeSource sun.security.provider.PolicyFile$PolicyEntry java.util.Enumeration sun.security.provider.PolicyParser$PermissionEntry
      StackMap stack: java.lang.ClassNotFoundException
        50: pop
        51: .line 745
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.signedBy:Ljava/lang/String;
            ifnull 57
        52: .line 746
            aload 0 /* this */
            aload 2 /* keyStore */
        53: .line 747
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.signedBy:Ljava/lang/String;
        54: .line 748
            aload 3 /* newInfo */
        55: .line 746
            invokevirtual sun.security.provider.PolicyFile.getCertificates:(Ljava/security/KeyStore;Ljava/lang/String;Lsun/security/provider/PolicyFile$PolicyInfo;)[Ljava/security/cert/Certificate;
            astore 8 /* certs */
        start local 8 // java.security.cert.Certificate[] certs
        56: .line 749
            goto 58
        end local 8 // java.security.cert.Certificate[] certs
        57: .line 750
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 8 /* certs */
        start local 8 // java.security.cert.Certificate[] certs
        58: .line 755
      StackMap locals: java.security.cert.Certificate[]
      StackMap stack:
            aload 8 /* certs */
            ifnonnull 59
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.signedBy:Ljava/lang/String;
            ifnonnull 88
        59: .line 756
      StackMap locals:
      StackMap stack:
            new java.security.UnresolvedPermission
            dup
        60: .line 757
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.permission:Ljava/lang/String;
        61: .line 758
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
        62: .line 759
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.action:Ljava/lang/String;
        63: .line 760
            aload 8 /* certs */
        64: .line 756
            invokespecial java.security.UnresolvedPermission.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/security/cert/Certificate;)V
            astore 9 /* perm */
        start local 9 // java.security.Permission perm
        65: .line 761
            aload 5 /* entry */
            aload 9 /* perm */
            invokevirtual sun.security.provider.PolicyFile$PolicyEntry.add:(Ljava/security/Permission;)V
        66: .line 762
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 88
        67: .line 763
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* perm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 9 // java.security.Permission perm
        end local 8 // java.security.cert.Certificate[] certs
        68: goto 88
        69: .line 766
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$GrantEntry java.security.KeyStore sun.security.provider.PolicyFile$PolicyInfo java.security.CodeSource sun.security.provider.PolicyFile$PolicyEntry java.util.Enumeration sun.security.provider.PolicyParser$PermissionEntry
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 8 /* ite */
        start local 8 // java.lang.reflect.InvocationTargetException ite
        70: .line 767
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.permission:Ljava/lang/String;
            aastore
            dup
            iconst_1
        71: .line 768
            aload 8 /* ite */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            aastore
        72: .line 767
            astore 9 /* source */
        start local 9 // java.lang.Object[] source
        73: .line 769
            getstatic java.lang.System.err:Ljava/io/PrintStream;
        74: .line 771
            ldc "java.security.policy.error.adding.Permission.perm.message"
        75: .line 772
            aload 9 /* source */
        76: .line 770
            invokestatic sun.security.util.LocalizedMessage.getNonlocalized:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        77: .line 769
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 9 // java.lang.Object[] source
        end local 8 // java.lang.reflect.InvocationTargetException ite
        78: goto 88
        79: .line 773
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 8 /* e */
        start local 8 // java.lang.Exception e
        80: .line 774
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.permission:Ljava/lang/String;
            aastore
            dup
            iconst_1
        81: .line 775
            aload 8 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            aastore
        82: .line 774
            astore 9 /* source */
        start local 9 // java.lang.Object[] source
        83: .line 776
            getstatic java.lang.System.err:Ljava/io/PrintStream;
        84: .line 778
            ldc "java.security.policy.error.adding.Permission.perm.message"
        85: .line 779
            aload 9 /* source */
        86: .line 777
            invokestatic sun.security.util.LocalizedMessage.getNonlocalized:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        87: .line 776
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 9 // java.lang.Object[] source
        end local 8 // java.lang.Exception e
        end local 7 // sun.security.provider.PolicyParser$PermissionEntry pe
        88: .line 701
      StackMap locals:
      StackMap stack:
            aload 6 /* enum_ */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 18
        89: .line 784
            aload 3 /* newInfo */
            getfield sun.security.provider.PolicyFile$PolicyInfo.policyEntries:Ljava/util/List;
            aload 5 /* entry */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.util.Enumeration enum_
        end local 5 // sun.security.provider.PolicyFile$PolicyEntry entry
        end local 4 // java.security.CodeSource codesource
        90: .line 785
            goto 98
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$GrantEntry java.security.KeyStore sun.security.provider.PolicyFile$PolicyInfo
      StackMap stack: java.lang.Exception
        91: astore 4 /* e */
        start local 4 // java.lang.Exception e
        92: .line 786
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            aastore
            astore 5 /* source */
        start local 5 // java.lang.Object[] source
        93: .line 787
            getstatic java.lang.System.err:Ljava/io/PrintStream;
        94: .line 789
            ldc "java.security.policy.error.adding.Entry.message"
        95: .line 790
            aload 5 /* source */
        96: .line 788
            invokestatic sun.security.util.LocalizedMessage.getNonlocalized:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        97: .line 787
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // java.lang.Object[] source
        end local 4 // java.lang.Exception e
        98: .line 792
      StackMap locals:
      StackMap stack:
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 100
        99: .line 793
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
       100: .line 794
      StackMap locals:
      StackMap stack:
            return
        end local 3 // sun.security.provider.PolicyFile$PolicyInfo newInfo
        end local 2 // java.security.KeyStore keyStore
        end local 1 // sun.security.provider.PolicyParser$GrantEntry ge
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0  101     0        this  Lsun/security/provider/PolicyFile;
            0  101     1          ge  Lsun/security/provider/PolicyParser$GrantEntry;
            0  101     2    keyStore  Ljava/security/KeyStore;
            0  101     3     newInfo  Lsun/security/provider/PolicyFile$PolicyInfo;
            7    8     4        pppe  Lsun/security/provider/PolicyParser$PrincipalEntry;
           10   90     4  codesource  Ljava/security/CodeSource;
           15   90     5       entry  Lsun/security/provider/PolicyFile$PolicyEntry;
           17   90     6       enum_  Ljava/util/Enumeration<Lsun/security/provider/PolicyParser$PermissionEntry;>;
           19   88     7          pe  Lsun/security/provider/PolicyParser$PermissionEntry;
           41   42     8        perm  Ljava/security/Permission;
           46   49     8        perm  Ljava/security/Permission;
           34   35     9       certs  [Ljava/security/cert/Certificate;
           36   41     9       certs  [Ljava/security/cert/Certificate;
           56   57     8       certs  [Ljava/security/cert/Certificate;
           58   68     8       certs  [Ljava/security/cert/Certificate;
           65   68     9        perm  Ljava/security/Permission;
           70   78     8         ite  Ljava/lang/reflect/InvocationTargetException;
           73   78     9      source  [Ljava/lang/Object;
           80   88     8           e  Ljava/lang/Exception;
           83   88     9      source  [Ljava/lang/Object;
           92   98     4           e  Ljava/lang/Exception;
           93   98     5      source  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
          19    49      50  Class java.lang.ClassNotFoundException
          19    49      69  Class java.lang.reflect.InvocationTargetException
          19    49      79  Class java.lang.Exception
           9    11      91  Class java.lang.Exception
          12    13      91  Class java.lang.Exception
          14    90      91  Class java.lang.Exception
    MethodParameters:
          Name  Flags
      ge        
      keyStore  
      newInfo   

  private static final java.security.Permission getInstance(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Permission;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.lang.String type
        start local 1 // java.lang.String name
        start local 2 // java.lang.String actions
         0: .line 835
            aload 0 /* type */
            iconst_0
            aconst_null
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 3 /* pc */
        start local 3 // java.lang.Class pc
         1: .line 836
            aload 3 /* pc */
            aload 1 /* name */
            aload 2 /* actions */
            invokestatic sun.security.provider.PolicyFile.getKnownPermission:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Permission;
            astore 4 /* answer */
        start local 4 // java.security.Permission answer
         2: .line 837
            aload 4 /* answer */
            ifnull 4
         3: .line 838
            aload 4 /* answer */
            areturn
         4: .line 840
      StackMap locals: java.lang.Class java.security.Permission
      StackMap stack:
            ldc Ljava/security/Permission;
            aload 3 /* pc */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 6
         5: .line 842
            new java.lang.ClassCastException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* type */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " is not a Permission"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 845
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ifnonnull 21
            aload 2 /* actions */
            ifnonnull 21
         7: .line 847
            aload 3 /* pc */
            getstatic sun.security.provider.PolicyFile.PARAMS0:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 5 /* c */
        start local 5 // java.lang.reflect.Constructor c
         8: .line 848
            aload 5 /* c */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
         9: areturn
        end local 5 // java.lang.reflect.Constructor c
        10: .line 849
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            pop
        11: .line 851
            aload 3 /* pc */
            getstatic sun.security.provider.PolicyFile.PARAMS1:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 5 /* c */
        start local 5 // java.lang.reflect.Constructor c
        12: .line 852
            aload 5 /* c */
        13: .line 853
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* name */
            aastore
        14: .line 852
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
        15: areturn
        end local 5 // java.lang.reflect.Constructor c
        16: .line 854
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            pop
        17: .line 855
            aload 3 /* pc */
            getstatic sun.security.provider.PolicyFile.PARAMS2:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 5 /* c */
        start local 5 // java.lang.reflect.Constructor c
        18: .line 856
            aload 5 /* c */
        19: .line 857
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* name */
            aastore
            dup
            iconst_1
            aload 2 /* actions */
            aastore
        20: .line 856
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
            areturn
        end local 5 // java.lang.reflect.Constructor c
        21: .line 861
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ifnull 30
            aload 2 /* actions */
            ifnonnull 30
        22: .line 863
            aload 3 /* pc */
            getstatic sun.security.provider.PolicyFile.PARAMS1:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 5 /* c */
        start local 5 // java.lang.reflect.Constructor c
        23: .line 864
            aload 5 /* c */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* name */
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
        24: areturn
        end local 5 // java.lang.reflect.Constructor c
        25: .line 865
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            pop
        26: .line 866
            aload 3 /* pc */
            getstatic sun.security.provider.PolicyFile.PARAMS2:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 5 /* c */
        start local 5 // java.lang.reflect.Constructor c
        27: .line 867
            aload 5 /* c */
        28: .line 868
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* name */
            aastore
            dup
            iconst_1
            aload 2 /* actions */
            aastore
        29: .line 867
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
            areturn
        end local 5 // java.lang.reflect.Constructor c
        30: .line 871
      StackMap locals:
      StackMap stack:
            aload 3 /* pc */
            getstatic sun.security.provider.PolicyFile.PARAMS2:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 5 /* c */
        start local 5 // java.lang.reflect.Constructor c
        31: .line 872
            aload 5 /* c */
        32: .line 873
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* name */
            aastore
            dup
            iconst_1
            aload 2 /* actions */
            aastore
        33: .line 872
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
            areturn
        end local 5 // java.lang.reflect.Constructor c
        end local 4 // java.security.Permission answer
        end local 3 // java.lang.Class pc
        end local 2 // java.lang.String actions
        end local 1 // java.lang.String name
        end local 0 // java.lang.String type
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   34     0     type  Ljava/lang/String;
            0   34     1     name  Ljava/lang/String;
            0   34     2  actions  Ljava/lang/String;
            1   34     3       pc  Ljava/lang/Class<*>;
            2   34     4   answer  Ljava/security/Permission;
            8   10     5        c  Ljava/lang/reflect/Constructor<*>;
           12   16     5        c  Ljava/lang/reflect/Constructor<*>;
           18   21     5        c  Ljava/lang/reflect/Constructor<*>;
           23   25     5        c  Ljava/lang/reflect/Constructor<*>;
           27   30     5        c  Ljava/lang/reflect/Constructor<*>;
           31   34     5        c  Ljava/lang/reflect/Constructor<*>;
      Exception table:
        from    to  target  type
           7     9      10  Class java.lang.NoSuchMethodException
          11    15      16  Class java.lang.NoSuchMethodException
          22    24      25  Class java.lang.NoSuchMethodException
    Exceptions:
      throws java.lang.ClassNotFoundException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException
    MethodParameters:
         Name  Flags
      type     
      name     
      actions  

  private static java.security.Permission getKnownPermission(java.lang.Class<?>, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Permission;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.Class claz
        start local 1 // java.lang.String name
        start local 2 // java.lang.String actions
         0: .line 885
            aload 0 /* claz */
            ldc Ljava/io/FilePermission;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 886
            new java.io.FilePermission
            dup
            aload 1 /* name */
            aload 2 /* actions */
            invokespecial java.io.FilePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
         2: .line 887
      StackMap locals:
      StackMap stack:
            aload 0 /* claz */
            ldc Ljava/net/SocketPermission;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 888
            new java.net.SocketPermission
            dup
            aload 1 /* name */
            aload 2 /* actions */
            invokespecial java.net.SocketPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
         4: .line 889
      StackMap locals:
      StackMap stack:
            aload 0 /* claz */
            ldc Ljava/lang/RuntimePermission;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 890
            new java.lang.RuntimePermission
            dup
            aload 1 /* name */
            aload 2 /* actions */
            invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
         6: .line 891
      StackMap locals:
      StackMap stack:
            aload 0 /* claz */
            ldc Ljava/util/PropertyPermission;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 892
            new java.util.PropertyPermission
            dup
            aload 1 /* name */
            aload 2 /* actions */
            invokespecial java.util.PropertyPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
         8: .line 893
      StackMap locals:
      StackMap stack:
            aload 0 /* claz */
            ldc Ljava/net/NetPermission;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 894
            new java.net.NetPermission
            dup
            aload 1 /* name */
            aload 2 /* actions */
            invokespecial java.net.NetPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        10: .line 895
      StackMap locals:
      StackMap stack:
            aload 0 /* claz */
            ldc Ljava/security/AllPermission;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 896
            getstatic sun.security.util.SecurityConstants.ALL_PERMISSION:Ljava/security/AllPermission;
            areturn
        12: .line 897
      StackMap locals:
      StackMap stack:
            aload 0 /* claz */
            ldc Ljava/security/SecurityPermission;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 898
            new java.security.SecurityPermission
            dup
            aload 1 /* name */
            aload 2 /* actions */
            invokespecial java.security.SecurityPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        14: .line 900
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.String actions
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class claz
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     claz  Ljava/lang/Class<*>;
            0   15     1     name  Ljava/lang/String;
            0   15     2  actions  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Permission;
    MethodParameters:
         Name  Flags
      claz     
      name     
      actions  

  private static java.security.Principal getKnownPrincipal(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/security/Principal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class claz
        start local 1 // java.lang.String name
         0: .line 910
            aload 0 /* claz */
            ldc Ljavax/security/auth/x500/X500Principal;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 911
            new javax.security.auth.x500.X500Principal
            dup
            aload 1 /* name */
            invokespecial javax.security.auth.x500.X500Principal.<init>:(Ljava/lang/String;)V
            areturn
         2: .line 913
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class claz
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  claz  Ljava/lang/Class<*>;
            0    3     1  name  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)Ljava/security/Principal;
    MethodParameters:
      Name  Flags
      claz  
      name  

  private java.security.cert.Certificate[] getCertificates(java.security.KeyStore, java.lang.String, sun.security.provider.PolicyFile$PolicyInfo);
    descriptor: (Ljava/security/KeyStore;Ljava/lang/String;Lsun/security/provider/PolicyFile$PolicyInfo;)[Ljava/security/cert/Certificate;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.security.KeyStore keyStore
        start local 2 // java.lang.String aliases
        start local 3 // sun.security.provider.PolicyFile$PolicyInfo newInfo
         0: .line 923
            aconst_null
            astore 4 /* vcerts */
        start local 4 // java.util.List vcerts
         1: .line 925
            new java.util.StringTokenizer
            dup
            aload 2 /* aliases */
            ldc ","
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 5 /* st */
        start local 5 // java.util.StringTokenizer st
         2: .line 926
            iconst_0
            istore 6 /* n */
        start local 6 // int n
         3: .line 928
            goto 24
         4: .line 929
      StackMap locals: java.util.List java.util.StringTokenizer int
      StackMap stack:
            aload 5 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 7 /* alias */
        start local 7 // java.lang.String alias
         5: .line 930
            iinc 6 /* n */ 1
         6: .line 931
            aconst_null
            astore 8 /* cert */
        start local 8 // java.security.cert.Certificate cert
         7: .line 933
            aload 3 /* newInfo */
            getfield sun.security.provider.PolicyFile$PolicyInfo.aliasMapping:Ljava/util/Map;
            dup
            astore 9
            monitorenter
         8: .line 934
            aload 3 /* newInfo */
            getfield sun.security.provider.PolicyFile$PolicyInfo.aliasMapping:Ljava/util/Map;
            aload 7 /* alias */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.cert.Certificate
            astore 8 /* cert */
         9: .line 936
            aload 8 /* cert */
            ifnonnull 16
            aload 1 /* keyStore */
            ifnull 16
        10: .line 939
            aload 1 /* keyStore */
            aload 7 /* alias */
            invokevirtual java.security.KeyStore.getCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
            astore 8 /* cert */
        11: .line 940
            goto 13
      StackMap locals: sun.security.provider.PolicyFile java.security.KeyStore java.lang.String sun.security.provider.PolicyFile$PolicyInfo java.util.List java.util.StringTokenizer int java.lang.String java.security.cert.Certificate java.util.Map
      StackMap stack: java.security.KeyStoreException
        12: pop
        13: .line 944
      StackMap locals:
      StackMap stack:
            aload 8 /* cert */
            ifnull 16
        14: .line 945
            aload 3 /* newInfo */
            getfield sun.security.provider.PolicyFile$PolicyInfo.aliasMapping:Ljava/util/Map;
            aload 7 /* alias */
            aload 8 /* cert */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 946
            aload 3 /* newInfo */
            getfield sun.security.provider.PolicyFile$PolicyInfo.aliasMapping:Ljava/util/Map;
            aload 8 /* cert */
            aload 7 /* alias */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 933
      StackMap locals:
      StackMap stack:
            aload 9
            monitorexit
        17: goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: aload 9
            monitorexit
        19: athrow
        20: .line 951
      StackMap locals:
      StackMap stack:
            aload 8 /* cert */
            ifnull 24
        21: .line 952
            aload 4 /* vcerts */
            ifnonnull 23
        22: .line 953
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* vcerts */
        23: .line 954
      StackMap locals:
      StackMap stack:
            aload 4 /* vcerts */
            aload 8 /* cert */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.security.cert.Certificate cert
        end local 7 // java.lang.String alias
        24: .line 928
      StackMap locals:
      StackMap stack:
            aload 5 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 4
        25: .line 959
            aload 4 /* vcerts */
            ifnull 29
            iload 6 /* n */
            aload 4 /* vcerts */
            invokeinterface java.util.List.size:()I
            if_icmpne 29
        26: .line 960
            aload 4 /* vcerts */
            invokeinterface java.util.List.size:()I
            anewarray java.security.cert.Certificate
            astore 7 /* certs */
        start local 7 // java.security.cert.Certificate[] certs
        27: .line 961
            aload 4 /* vcerts */
            aload 7 /* certs */
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
        28: .line 962
            aload 7 /* certs */
            areturn
        end local 7 // java.security.cert.Certificate[] certs
        29: .line 964
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 6 // int n
        end local 5 // java.util.StringTokenizer st
        end local 4 // java.util.List vcerts
        end local 3 // sun.security.provider.PolicyFile$PolicyInfo newInfo
        end local 2 // java.lang.String aliases
        end local 1 // java.security.KeyStore keyStore
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   30     0      this  Lsun/security/provider/PolicyFile;
            0   30     1  keyStore  Ljava/security/KeyStore;
            0   30     2   aliases  Ljava/lang/String;
            0   30     3   newInfo  Lsun/security/provider/PolicyFile$PolicyInfo;
            1   30     4    vcerts  Ljava/util/List<Ljava/security/cert/Certificate;>;
            2   30     5        st  Ljava/util/StringTokenizer;
            3   30     6         n  I
            5   24     7     alias  Ljava/lang/String;
            7   24     8      cert  Ljava/security/cert/Certificate;
           27   29     7     certs  [Ljava/security/cert/Certificate;
      Exception table:
        from    to  target  type
          10    11      12  Class java.security.KeyStoreException
           8    17      18  any
          18    19      18  any
    MethodParameters:
          Name  Flags
      keyStore  
      aliases   
      newInfo   

  public void refresh();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.provider.PolicyFile this
         0: .line 972
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.provider.PolicyFile.url:Ljava/net/URL;
            invokevirtual sun.security.provider.PolicyFile.init:(Ljava/net/URL;)V
         1: .line 973
            return
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/provider/PolicyFile;

  public boolean implies(java.security.ProtectionDomain, java.security.Permission);
    descriptor: (Ljava/security/ProtectionDomain;Ljava/security/Permission;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.security.ProtectionDomain pd
        start local 2 // java.security.Permission p
         0: .line 990
            aload 0 /* this */
            getfield sun.security.provider.PolicyFile.policyInfo:Lsun/security/provider/PolicyFile$PolicyInfo;
            invokevirtual sun.security.provider.PolicyFile$PolicyInfo.getPdMapping:()Ljdk/internal/access/JavaSecurityAccess$ProtectionDomainCache;
            astore 3 /* pdMap */
        start local 3 // jdk.internal.access.JavaSecurityAccess$ProtectionDomainCache pdMap
         1: .line 991
            aload 3 /* pdMap */
            aload 1 /* pd */
            invokeinterface jdk.internal.access.JavaSecurityAccess$ProtectionDomainCache.get:(Ljava/security/ProtectionDomain;)Ljava/security/PermissionCollection;
            astore 4 /* pc */
        start local 4 // java.security.PermissionCollection pc
         2: .line 993
            aload 4 /* pc */
            ifnull 4
         3: .line 994
            aload 4 /* pc */
            aload 2 /* p */
            invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
            ireturn
         4: .line 997
      StackMap locals: jdk.internal.access.JavaSecurityAccess$ProtectionDomainCache java.security.PermissionCollection
      StackMap stack:
            aload 0 /* this */
            aload 1 /* pd */
            invokevirtual sun.security.provider.PolicyFile.getPermissions:(Ljava/security/ProtectionDomain;)Ljava/security/PermissionCollection;
            astore 4 /* pc */
         5: .line 998
            aload 4 /* pc */
            ifnonnull 7
         6: .line 999
            iconst_0
            ireturn
         7: .line 1003
      StackMap locals:
      StackMap stack:
            aload 3 /* pdMap */
            aload 1 /* pd */
            aload 4 /* pc */
            invokeinterface jdk.internal.access.JavaSecurityAccess$ProtectionDomainCache.put:(Ljava/security/ProtectionDomain;Ljava/security/PermissionCollection;)V
         8: .line 1004
            aload 4 /* pc */
            aload 2 /* p */
            invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
            ireturn
        end local 4 // java.security.PermissionCollection pc
        end local 3 // jdk.internal.access.JavaSecurityAccess$ProtectionDomainCache pdMap
        end local 2 // java.security.Permission p
        end local 1 // java.security.ProtectionDomain pd
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lsun/security/provider/PolicyFile;
            0    9     1     pd  Ljava/security/ProtectionDomain;
            0    9     2      p  Ljava/security/Permission;
            1    9     3  pdMap  Ljdk/internal/access/JavaSecurityAccess$ProtectionDomainCache;
            2    9     4     pc  Ljava/security/PermissionCollection;
    MethodParameters:
      Name  Flags
      pd    
      p     

  public java.security.PermissionCollection getPermissions(java.security.ProtectionDomain);
    descriptor: (Ljava/security/ProtectionDomain;)Ljava/security/PermissionCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.security.ProtectionDomain domain
         0: .line 1035
            new java.security.Permissions
            dup
            invokespecial java.security.Permissions.<init>:()V
            astore 2 /* perms */
        start local 2 // java.security.Permissions perms
         1: .line 1037
            aload 1 /* domain */
            ifnonnull 3
         2: .line 1038
            aload 2 /* perms */
            areturn
         3: .line 1041
      StackMap locals: java.security.Permissions
      StackMap stack:
            aload 0 /* this */
            aload 2 /* perms */
            aload 1 /* domain */
            invokevirtual sun.security.provider.PolicyFile.getPermissions:(Ljava/security/Permissions;Ljava/security/ProtectionDomain;)Ljava/security/PermissionCollection;
            pop
         4: .line 1046
            aload 1 /* domain */
            invokevirtual java.security.ProtectionDomain.getPermissions:()Ljava/security/PermissionCollection;
            astore 3 /* pc */
        start local 3 // java.security.PermissionCollection pc
         5: .line 1047
            aload 3 /* pc */
            ifnull 15
         6: .line 1048
            aload 3 /* pc */
            dup
            astore 4
            monitorenter
         7: .line 1049
            aload 3 /* pc */
            invokevirtual java.security.PermissionCollection.elements:()Ljava/util/Enumeration;
            astore 5 /* e */
        start local 5 // java.util.Enumeration e
         8: .line 1050
            goto 10
         9: .line 1051
      StackMap locals: java.security.PermissionCollection java.security.PermissionCollection java.util.Enumeration
      StackMap stack:
            aload 2 /* perms */
            aload 5 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.security.Permission
            invokestatic sun.security.util.FilePermCompat.newPermPlusAltPath:(Ljava/security/Permission;)Ljava/security/Permission;
            invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
        10: .line 1050
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 9
        end local 5 // java.util.Enumeration e
        11: .line 1048
            aload 4
            monitorexit
        12: goto 15
      StackMap locals: sun.security.provider.PolicyFile java.security.ProtectionDomain java.security.Permissions java.security.PermissionCollection java.security.PermissionCollection
      StackMap stack: java.lang.Throwable
        13: aload 4
            monitorexit
        14: athrow
        15: .line 1056
      StackMap locals:
      StackMap stack:
            aload 2 /* perms */
            areturn
        end local 3 // java.security.PermissionCollection pc
        end local 2 // java.security.Permissions perms
        end local 1 // java.security.ProtectionDomain domain
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lsun/security/provider/PolicyFile;
            0   16     1  domain  Ljava/security/ProtectionDomain;
            1   16     2   perms  Ljava/security/Permissions;
            5   16     3      pc  Ljava/security/PermissionCollection;
            8   11     5       e  Ljava/util/Enumeration<Ljava/security/Permission;>;
      Exception table:
        from    to  target  type
           7    12      13  any
          13    14      13  any
    MethodParameters:
        Name  Flags
      domain  

  public java.security.PermissionCollection getPermissions(java.security.CodeSource);
    descriptor: (Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.security.CodeSource codesource
         0: .line 1071
            aload 0 /* this */
            new java.security.Permissions
            dup
            invokespecial java.security.Permissions.<init>:()V
            aload 1 /* codesource */
            invokevirtual sun.security.provider.PolicyFile.getPermissions:(Ljava/security/Permissions;Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
            areturn
        end local 1 // java.security.CodeSource codesource
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lsun/security/provider/PolicyFile;
            0    1     1  codesource  Ljava/security/CodeSource;
    MethodParameters:
            Name  Flags
      codesource  

  private java.security.PermissionCollection getPermissions(java.security.Permissions, java.security.ProtectionDomain);
    descriptor: (Ljava/security/Permissions;Ljava/security/ProtectionDomain;)Ljava/security/PermissionCollection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.security.Permissions perms
        start local 2 // java.security.ProtectionDomain pd
         0: .line 1086
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 2
         1: .line 1087
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "getPermissions:\n\t"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 2 /* pd */
            invokevirtual sun.security.provider.PolicyFile.printPD:(Ljava/security/ProtectionDomain;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         2: .line 1090
      StackMap locals:
      StackMap stack:
            aload 2 /* pd */
            invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
            astore 3 /* cs */
        start local 3 // java.security.CodeSource cs
         3: .line 1091
            aload 3 /* cs */
            ifnonnull 5
         4: .line 1092
            aload 1 /* perms */
            areturn
         5: .line 1095
      StackMap locals: java.security.CodeSource
      StackMap stack:
            new sun.security.provider.PolicyFile$6
            dup
            aload 0 /* this */
            aload 3 /* cs */
            invokespecial sun.security.provider.PolicyFile$6.<init>:(Lsun/security/provider/PolicyFile;Ljava/security/CodeSource;)V
         6: .line 1094
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.security.CodeSource
            astore 4 /* canonCodeSource */
        start local 4 // java.security.CodeSource canonCodeSource
         7: .line 1101
            aload 0 /* this */
            aload 1 /* perms */
            aload 4 /* canonCodeSource */
            aload 2 /* pd */
            invokevirtual java.security.ProtectionDomain.getPrincipals:()[Ljava/security/Principal;
            invokevirtual sun.security.provider.PolicyFile.getPermissions:(Ljava/security/Permissions;Ljava/security/CodeSource;[Ljava/security/Principal;)Ljava/security/Permissions;
            areturn
        end local 4 // java.security.CodeSource canonCodeSource
        end local 3 // java.security.CodeSource cs
        end local 2 // java.security.ProtectionDomain pd
        end local 1 // java.security.Permissions perms
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lsun/security/provider/PolicyFile;
            0    8     1            perms  Ljava/security/Permissions;
            0    8     2               pd  Ljava/security/ProtectionDomain;
            3    8     3               cs  Ljava/security/CodeSource;
            7    8     4  canonCodeSource  Ljava/security/CodeSource;
    MethodParameters:
       Name  Flags
      perms  
      pd     

  private java.security.PermissionCollection getPermissions(java.security.Permissions, java.security.CodeSource);
    descriptor: (Ljava/security/Permissions;Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.security.Permissions perms
        start local 2 // java.security.CodeSource cs
         0: .line 1119
            aload 2 /* cs */
            ifnonnull 2
         1: .line 1120
            aload 1 /* perms */
            areturn
         2: .line 1123
      StackMap locals:
      StackMap stack:
            new sun.security.provider.PolicyFile$7
            dup
            aload 0 /* this */
            aload 2 /* cs */
            invokespecial sun.security.provider.PolicyFile$7.<init>:(Lsun/security/provider/PolicyFile;Ljava/security/CodeSource;)V
         3: .line 1122
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.security.CodeSource
            astore 3 /* canonCodeSource */
        start local 3 // java.security.CodeSource canonCodeSource
         4: .line 1130
            aload 0 /* this */
            aload 1 /* perms */
            aload 3 /* canonCodeSource */
            aconst_null
            invokevirtual sun.security.provider.PolicyFile.getPermissions:(Ljava/security/Permissions;Ljava/security/CodeSource;[Ljava/security/Principal;)Ljava/security/Permissions;
            areturn
        end local 3 // java.security.CodeSource canonCodeSource
        end local 2 // java.security.CodeSource cs
        end local 1 // java.security.Permissions perms
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lsun/security/provider/PolicyFile;
            0    5     1            perms  Ljava/security/Permissions;
            0    5     2               cs  Ljava/security/CodeSource;
            4    5     3  canonCodeSource  Ljava/security/CodeSource;
    MethodParameters:
       Name  Flags
      perms  
      cs     final

  private java.security.Permissions getPermissions(java.security.Permissions, java.security.CodeSource, java.security.Principal[]);
    descriptor: (Ljava/security/Permissions;Ljava/security/CodeSource;[Ljava/security/Principal;)Ljava/security/Permissions;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.security.Permissions perms
        start local 2 // java.security.CodeSource cs
        start local 3 // java.security.Principal[] principals
         0: .line 1136
            aload 0 /* this */
            getfield sun.security.provider.PolicyFile.policyInfo:Lsun/security/provider/PolicyFile$PolicyInfo;
            getfield sun.security.provider.PolicyFile$PolicyInfo.policyEntries:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 3
      StackMap locals: sun.security.provider.PolicyFile java.security.Permissions java.security.CodeSource java.security.Principal[] top java.util.Iterator
      StackMap stack:
         1: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.provider.PolicyFile$PolicyEntry
            astore 4 /* entry */
        start local 4 // sun.security.provider.PolicyFile$PolicyEntry entry
         2: .line 1137
            aload 0 /* this */
            aload 1 /* perms */
            aload 2 /* cs */
            aload 3 /* principals */
            aload 4 /* entry */
            invokevirtual sun.security.provider.PolicyFile.addPermissions:(Ljava/security/Permissions;Ljava/security/CodeSource;[Ljava/security/Principal;Lsun/security/provider/PolicyFile$PolicyEntry;)V
        end local 4 // sun.security.provider.PolicyFile$PolicyEntry entry
         3: .line 1136
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 1140
            aload 1 /* perms */
            areturn
        end local 3 // java.security.Principal[] principals
        end local 2 // java.security.CodeSource cs
        end local 1 // java.security.Permissions perms
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lsun/security/provider/PolicyFile;
            0    5     1       perms  Ljava/security/Permissions;
            0    5     2          cs  Ljava/security/CodeSource;
            0    5     3  principals  [Ljava/security/Principal;
            2    3     4       entry  Lsun/security/provider/PolicyFile$PolicyEntry;
    MethodParameters:
            Name  Flags
      perms       
      cs          final
      principals  

  private void addPermissions(java.security.Permissions, java.security.CodeSource, java.security.Principal[], sun.security.provider.PolicyFile$PolicyEntry);
    descriptor: (Ljava/security/Permissions;Ljava/security/CodeSource;[Ljava/security/Principal;Lsun/security/provider/PolicyFile$PolicyEntry;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=15, args_size=5
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.security.Permissions perms
        start local 2 // java.security.CodeSource cs
        start local 3 // java.security.Principal[] principals
        start local 4 // sun.security.provider.PolicyFile$PolicyEntry entry
         0: .line 1148
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 5
         1: .line 1149
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "evaluate codesources:\n\tPolicy CodeSource: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 1150
            aload 4 /* entry */
            invokevirtual sun.security.provider.PolicyFile$PolicyEntry.getCodeSource:()Ljava/security/CodeSource;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1151
            ldc "\tActive CodeSource: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* cs */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 1149
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         5: .line 1156
      StackMap locals:
      StackMap stack:
            new sun.security.provider.PolicyFile$8
            dup
            aload 0 /* this */
            aload 4 /* entry */
            aload 2 /* cs */
            invokespecial sun.security.provider.PolicyFile$8.<init>:(Lsun/security/provider/PolicyFile;Lsun/security/provider/PolicyFile$PolicyEntry;Ljava/security/CodeSource;)V
         6: .line 1155
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 5 /* imp */
        start local 5 // java.lang.Boolean imp
         7: .line 1162
            aload 5 /* imp */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 11
         8: .line 1163
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 10
         9: .line 1164
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ldc "evaluation (codesource) failed"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        10: .line 1168
      StackMap locals: java.lang.Boolean
      StackMap stack:
            return
        11: .line 1173
      StackMap locals:
      StackMap stack:
            aload 4 /* entry */
            invokevirtual sun.security.provider.PolicyFile$PolicyEntry.getPrincipals:()Ljava/util/List;
            astore 6 /* entryPs */
        start local 6 // java.util.List entryPs
        12: .line 1174
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 27
        13: .line 1175
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* accPs */
        start local 7 // java.util.List accPs
        14: .line 1176
            aload 3 /* principals */
            ifnull 23
        15: .line 1177
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        16: goto 22
        17: .line 1178
      StackMap locals: java.util.List java.util.List int
      StackMap stack:
            aload 7 /* accPs */
            new sun.security.provider.PolicyParser$PrincipalEntry
            dup
        18: .line 1179
            aload 3 /* principals */
            iload 8 /* i */
            aaload
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        19: .line 1180
            aload 3 /* principals */
            iload 8 /* i */
            aaload
            invokeinterface java.security.Principal.getName:()Ljava/lang/String;
            invokespecial sun.security.provider.PolicyParser$PrincipalEntry.<init>:(Ljava/lang/String;Ljava/lang/String;)V
        20: .line 1178
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 1177
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 8 /* i */
            aload 3 /* principals */
            arraylength
            if_icmplt 17
        end local 8 // int i
        23: .line 1183
      StackMap locals:
      StackMap stack:
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "evaluate principals:\n\tPolicy Principals: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        24: .line 1184
            aload 6 /* entryPs */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 1185
            ldc "\tActive Principals: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* accPs */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 1183
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 7 // java.util.List accPs
        27: .line 1188
      StackMap locals:
      StackMap stack:
            aload 6 /* entryPs */
            ifnull 28
            aload 6 /* entryPs */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 32
        28: .line 1193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* perms */
            aload 3 /* principals */
            aload 4 /* entry */
            invokevirtual sun.security.provider.PolicyFile.addPerms:(Ljava/security/Permissions;[Ljava/security/Principal;Lsun/security/provider/PolicyFile$PolicyEntry;)V
        29: .line 1194
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 31
        30: .line 1195
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ldc "evaluation (codesource/principals) passed"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        31: .line 1197
      StackMap locals:
      StackMap stack:
            return
        32: .line 1199
      StackMap locals:
      StackMap stack:
            aload 3 /* principals */
            ifnull 33
            aload 3 /* principals */
            arraylength
            ifne 36
        33: .line 1204
      StackMap locals:
      StackMap stack:
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 35
        34: .line 1205
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ldc "evaluation (principals) failed"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        35: .line 1207
      StackMap locals:
      StackMap stack:
            return
        36: .line 1214
      StackMap locals:
      StackMap stack:
            aload 6 /* entryPs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 79
      StackMap locals: sun.security.provider.PolicyFile java.security.Permissions java.security.CodeSource java.security.Principal[] sun.security.provider.PolicyFile$PolicyEntry java.lang.Boolean java.util.List top java.util.Iterator
      StackMap stack:
        37: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.provider.PolicyParser$PrincipalEntry
            astore 7 /* pppe */
        start local 7 // sun.security.provider.PolicyParser$PrincipalEntry pppe
        38: .line 1217
            aload 7 /* pppe */
            invokevirtual sun.security.provider.PolicyParser$PrincipalEntry.isWildcardClass:()Z
            ifeq 40
        39: .line 1219
            goto 79
        40: .line 1222
      StackMap locals: sun.security.provider.PolicyFile java.security.Permissions java.security.CodeSource java.security.Principal[] sun.security.provider.PolicyFile$PolicyEntry java.lang.Boolean java.util.List sun.security.provider.PolicyParser$PrincipalEntry java.util.Iterator
      StackMap stack:
            aload 7 /* pppe */
            invokevirtual sun.security.provider.PolicyParser$PrincipalEntry.isWildcardName:()Z
            ifeq 49
        41: .line 1224
            aload 7 /* pppe */
            getfield sun.security.provider.PolicyParser$PrincipalEntry.principalClass:Ljava/lang/String;
        42: .line 1225
            aload 3 /* principals */
        43: .line 1224
            invokestatic sun.security.provider.PolicyFile.wildcardPrincipalNameImplies:(Ljava/lang/String;[Ljava/security/Principal;)Z
        44: .line 1225
            ifeq 46
        45: .line 1226
            goto 79
        46: .line 1228
      StackMap locals:
      StackMap stack:
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 48
        47: .line 1229
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ldc "evaluation (principal name wildcard) failed"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        48: .line 1233
      StackMap locals:
      StackMap stack:
            return
        49: .line 1236
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            aload 3 /* principals */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 9 /* pSet */
        start local 9 // java.util.Set pSet
        50: .line 1237
            new javax.security.auth.Subject
            dup
            iconst_1
            aload 9 /* pSet */
        51: .line 1238
            getstatic java.util.Collections.EMPTY_SET:Ljava/util/Set;
        52: .line 1239
            getstatic java.util.Collections.EMPTY_SET:Ljava/util/Set;
        53: .line 1237
            invokespecial javax.security.auth.Subject.<init>:(ZLjava/util/Set;Ljava/util/Set;Ljava/util/Set;)V
            astore 10 /* subject */
        start local 10 // javax.security.auth.Subject subject
        54: .line 1241
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 11 /* cl */
        start local 11 // java.lang.ClassLoader cl
        55: .line 1242
            aload 7 /* pppe */
            getfield sun.security.provider.PolicyParser$PrincipalEntry.principalClass:Ljava/lang/String;
            iconst_0
            aload 11 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 12 /* pClass */
        start local 12 // java.lang.Class pClass
        56: .line 1243
            aload 12 /* pClass */
            aload 7 /* pppe */
            getfield sun.security.provider.PolicyParser$PrincipalEntry.principalName:Ljava/lang/String;
            invokestatic sun.security.provider.PolicyFile.getKnownPrincipal:(Ljava/lang/Class;Ljava/lang/String;)Ljava/security/Principal;
            astore 13 /* p */
        start local 13 // java.security.Principal p
        57: .line 1244
            aload 13 /* p */
            ifnonnull 66
        58: .line 1245
            ldc Ljava/security/Principal;
            aload 12 /* pClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 62
        59: .line 1247
            new java.lang.ClassCastException
            dup
            new java.lang.StringBuilder
            dup
            aload 7 /* pppe */
            getfield sun.security.provider.PolicyParser$PrincipalEntry.principalClass:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        60: .line 1248
            ldc " is not a Principal"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        61: .line 1247
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
        62: .line 1251
      StackMap locals: sun.security.provider.PolicyFile java.security.Permissions java.security.CodeSource java.security.Principal[] sun.security.provider.PolicyFile$PolicyEntry java.lang.Boolean java.util.List sun.security.provider.PolicyParser$PrincipalEntry java.util.Iterator java.util.Set javax.security.auth.Subject java.lang.ClassLoader java.lang.Class java.security.Principal
      StackMap stack:
            aload 12 /* pClass */
            getstatic sun.security.provider.PolicyFile.PARAMS1:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 14 /* c */
        start local 14 // java.lang.reflect.Constructor c
        63: .line 1252
            aload 14 /* c */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        64: .line 1253
            aload 7 /* pppe */
            getfield sun.security.provider.PolicyParser$PrincipalEntry.principalName:Ljava/lang/String;
            aastore
        65: .line 1252
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Principal
            astore 13 /* p */
        end local 14 // java.lang.reflect.Constructor c
        66: .line 1257
      StackMap locals:
      StackMap stack:
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 68
        67: .line 1258
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "found Principal "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* p */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        68: .line 1263
      StackMap locals:
      StackMap stack:
            aload 13 /* p */
            aload 10 /* subject */
            invokeinterface java.security.Principal.implies:(Ljavax/security/auth/Subject;)Z
            ifne 79
        69: .line 1264
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 71
        70: .line 1265
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ldc "evaluation (principal implies) failed"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        71: .line 1270
      StackMap locals:
      StackMap stack:
            return
        end local 13 // java.security.Principal p
        end local 12 // java.lang.Class pClass
        end local 11 // java.lang.ClassLoader cl
        72: .line 1272
      StackMap locals: sun.security.provider.PolicyFile java.security.Permissions java.security.CodeSource java.security.Principal[] sun.security.provider.PolicyFile$PolicyEntry java.lang.Boolean java.util.List sun.security.provider.PolicyParser$PrincipalEntry java.util.Iterator java.util.Set javax.security.auth.Subject
      StackMap stack: java.lang.Exception
            astore 11 /* e */
        start local 11 // java.lang.Exception e
        73: .line 1276
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 75
        74: .line 1277
            aload 11 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        75: .line 1280
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 7 /* pppe */
            aload 10 /* subject */
            invokevirtual sun.security.provider.PolicyParser$PrincipalEntry.implies:(Ljavax/security/auth/Subject;)Z
            ifne 79
        76: .line 1281
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 78
        77: .line 1282
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ldc "evaluation (default principal implies) failed"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        78: .line 1287
      StackMap locals:
      StackMap stack:
            return
        end local 11 // java.lang.Exception e
        end local 10 // javax.security.auth.Subject subject
        end local 9 // java.util.Set pSet
        end local 7 // sun.security.provider.PolicyParser$PrincipalEntry pppe
        79: .line 1214
      StackMap locals: sun.security.provider.PolicyFile java.security.Permissions java.security.CodeSource java.security.Principal[] sun.security.provider.PolicyFile$PolicyEntry java.lang.Boolean java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 37
        80: .line 1299
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 82
        81: .line 1300
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ldc "evaluation (codesource/principals) passed"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        82: .line 1302
      StackMap locals: sun.security.provider.PolicyFile java.security.Permissions java.security.CodeSource java.security.Principal[] sun.security.provider.PolicyFile$PolicyEntry java.lang.Boolean java.util.List
      StackMap stack:
            aload 0 /* this */
            aload 1 /* perms */
            aload 3 /* principals */
            aload 4 /* entry */
            invokevirtual sun.security.provider.PolicyFile.addPerms:(Ljava/security/Permissions;[Ljava/security/Principal;Lsun/security/provider/PolicyFile$PolicyEntry;)V
        83: .line 1303
            return
        end local 6 // java.util.List entryPs
        end local 5 // java.lang.Boolean imp
        end local 4 // sun.security.provider.PolicyFile$PolicyEntry entry
        end local 3 // java.security.Principal[] principals
        end local 2 // java.security.CodeSource cs
        end local 1 // java.security.Permissions perms
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   84     0        this  Lsun/security/provider/PolicyFile;
            0   84     1       perms  Ljava/security/Permissions;
            0   84     2          cs  Ljava/security/CodeSource;
            0   84     3  principals  [Ljava/security/Principal;
            0   84     4       entry  Lsun/security/provider/PolicyFile$PolicyEntry;
            7   84     5         imp  Ljava/lang/Boolean;
           12   84     6     entryPs  Ljava/util/List<Lsun/security/provider/PolicyParser$PrincipalEntry;>;
           14   27     7       accPs  Ljava/util/List<Lsun/security/provider/PolicyParser$PrincipalEntry;>;
           16   23     8           i  I
           38   79     7        pppe  Lsun/security/provider/PolicyParser$PrincipalEntry;
           50   79     9        pSet  Ljava/util/Set<Ljava/security/Principal;>;
           54   79    10     subject  Ljavax/security/auth/Subject;
           55   72    11          cl  Ljava/lang/ClassLoader;
           56   72    12      pClass  Ljava/lang/Class<*>;
           57   72    13           p  Ljava/security/Principal;
           63   66    14           c  Ljava/lang/reflect/Constructor<*>;
           73   79    11           e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          54    71      72  Class java.lang.Exception
    MethodParameters:
            Name  Flags
      perms       
      cs          final
      principals  
      entry       final

  private static boolean wildcardPrincipalNameImplies(java.lang.String, java.security.Principal[]);
    descriptor: (Ljava/lang/String;[Ljava/security/Principal;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.lang.String principalClass
        start local 1 // java.security.Principal[] principals
         0: .line 1312
            aload 1 /* principals */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: java.lang.String java.security.Principal[] top int int java.security.Principal[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* p */
        start local 2 // java.security.Principal p
         2: .line 1313
            aload 0 /* principalClass */
            aload 2 /* p */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 1314
            iconst_1
            ireturn
        end local 2 // java.security.Principal p
         4: .line 1312
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 1
         6: .line 1317
            iconst_0
            ireturn
        end local 1 // java.security.Principal[] principals
        end local 0 // java.lang.String principalClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0  principalClass  Ljava/lang/String;
            0    7     1      principals  [Ljava/security/Principal;
            2    4     2               p  Ljava/security/Principal;
    MethodParameters:
                Name  Flags
      principalClass  
      principals      

  private void addPerms(java.security.Permissions, java.security.Principal[], sun.security.provider.PolicyFile$PolicyEntry);
    descriptor: (Ljava/security/Permissions;[Ljava/security/Principal;Lsun/security/provider/PolicyFile$PolicyEntry;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.security.Permissions perms
        start local 2 // java.security.Principal[] accPs
        start local 3 // sun.security.provider.PolicyFile$PolicyEntry entry
         0: .line 1323
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         1: goto 14
         2: .line 1324
      StackMap locals: int
      StackMap stack:
            aload 3 /* entry */
            getfield sun.security.provider.PolicyFile$PolicyEntry.permissions:Ljava/util/List;
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.security.Permission
            astore 5 /* p */
        start local 5 // java.security.Permission p
         3: .line 1325
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 5
         4: .line 1326
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  granting "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         5: .line 1329
      StackMap locals: java.security.Permission
      StackMap stack:
            aload 5 /* p */
            instanceof sun.security.provider.PolicyFile$SelfPermission
            ifeq 12
         6: .line 1331
            aload 0 /* this */
            aload 5 /* p */
            checkcast sun.security.provider.PolicyFile$SelfPermission
         7: .line 1332
            aload 3 /* entry */
            invokevirtual sun.security.provider.PolicyFile$PolicyEntry.getPrincipals:()Ljava/util/List;
         8: .line 1333
            aload 2 /* accPs */
         9: .line 1334
            aload 1 /* perms */
        10: .line 1331
            invokevirtual sun.security.provider.PolicyFile.expandSelf:(Lsun/security/provider/PolicyFile$SelfPermission;Ljava/util/List;[Ljava/security/Principal;Ljava/security/Permissions;)V
        11: .line 1335
            goto 13
        12: .line 1336
      StackMap locals:
      StackMap stack:
            aload 1 /* perms */
            aload 5 /* p */
            invokestatic sun.security.util.FilePermCompat.newPermPlusAltPath:(Ljava/security/Permission;)Ljava/security/Permission;
            invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
        end local 5 // java.security.Permission p
        13: .line 1323
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            aload 3 /* entry */
            getfield sun.security.provider.PolicyFile$PolicyEntry.permissions:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 2
        end local 4 // int i
        15: .line 1339
            return
        end local 3 // sun.security.provider.PolicyFile$PolicyEntry entry
        end local 2 // java.security.Principal[] accPs
        end local 1 // java.security.Permissions perms
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Lsun/security/provider/PolicyFile;
            0   16     1  perms  Ljava/security/Permissions;
            0   16     2  accPs  [Ljava/security/Principal;
            0   16     3  entry  Lsun/security/provider/PolicyFile$PolicyEntry;
            1   15     4      i  I
            3   13     5      p  Ljava/security/Permission;
    MethodParameters:
       Name  Flags
      perms  
      accPs  
      entry  

  private void expandSelf(sun.security.provider.PolicyFile$SelfPermission, java.util.List<sun.security.provider.PolicyParser$PrincipalEntry>, java.security.Principal[], java.security.Permissions);
    descriptor: (Lsun/security/provider/PolicyFile$SelfPermission;Ljava/util/List;[Ljava/security/Principal;Ljava/security/Permissions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // sun.security.provider.PolicyFile$SelfPermission sp
        start local 2 // java.util.List entryPs
        start local 3 // java.security.Principal[] pdp
        start local 4 // java.security.Permissions perms
         0: .line 1357
            aload 2 /* entryPs */
            ifnull 1
            aload 2 /* entryPs */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 13
         1: .line 1359
      StackMap locals:
      StackMap stack:
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 12
         2: .line 1360
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Ignoring permission "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 1361
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfType:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 1362
            ldc " with target name ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1363
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ").  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1364
            ldc "No Principal(s) specified "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 1365
            ldc "in the grant clause.  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 1366
            ldc "SELF-based target names are "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 1367
            ldc "only valid in the context "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 1368
            ldc "of a Principal-based grant entry."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 1360
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        12: .line 1371
      StackMap locals:
      StackMap stack:
            return
        13: .line 1373
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* startIndex */
        start local 5 // int startIndex
        14: .line 1375
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 7 /* sb */
        start local 7 // java.lang.StringBuilder sb
        15: .line 1376
            goto 34
        start local 6 // int v
        16: .line 1379
      StackMap locals: int int java.lang.StringBuilder
      StackMap stack:
            aload 7 /* sb */
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfName:()Ljava/lang/String;
            iload 5 /* startIndex */
            iload 6 /* v */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 1382
            aload 2 /* entryPs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8 /* pli */
        start local 8 // java.util.Iterator pli
        18: .line 1383
            goto 32
        19: .line 1384
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 8 /* pli */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.provider.PolicyParser$PrincipalEntry
            astore 9 /* pppe */
        start local 9 // sun.security.provider.PolicyParser$PrincipalEntry pppe
        20: .line 1385
            aload 0 /* this */
            aload 9 /* pppe */
            aload 3 /* pdp */
            invokevirtual sun.security.provider.PolicyFile.getPrincipalInfo:(Lsun/security/provider/PolicyParser$PrincipalEntry;[Ljava/security/Principal;)[[Ljava/lang/String;
            astore 10 /* principalInfo */
        start local 10 // java.lang.String[][] principalInfo
        21: .line 1386
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        22: goto 29
        23: .line 1387
      StackMap locals: sun.security.provider.PolicyParser$PrincipalEntry java.lang.String[][] int
      StackMap stack:
            iload 11 /* i */
            ifeq 25
        24: .line 1388
            aload 7 /* sb */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 1390
      StackMap locals:
      StackMap stack:
            aload 7 /* sb */
            new java.lang.StringBuilder
            dup
            aload 10 /* principalInfo */
            iload 11 /* i */
            aaload
            iconst_0
            aaload
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        26: .line 1391
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* principalInfo */
            iload 11 /* i */
            aaload
            iconst_1
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        27: .line 1390
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 1386
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 11 /* i */
            aload 10 /* principalInfo */
            arraylength
            if_icmplt 23
        end local 11 // int i
        30: .line 1393
            aload 8 /* pli */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 32
        31: .line 1394
            aload 7 /* sb */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 10 // java.lang.String[][] principalInfo
        end local 9 // sun.security.provider.PolicyParser$PrincipalEntry pppe
        32: .line 1383
      StackMap locals:
      StackMap stack:
            aload 8 /* pli */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        33: .line 1397
            iload 6 /* v */
            ldc "${{self}}"
            invokevirtual java.lang.String.length:()I
            iadd
            istore 5 /* startIndex */
        end local 8 // java.util.Iterator pli
        end local 6 // int v
        34: .line 1376
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyFile$SelfPermission java.util.List java.security.Principal[] java.security.Permissions int top java.lang.StringBuilder
      StackMap stack:
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfName:()Ljava/lang/String;
            ldc "${{self}}"
            iload 5 /* startIndex */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            dup
            istore 6 /* v */
        start local 6 // int v
        35: iconst_m1
            if_icmpne 16
        36: .line 1400
            aload 7 /* sb */
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfName:()Ljava/lang/String;
            iload 5 /* startIndex */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        37: .line 1402
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 41
        38: .line 1403
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  expanded:\n\t"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        39: .line 1404
            ldc "\n  into:\n\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        40: .line 1403
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        41: .line 1408
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyFile$SelfPermission java.util.List java.security.Principal[] java.security.Permissions int int java.lang.StringBuilder
      StackMap stack:
            aload 4 /* perms */
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfType:()Ljava/lang/String;
        42: .line 1409
            aload 7 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        43: .line 1410
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfActions:()Ljava/lang/String;
        44: .line 1408
            invokestatic sun.security.provider.PolicyFile.getInstance:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Permission;
            invokestatic sun.security.util.FilePermCompat.newPermPlusAltPath:(Ljava/security/Permission;)Ljava/security/Permission;
            invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
        45: .line 1411
            goto 95
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
        46: pop
        47: .line 1417
            aconst_null
            astore 8 /* pc */
        start local 8 // java.lang.Class pc
        48: .line 1418
            aload 4 /* perms */
            dup
            astore 9
            monitorenter
        49: .line 1419
            aload 4 /* perms */
            invokevirtual java.security.Permissions.elements:()Ljava/util/Enumeration;
            astore 10 /* e */
        start local 10 // java.util.Enumeration e
        50: .line 1420
            goto 55
        51: .line 1421
      StackMap locals: java.lang.Class java.security.Permissions java.util.Enumeration
      StackMap stack:
            aload 10 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.security.Permission
            astore 11 /* pElement */
        start local 11 // java.security.Permission pElement
        52: .line 1422
            aload 11 /* pElement */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfType:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 55
        53: .line 1423
            aload 11 /* pElement */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 8 /* pc */
        54: .line 1424
            goto 56
        end local 11 // java.security.Permission pElement
        55: .line 1420
      StackMap locals:
      StackMap stack:
            aload 10 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 51
        end local 10 // java.util.Enumeration e
        56: .line 1418
      StackMap locals:
      StackMap stack:
            aload 9
            monitorexit
        57: goto 60
      StackMap locals:
      StackMap stack: java.lang.Throwable
        58: aload 9
            monitorexit
        59: athrow
        60: .line 1428
      StackMap locals:
      StackMap stack:
            aload 8 /* pc */
            ifnonnull 67
        61: .line 1430
            aload 4 /* perms */
            new java.security.UnresolvedPermission
            dup
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfType:()Ljava/lang/String;
        62: .line 1431
            aload 7 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        63: .line 1432
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfActions:()Ljava/lang/String;
        64: .line 1433
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getCerts:()[Ljava/security/cert/Certificate;
            invokespecial java.security.UnresolvedPermission.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/security/cert/Certificate;)V
        65: .line 1430
            invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
        66: .line 1434
            goto 95
        67: .line 1440
      StackMap locals:
      StackMap stack:
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfActions:()Ljava/lang/String;
            ifnonnull 80
        68: .line 1442
            aload 8 /* pc */
            getstatic sun.security.provider.PolicyFile.PARAMS1:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 9 /* c */
        start local 9 // java.lang.reflect.Constructor c
        69: .line 1443
            aload 4 /* perms */
            aload 9 /* c */
        70: .line 1444
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        71: .line 1443
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
            invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
        72: .line 1445
            goto 95
        end local 9 // java.lang.reflect.Constructor c
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
        73: pop
        74: .line 1446
            aload 8 /* pc */
            getstatic sun.security.provider.PolicyFile.PARAMS2:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 9 /* c */
        start local 9 // java.lang.reflect.Constructor c
        75: .line 1447
            aload 4 /* perms */
            aload 9 /* c */
        76: .line 1448
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        77: .line 1449
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfActions:()Ljava/lang/String;
            aastore
        78: .line 1447
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
            invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
        79: .line 1451
            goto 95
        end local 9 // java.lang.reflect.Constructor c
        80: .line 1452
      StackMap locals:
      StackMap stack:
            aload 8 /* pc */
            getstatic sun.security.provider.PolicyFile.PARAMS2:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 9 /* c */
        start local 9 // java.lang.reflect.Constructor c
        81: .line 1453
            aload 4 /* perms */
            aload 9 /* c */
        82: .line 1454
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        83: .line 1455
            aload 1 /* sp */
            invokevirtual sun.security.provider.PolicyFile$SelfPermission.getSelfActions:()Ljava/lang/String;
            aastore
        84: .line 1453
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
            invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
        end local 9 // java.lang.reflect.Constructor c
        85: .line 1457
            goto 95
      StackMap locals:
      StackMap stack: java.lang.Exception
        86: astore 9 /* nme */
        start local 9 // java.lang.Exception nme
        87: .line 1458
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 95
        88: .line 1459
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "self entry expansion  instantiation failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        89: .line 1461
            aload 9 /* nme */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        90: .line 1459
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 9 // java.lang.Exception nme
        end local 8 // java.lang.Class pc
        91: goto 95
        92: .line 1465
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyFile$SelfPermission java.util.List java.security.Principal[] java.security.Permissions int int java.lang.StringBuilder
      StackMap stack: java.lang.Exception
            astore 8 /* e */
        start local 8 // java.lang.Exception e
        93: .line 1466
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 95
        94: .line 1467
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            aload 8 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 8 // java.lang.Exception e
        95: .line 1470
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.lang.StringBuilder sb
        end local 6 // int v
        end local 5 // int startIndex
        end local 4 // java.security.Permissions perms
        end local 3 // java.security.Principal[] pdp
        end local 2 // java.util.List entryPs
        end local 1 // sun.security.provider.PolicyFile$SelfPermission sp
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   96     0           this  Lsun/security/provider/PolicyFile;
            0   96     1             sp  Lsun/security/provider/PolicyFile$SelfPermission;
            0   96     2        entryPs  Ljava/util/List<Lsun/security/provider/PolicyParser$PrincipalEntry;>;
            0   96     3            pdp  [Ljava/security/Principal;
            0   96     4          perms  Ljava/security/Permissions;
           14   96     5     startIndex  I
           16   34     6              v  I
           35   96     6              v  I
           15   96     7             sb  Ljava/lang/StringBuilder;
           18   34     8            pli  Ljava/util/Iterator<Lsun/security/provider/PolicyParser$PrincipalEntry;>;
           20   32     9           pppe  Lsun/security/provider/PolicyParser$PrincipalEntry;
           21   32    10  principalInfo  [[Ljava/lang/String;
           22   30    11              i  I
           48   91     8             pc  Ljava/lang/Class<*>;
           50   56    10              e  Ljava/util/Enumeration<Ljava/security/Permission;>;
           52   55    11       pElement  Ljava/security/Permission;
           69   73     9              c  Ljava/lang/reflect/Constructor<*>;
           75   80     9              c  Ljava/lang/reflect/Constructor<*>;
           81   85     9              c  Ljava/lang/reflect/Constructor<*>;
           87   91     9            nme  Ljava/lang/Exception;
           93   95     8              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          41    45      46  Class java.lang.ClassNotFoundException
          49    57      58  any
          58    59      58  any
          68    72      73  Class java.lang.NoSuchMethodException
          67    85      86  Class java.lang.Exception
          41    45      92  Class java.lang.Exception
    Signature: (Lsun/security/provider/PolicyFile$SelfPermission;Ljava/util/List<Lsun/security/provider/PolicyParser$PrincipalEntry;>;[Ljava/security/Principal;Ljava/security/Permissions;)V
    MethodParameters:
         Name  Flags
      sp       
      entryPs  
      pdp      
      perms    

  private java.lang.String[][] getPrincipalInfo(sun.security.provider.PolicyParser$PrincipalEntry, java.security.Principal[]);
    descriptor: (Lsun/security/provider/PolicyParser$PrincipalEntry;[Ljava/security/Principal;)[[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // sun.security.provider.PolicyParser$PrincipalEntry pe
        start local 2 // java.security.Principal[] pdp
         0: .line 1486
            aload 1 /* pe */
            invokevirtual sun.security.provider.PolicyParser$PrincipalEntry.isWildcardClass:()Z
            ifne 5
            aload 1 /* pe */
            invokevirtual sun.security.provider.PolicyParser$PrincipalEntry.isWildcardName:()Z
            ifne 5
         1: .line 1490
            iconst_1
            iconst_2
            multianewarray [[Ljava/lang/String; 2
            astore 3 /* info */
        start local 3 // java.lang.String[][] info
         2: .line 1491
            aload 3 /* info */
            iconst_0
            aaload
            iconst_0
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PrincipalEntry.principalClass:Ljava/lang/String;
            aastore
         3: .line 1492
            aload 3 /* info */
            iconst_0
            aaload
            iconst_1
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PrincipalEntry.principalName:Ljava/lang/String;
            aastore
         4: .line 1493
            aload 3 /* info */
            areturn
        end local 3 // java.lang.String[][] info
         5: .line 1495
      StackMap locals:
      StackMap stack:
            aload 1 /* pe */
            invokevirtual sun.security.provider.PolicyParser$PrincipalEntry.isWildcardClass:()Z
            ifne 22
            aload 1 /* pe */
            invokevirtual sun.security.provider.PolicyParser$PrincipalEntry.isWildcardName:()Z
            ifeq 22
         6: .line 1500
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* plist */
        start local 3 // java.util.List plist
         7: .line 1501
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         8: goto 12
         9: .line 1502
      StackMap locals: java.util.List int
      StackMap stack:
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PrincipalEntry.principalClass:Ljava/lang/String;
            aload 2 /* pdp */
            iload 4 /* i */
            aaload
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 1503
            aload 3 /* plist */
            aload 2 /* pdp */
            iload 4 /* i */
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 1501
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* i */
            aload 2 /* pdp */
            arraylength
            if_icmplt 9
        end local 4 // int i
        13: .line 1505
            aload 3 /* plist */
            invokeinterface java.util.List.size:()I
            iconst_2
            multianewarray [[Ljava/lang/String; 2
            astore 4 /* info */
        start local 4 // java.lang.String[][] info
        14: .line 1506
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        15: .line 1507
            aload 3 /* plist */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 20
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$PrincipalEntry java.security.Principal[] java.util.List java.lang.String[][] int top java.util.Iterator
      StackMap stack:
        16: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.security.Principal
            astore 6 /* p */
        start local 6 // java.security.Principal p
        17: .line 1508
            aload 4 /* info */
            iload 5 /* i */
            aaload
            iconst_0
            aload 6 /* p */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        18: .line 1509
            aload 4 /* info */
            iload 5 /* i */
            aaload
            iconst_1
            aload 6 /* p */
            invokeinterface java.security.Principal.getName:()Ljava/lang/String;
            aastore
        19: .line 1510
            iinc 5 /* i */ 1
        end local 6 // java.security.Principal p
        20: .line 1507
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        21: .line 1512
            aload 4 /* info */
            areturn
        end local 5 // int i
        end local 4 // java.lang.String[][] info
        end local 3 // java.util.List plist
        22: .line 1519
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$PrincipalEntry java.security.Principal[]
      StackMap stack:
            aload 2 /* pdp */
            arraylength
            iconst_2
            multianewarray [[Ljava/lang/String; 2
            astore 3 /* info */
        start local 3 // java.lang.String[][] info
        23: .line 1521
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        24: goto 28
        25: .line 1522
      StackMap locals: java.lang.String[][] int
      StackMap stack:
            aload 3 /* info */
            iload 4 /* i */
            aaload
            iconst_0
            aload 2 /* pdp */
            iload 4 /* i */
            aaload
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        26: .line 1523
            aload 3 /* info */
            iload 4 /* i */
            aaload
            iconst_1
            aload 2 /* pdp */
            iload 4 /* i */
            aaload
            invokeinterface java.security.Principal.getName:()Ljava/lang/String;
            aastore
        27: .line 1521
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 4 /* i */
            aload 2 /* pdp */
            arraylength
            if_icmplt 25
        end local 4 // int i
        29: .line 1525
            aload 3 /* info */
            areturn
        end local 3 // java.lang.String[][] info
        end local 2 // java.security.Principal[] pdp
        end local 1 // sun.security.provider.PolicyParser$PrincipalEntry pe
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   30     0   this  Lsun/security/provider/PolicyFile;
            0   30     1     pe  Lsun/security/provider/PolicyParser$PrincipalEntry;
            0   30     2    pdp  [Ljava/security/Principal;
            2    5     3   info  [[Ljava/lang/String;
            7   22     3  plist  Ljava/util/List<Ljava/security/Principal;>;
            8   13     4      i  I
           14   22     4   info  [[Ljava/lang/String;
           15   22     5      i  I
           17   20     6      p  Ljava/security/Principal;
           23   30     3   info  [[Ljava/lang/String;
           24   29     4      i  I
    MethodParameters:
      Name  Flags
      pe    
      pdp   

  protected java.security.cert.Certificate[] getSignerCertificates(java.security.CodeSource);
    descriptor: (Ljava/security/CodeSource;)[Ljava/security/cert/Certificate;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.security.CodeSource cs
         0: .line 1544
            aconst_null
            astore 2 /* certs */
        start local 2 // java.security.cert.Certificate[] certs
         1: .line 1545
            aload 1 /* cs */
            invokevirtual java.security.CodeSource.getCertificates:()[Ljava/security/cert/Certificate;
            dup
            astore 2 /* certs */
            ifnonnull 3
         2: .line 1546
            aconst_null
            areturn
         3: .line 1547
      StackMap locals: java.security.cert.Certificate[]
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 8
         5: .line 1548
      StackMap locals: int
      StackMap stack:
            aload 2 /* certs */
            iload 3 /* i */
            aaload
            instanceof java.security.cert.X509Certificate
            ifne 7
         6: .line 1549
            aload 1 /* cs */
            invokevirtual java.security.CodeSource.getCertificates:()[Ljava/security/cert/Certificate;
            areturn
         7: .line 1547
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 2 /* certs */
            arraylength
            if_icmplt 5
        end local 3 // int i
         9: .line 1553
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        10: .line 1554
            iconst_0
            istore 4 /* count */
        start local 4 // int count
        11: .line 1555
            goto 21
        12: .line 1556
      StackMap locals: int
      StackMap stack:
            iinc 4 /* count */ 1
        13: .line 1557
            goto 15
        14: .line 1560
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
        15: .line 1557
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iconst_1
            iadd
            aload 2 /* certs */
            arraylength
            if_icmpge 20
        16: .line 1558
            aload 2 /* certs */
            iload 3 /* i */
            aaload
            checkcast java.security.cert.X509Certificate
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
        17: .line 1559
            aload 2 /* certs */
            iload 3 /* i */
            iconst_1
            iadd
            aaload
            checkcast java.security.cert.X509Certificate
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
        18: .line 1558
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
        19: .line 1559
            ifne 14
        20: .line 1562
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
        21: .line 1555
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            aload 2 /* certs */
            arraylength
            if_icmplt 12
        22: .line 1564
            iload 4 /* count */
            aload 2 /* certs */
            arraylength
            if_icmpne 24
        23: .line 1566
            aload 2 /* certs */
            areturn
        24: .line 1568
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* userCertList */
        start local 5 // java.util.List userCertList
        25: .line 1569
            iconst_0
            istore 3 /* i */
        26: .line 1570
            goto 36
        27: .line 1571
      StackMap locals: java.util.List
      StackMap stack:
            aload 5 /* userCertList */
            aload 2 /* certs */
            iload 3 /* i */
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        28: .line 1572
            goto 30
        29: .line 1575
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
        30: .line 1572
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iconst_1
            iadd
            aload 2 /* certs */
            arraylength
            if_icmpge 35
        31: .line 1573
            aload 2 /* certs */
            iload 3 /* i */
            aaload
            checkcast java.security.cert.X509Certificate
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
        32: .line 1574
            aload 2 /* certs */
            iload 3 /* i */
            iconst_1
            iadd
            aaload
            checkcast java.security.cert.X509Certificate
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
        33: .line 1573
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
        34: .line 1574
            ifne 29
        35: .line 1577
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
        36: .line 1570
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            aload 2 /* certs */
            arraylength
            if_icmplt 27
        37: .line 1579
            aload 5 /* userCertList */
            invokeinterface java.util.List.size:()I
            anewarray java.security.cert.Certificate
            astore 6 /* userCerts */
        start local 6 // java.security.cert.Certificate[] userCerts
        38: .line 1580
            aload 5 /* userCertList */
            aload 6 /* userCerts */
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
        39: .line 1581
            aload 6 /* userCerts */
            areturn
        end local 6 // java.security.cert.Certificate[] userCerts
        end local 5 // java.util.List userCertList
        end local 4 // int count
        end local 3 // int i
        end local 2 // java.security.cert.Certificate[] certs
        end local 1 // java.security.CodeSource cs
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   40     0          this  Lsun/security/provider/PolicyFile;
            0   40     1            cs  Ljava/security/CodeSource;
            1   40     2         certs  [Ljava/security/cert/Certificate;
            4    9     3             i  I
           10   40     3             i  I
           11   40     4         count  I
           25   40     5  userCertList  Ljava/util/List<Ljava/security/cert/Certificate;>;
           38   40     6     userCerts  [Ljava/security/cert/Certificate;
    MethodParameters:
      Name  Flags
      cs    

  private java.security.CodeSource canonicalizeCodebase(java.security.CodeSource, boolean);
    descriptor: (Ljava/security/CodeSource;Z)Ljava/security/CodeSource;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.security.CodeSource cs
        start local 2 // boolean extractSignerCerts
         0: .line 1587
            aconst_null
            astore 3 /* path */
        start local 3 // java.lang.String path
         1: .line 1589
            aload 1 /* cs */
            astore 4 /* canonCs */
        start local 4 // java.security.CodeSource canonCs
         2: .line 1590
            aload 1 /* cs */
            invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
            astore 5 /* u */
        start local 5 // java.net.URL u
         3: .line 1591
            aload 5 /* u */
            ifnull 22
         4: .line 1592
            aload 5 /* u */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            ldc "jar"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         5: .line 1594
            aload 5 /* u */
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            astore 6 /* spec */
        start local 6 // java.lang.String spec
         6: .line 1595
            aload 6 /* spec */
            ldc "!/"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 7 /* separator */
        start local 7 // int separator
         7: .line 1596
            iload 7 /* separator */
            iconst_m1
            if_icmpeq 11
         8: .line 1598
            new java.net.URL
            dup
            aload 6 /* spec */
            iconst_0
            iload 7 /* separator */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 5 /* u */
         9: .line 1599
            goto 11
      StackMap locals: sun.security.provider.PolicyFile java.security.CodeSource int java.lang.String java.security.CodeSource java.net.URL java.lang.String int
      StackMap stack: java.net.MalformedURLException
        10: pop
        end local 7 // int separator
        end local 6 // java.lang.String spec
        11: .line 1605
      StackMap locals:
      StackMap stack:
            aload 5 /* u */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            ldc "file"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        12: .line 1606
            iconst_0
            istore 6 /* isLocalFile */
        start local 6 // boolean isLocalFile
        13: .line 1607
            aload 5 /* u */
            invokevirtual java.net.URL.getHost:()Ljava/lang/String;
            astore 7 /* host */
        start local 7 // java.lang.String host
        14: .line 1608
            aload 7 /* host */
            ifnull 17
            aload 7 /* host */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 17
        15: .line 1609
            aload 7 /* host */
            ldc "~"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
            aload 7 /* host */
            ldc "localhost"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 17
        16: .line 1608
            iconst_0
            goto 18
      StackMap locals: int java.lang.String
      StackMap stack:
        17: iconst_1
      StackMap locals:
      StackMap stack: int
        18: istore 6 /* isLocalFile */
        19: .line 1611
            iload 6 /* isLocalFile */
            ifeq 22
        20: .line 1612
            aload 5 /* u */
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 3 /* path */
        21: .line 1613
            aload 3 /* path */
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* path */
        end local 7 // java.lang.String host
        end local 6 // boolean isLocalFile
        22: .line 1618
      StackMap locals:
      StackMap stack:
            aload 3 /* path */
            ifnull 41
        23: .line 1620
            aconst_null
            astore 6 /* csUrl */
        start local 6 // java.net.URL csUrl
        24: .line 1621
            aload 3 /* path */
            invokestatic sun.security.provider.PolicyFile.canonPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* path */
        25: .line 1622
            new java.io.File
            dup
            aload 3 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokestatic sun.net.www.ParseUtil.fileToEncodedURL:(Ljava/io/File;)Ljava/net/URL;
            astore 6 /* csUrl */
        26: .line 1624
            iload 2 /* extractSignerCerts */
            ifeq 31
        27: .line 1625
            new java.security.CodeSource
            dup
            aload 6 /* csUrl */
        28: .line 1626
            aload 0 /* this */
            aload 1 /* cs */
            invokevirtual sun.security.provider.PolicyFile.getSignerCertificates:(Ljava/security/CodeSource;)[Ljava/security/cert/Certificate;
        29: .line 1625
            invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/cert/Certificate;)V
            astore 4 /* canonCs */
        30: .line 1627
            goto 45
        31: .line 1628
      StackMap locals: java.net.URL
      StackMap stack:
            new java.security.CodeSource
            dup
            aload 6 /* csUrl */
        32: .line 1629
            aload 1 /* cs */
            invokevirtual java.security.CodeSource.getCertificates:()[Ljava/security/cert/Certificate;
        33: .line 1628
            invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/cert/Certificate;)V
            astore 4 /* canonCs */
        end local 6 // java.net.URL csUrl
        34: .line 1631
            goto 45
      StackMap locals: sun.security.provider.PolicyFile java.security.CodeSource int java.lang.String java.security.CodeSource java.net.URL
      StackMap stack: java.io.IOException
        35: pop
        36: .line 1634
            iload 2 /* extractSignerCerts */
            ifeq 45
        37: .line 1635
            new java.security.CodeSource
            dup
            aload 1 /* cs */
            invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
        38: .line 1636
            aload 0 /* this */
            aload 1 /* cs */
            invokevirtual sun.security.provider.PolicyFile.getSignerCertificates:(Ljava/security/CodeSource;)[Ljava/security/cert/Certificate;
        39: .line 1635
            invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/cert/Certificate;)V
            astore 4 /* canonCs */
        40: .line 1639
            goto 45
        41: .line 1640
      StackMap locals:
      StackMap stack:
            iload 2 /* extractSignerCerts */
            ifeq 45
        42: .line 1641
            new java.security.CodeSource
            dup
            aload 1 /* cs */
            invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
        43: .line 1642
            aload 0 /* this */
            aload 1 /* cs */
            invokevirtual sun.security.provider.PolicyFile.getSignerCertificates:(Ljava/security/CodeSource;)[Ljava/security/cert/Certificate;
        44: .line 1641
            invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/cert/Certificate;)V
            astore 4 /* canonCs */
        45: .line 1645
      StackMap locals:
      StackMap stack:
            aload 4 /* canonCs */
            areturn
        end local 5 // java.net.URL u
        end local 4 // java.security.CodeSource canonCs
        end local 3 // java.lang.String path
        end local 2 // boolean extractSignerCerts
        end local 1 // java.security.CodeSource cs
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   46     0                this  Lsun/security/provider/PolicyFile;
            0   46     1                  cs  Ljava/security/CodeSource;
            0   46     2  extractSignerCerts  Z
            1   46     3                path  Ljava/lang/String;
            2   46     4             canonCs  Ljava/security/CodeSource;
            3   46     5                   u  Ljava/net/URL;
            6   11     6                spec  Ljava/lang/String;
            7   11     7           separator  I
           13   22     6         isLocalFile  Z
           14   22     7                host  Ljava/lang/String;
           24   34     6               csUrl  Ljava/net/URL;
      Exception table:
        from    to  target  type
           8     9      10  Class java.net.MalformedURLException
          23    34      35  Class java.io.IOException
    MethodParameters:
                    Name  Flags
      cs                  
      extractSignerCerts  

  private static java.lang.String canonPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // java.lang.String path
         0: .line 1651
            aload 0 /* path */
            ldc "*"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 1652
            new java.lang.StringBuilder
            dup
            aload 0 /* path */
            iconst_0
            aload 0 /* path */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 0 /* path */
         2: .line 1653
            new java.io.File
            dup
            aload 0 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 0 /* path */
         3: .line 1654
            new java.lang.StringBuilder
            dup
            aload 0 /* path */
            iconst_0
            aload 0 /* path */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "*"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         4: .line 1656
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  path  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      path  

  private java.lang.String printPD(java.security.ProtectionDomain);
    descriptor: (Ljava/security/ProtectionDomain;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.security.ProtectionDomain pd
         0: .line 1661
            aload 1 /* pd */
            invokevirtual java.security.ProtectionDomain.getPrincipals:()[Ljava/security/Principal;
            astore 2 /* principals */
        start local 2 // java.security.Principal[] principals
         1: .line 1662
            ldc "<no principals>"
            astore 3 /* pals */
        start local 3 // java.lang.String pals
         2: .line 1663
            aload 2 /* principals */
            ifnull 16
            aload 2 /* principals */
            arraylength
            ifle 16
         3: .line 1664
            new java.lang.StringBuilder
            dup
            ldc "(principals "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 4 /* palBuf */
        start local 4 // java.lang.StringBuilder palBuf
         4: .line 1665
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 14
         6: .line 1666
      StackMap locals: sun.security.provider.PolicyFile java.security.ProtectionDomain java.security.Principal[] java.lang.String java.lang.StringBuilder int
      StackMap stack:
            aload 4 /* palBuf */
            new java.lang.StringBuilder
            dup
            aload 2 /* principals */
            iload 5 /* i */
            aaload
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 1667
            ldc " \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* principals */
            iload 5 /* i */
            aaload
            invokeinterface java.security.Principal.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 1668
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 1666
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 1669
            iload 5 /* i */
            aload 2 /* principals */
            arraylength
            iconst_1
            isub
            if_icmpge 12
        11: .line 1670
            aload 4 /* palBuf */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 13
        12: .line 1672
      StackMap locals:
      StackMap stack:
            aload 4 /* palBuf */
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 1665
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 5 /* i */
            aload 2 /* principals */
            arraylength
            if_icmplt 6
        end local 5 // int i
        15: .line 1674
            aload 4 /* palBuf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* pals */
        end local 4 // java.lang.StringBuilder palBuf
        16: .line 1676
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "PD CodeSource: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        17: .line 1677
            aload 1 /* pd */
            invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        18: .line 1678
            ldc "\n\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "PD ClassLoader: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 1679
            aload 1 /* pd */
            invokevirtual java.security.ProtectionDomain.getClassLoader:()Ljava/lang/ClassLoader;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        20: .line 1680
            ldc "\n\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "PD Principals: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 1681
            aload 3 /* pals */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        22: .line 1676
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.String pals
        end local 2 // java.security.Principal[] principals
        end local 1 // java.security.ProtectionDomain pd
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   23     0        this  Lsun/security/provider/PolicyFile;
            0   23     1          pd  Ljava/security/ProtectionDomain;
            1   23     2  principals  [Ljava/security/Principal;
            2   23     3        pals  Ljava/lang/String;
            4   16     4      palBuf  Ljava/lang/StringBuilder;
            5   15     5           i  I
    MethodParameters:
      Name  Flags
      pd    

  private boolean replacePrincipals(java.util.List<sun.security.provider.PolicyParser$PrincipalEntry>, java.security.KeyStore);
    descriptor: (Ljava/util/List;Ljava/security/KeyStore;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.util.List principals
        start local 2 // java.security.KeyStore keystore
         0: .line 1691
            aload 1 /* principals */
            ifnull 1
            aload 1 /* principals */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 1
            aload 2 /* keystore */
            ifnonnull 2
         1: .line 1692
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 1694
      StackMap locals:
      StackMap stack:
            aload 1 /* principals */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 18
      StackMap locals: sun.security.provider.PolicyFile java.util.List java.security.KeyStore top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.provider.PolicyParser$PrincipalEntry
            astore 3 /* pppe */
        start local 3 // sun.security.provider.PolicyParser$PrincipalEntry pppe
         4: .line 1695
            aload 3 /* pppe */
            invokevirtual sun.security.provider.PolicyParser$PrincipalEntry.isReplaceName:()Z
            ifeq 18
         5: .line 1700
            aload 0 /* this */
            aload 3 /* pppe */
            getfield sun.security.provider.PolicyParser$PrincipalEntry.principalName:Ljava/lang/String;
            aload 2 /* keystore */
            invokevirtual sun.security.provider.PolicyFile.getDN:(Ljava/lang/String;Ljava/security/KeyStore;)Ljava/lang/String;
            dup
            astore 5 /* name */
        start local 5 // java.lang.String name
         6: ifnonnull 8
         7: .line 1701
            iconst_0
            ireturn
         8: .line 1704
      StackMap locals: sun.security.provider.PolicyFile java.util.List java.security.KeyStore sun.security.provider.PolicyParser$PrincipalEntry java.util.Iterator java.lang.String
      StackMap stack:
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 16
         9: .line 1705
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  Replacing \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 1706
            aload 3 /* pppe */
            getfield sun.security.provider.PolicyParser$PrincipalEntry.principalName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 1707
            ldc "\" with "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 1708
            ldc "javax.security.auth.x500.X500Principal"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 1709
            aload 5 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 1710
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 1705
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        16: .line 1713
      StackMap locals:
      StackMap stack:
            aload 3 /* pppe */
            ldc "javax.security.auth.x500.X500Principal"
            putfield sun.security.provider.PolicyParser$PrincipalEntry.principalClass:Ljava/lang/String;
        17: .line 1714
            aload 3 /* pppe */
            aload 5 /* name */
            putfield sun.security.provider.PolicyParser$PrincipalEntry.principalName:Ljava/lang/String;
        end local 5 // java.lang.String name
        end local 3 // sun.security.provider.PolicyParser$PrincipalEntry pppe
        18: .line 1694
      StackMap locals: sun.security.provider.PolicyFile java.util.List java.security.KeyStore top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        19: .line 1719
            iconst_1
            ireturn
        end local 2 // java.security.KeyStore keystore
        end local 1 // java.util.List principals
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lsun/security/provider/PolicyFile;
            0   20     1  principals  Ljava/util/List<Lsun/security/provider/PolicyParser$PrincipalEntry;>;
            0   20     2    keystore  Ljava/security/KeyStore;
            4   18     3        pppe  Lsun/security/provider/PolicyParser$PrincipalEntry;
            6   18     5        name  Ljava/lang/String;
    Signature: (Ljava/util/List<Lsun/security/provider/PolicyParser$PrincipalEntry;>;Ljava/security/KeyStore;)Z
    MethodParameters:
            Name  Flags
      principals  
      keystore    

  private void expandPermissionName(sun.security.provider.PolicyParser$PermissionEntry, java.security.KeyStore);
    descriptor: (Lsun/security/provider/PolicyParser$PermissionEntry;Ljava/security/KeyStore;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // sun.security.provider.PolicyParser$PermissionEntry pe
        start local 2 // java.security.KeyStore keystore
         0: .line 1725
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            ifnull 1
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            ldc "${{"
            iconst_0
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            iconst_m1
            if_icmpne 2
         1: .line 1726
      StackMap locals:
      StackMap stack:
            return
         2: .line 1729
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* startIndex */
        start local 3 // int startIndex
         3: .line 1731
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 6 /* sb */
        start local 6 // java.lang.StringBuilder sb
         4: .line 1732
            goto 43
        start local 4 // int b
         5: .line 1733
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$PermissionEntry java.security.KeyStore int int top java.lang.StringBuilder
      StackMap stack:
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            ldc "}}"
            iload 4 /* b */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            istore 5 /* e */
        start local 5 // int e
         6: .line 1734
            iload 5 /* e */
            iconst_1
            if_icmpge 8
         7: .line 1735
            goto 45
         8: .line 1737
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$PermissionEntry java.security.KeyStore int int int java.lang.StringBuilder
      StackMap stack:
            aload 6 /* sb */
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            iload 3 /* startIndex */
            iload 4 /* b */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 1740
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            iload 4 /* b */
            iconst_3
            iadd
            iload 5 /* e */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* value */
        start local 7 // java.lang.String value
        10: .line 1744
            aload 7 /* value */
            astore 9 /* prefix */
        start local 9 // java.lang.String prefix
        11: .line 1746
            aload 7 /* value */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            dup
            istore 8 /* colonIndex */
        start local 8 // int colonIndex
        12: iconst_m1
            if_icmpeq 14
        13: .line 1747
            aload 7 /* value */
            iconst_0
            iload 8 /* colonIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 9 /* prefix */
        14: .line 1751
      StackMap locals: java.lang.String int java.lang.String
      StackMap stack:
            aload 9 /* prefix */
            ldc "self"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 18
        15: .line 1753
            aload 6 /* sb */
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            iload 4 /* b */
            iload 5 /* e */
            iconst_2
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 1754
            iload 5 /* e */
            iconst_2
            iadd
            istore 3 /* startIndex */
        17: .line 1755
            goto 43
        18: .line 1756
      StackMap locals:
      StackMap stack:
            aload 9 /* prefix */
            ldc "alias"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 37
        19: .line 1758
            iload 8 /* colonIndex */
            iconst_m1
            if_icmpne 26
        20: .line 1759
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            aastore
            astore 11 /* source */
        start local 11 // java.lang.Object[] source
        21: .line 1760
            new java.lang.Exception
            dup
        22: .line 1762
            ldc "alias.name.not.provided.pe.name."
        23: .line 1763
            aload 11 /* source */
        24: .line 1761
            invokestatic sun.security.util.LocalizedMessage.getNonlocalized:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        25: .line 1760
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            athrow
        end local 11 // java.lang.Object[] source
        26: .line 1765
      StackMap locals:
      StackMap stack:
            aload 7 /* value */
            iload 8 /* colonIndex */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 10 /* suffix */
        start local 10 // java.lang.String suffix
        27: .line 1766
            aload 0 /* this */
            aload 10 /* suffix */
            aload 2 /* keystore */
            invokevirtual sun.security.provider.PolicyFile.getDN:(Ljava/lang/String;Ljava/security/KeyStore;)Ljava/lang/String;
            dup
            astore 10 /* suffix */
            ifnonnull 34
        28: .line 1767
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* value */
            iload 8 /* colonIndex */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aastore
            astore 11 /* source */
        start local 11 // java.lang.Object[] source
        29: .line 1768
            new java.lang.Exception
            dup
        30: .line 1770
            ldc "unable.to.perform.substitution.on.alias.suffix"
        31: .line 1771
            aload 11 /* source */
        32: .line 1769
            invokestatic sun.security.util.LocalizedMessage.getNonlocalized:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        33: .line 1768
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            athrow
        end local 11 // java.lang.Object[] source
        34: .line 1774
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "javax.security.auth.x500.X500Principal \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        35: .line 1775
            iload 5 /* e */
            iconst_2
            iadd
            istore 3 /* startIndex */
        36: .line 1776
            goto 43
        end local 10 // java.lang.String suffix
        37: .line 1777
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* prefix */
            aastore
            astore 11 /* source */
        start local 11 // java.lang.Object[] source
        38: .line 1778
            new java.lang.Exception
            dup
        39: .line 1780
            ldc "substitution.value.prefix.unsupported"
        40: .line 1781
            aload 11 /* source */
        41: .line 1779
            invokestatic sun.security.util.LocalizedMessage.getNonlocalized:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        42: .line 1778
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            athrow
        end local 11 // java.lang.Object[] source
        end local 9 // java.lang.String prefix
        end local 8 // int colonIndex
        end local 7 // java.lang.String value
        end local 5 // int e
        end local 4 // int b
        43: .line 1732
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$PermissionEntry java.security.KeyStore int top top java.lang.StringBuilder
      StackMap stack:
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            ldc "${{"
            iload 3 /* startIndex */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            dup
            istore 4 /* b */
        start local 4 // int b
        44: iconst_m1
            if_icmpne 5
        45: .line 1786
      StackMap locals: sun.security.provider.PolicyFile sun.security.provider.PolicyParser$PermissionEntry java.security.KeyStore int int top java.lang.StringBuilder
      StackMap stack:
            aload 6 /* sb */
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            iload 3 /* startIndex */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        46: .line 1789
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 50
        47: .line 1790
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  Permission name expanded from:\n\t"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        48: .line 1791
            aload 1 /* pe */
            getfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\nto\n\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        49: .line 1790
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        50: .line 1793
      StackMap locals:
      StackMap stack:
            aload 1 /* pe */
            aload 6 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield sun.security.provider.PolicyParser$PermissionEntry.name:Ljava/lang/String;
        51: .line 1794
            return
        end local 6 // java.lang.StringBuilder sb
        end local 4 // int b
        end local 3 // int startIndex
        end local 2 // java.security.KeyStore keystore
        end local 1 // sun.security.provider.PolicyParser$PermissionEntry pe
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   52     0        this  Lsun/security/provider/PolicyFile;
            0   52     1          pe  Lsun/security/provider/PolicyParser$PermissionEntry;
            0   52     2    keystore  Ljava/security/KeyStore;
            3   52     3  startIndex  I
            5   43     4           b  I
           44   52     4           b  I
            6   43     5           e  I
            4   52     6          sb  Ljava/lang/StringBuilder;
           10   43     7       value  Ljava/lang/String;
           12   43     8  colonIndex  I
           11   43     9      prefix  Ljava/lang/String;
           27   37    10      suffix  Ljava/lang/String;
           21   26    11      source  [Ljava/lang/Object;
           29   34    11      source  [Ljava/lang/Object;
           38   43    11      source  [Ljava/lang/Object;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
          Name  Flags
      pe        
      keystore  

  private java.lang.String getDN(java.lang.String, java.security.KeyStore);
    descriptor: (Ljava/lang/String;Ljava/security/KeyStore;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // sun.security.provider.PolicyFile this
        start local 1 // java.lang.String alias
        start local 2 // java.security.KeyStore keystore
         0: .line 1797
            aconst_null
            astore 3 /* cert */
        start local 3 // java.security.cert.Certificate cert
         1: .line 1799
            aload 2 /* keystore */
            aload 1 /* alias */
            invokevirtual java.security.KeyStore.getCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
            astore 3 /* cert */
         2: .line 1800
            goto 11
      StackMap locals: sun.security.provider.PolicyFile java.lang.String java.security.KeyStore java.security.cert.Certificate
      StackMap stack: java.lang.Exception
         3: astore 4 /* e */
        start local 4 // java.lang.Exception e
         4: .line 1801
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 10
         5: .line 1802
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  Error retrieving certificate for '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 1803
            aload 1 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 1804
            ldc "': "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 1805
            aload 4 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 1802
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        10: .line 1807
      StackMap locals: java.lang.Exception
      StackMap stack:
            aconst_null
            areturn
        end local 4 // java.lang.Exception e
        11: .line 1810
      StackMap locals:
      StackMap stack:
            aload 3 /* cert */
            ifnull 12
            aload 3 /* cert */
            instanceof java.security.cert.X509Certificate
            ifne 18
        12: .line 1811
      StackMap locals:
      StackMap stack:
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            ifnull 17
        13: .line 1812
            getstatic sun.security.provider.PolicyFile.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  -- No certificate for '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 1813
            aload 1 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 1814
            ldc "' - ignoring entry"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 1812
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        17: .line 1816
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        18: .line 1818
      StackMap locals:
      StackMap stack:
            aload 3 /* cert */
            checkcast java.security.cert.X509Certificate
            astore 4 /* x509Cert */
        start local 4 // java.security.cert.X509Certificate x509Cert
        19: .line 1824
            new javax.security.auth.x500.X500Principal
            dup
        20: .line 1825
            aload 4 /* x509Cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokevirtual javax.security.auth.x500.X500Principal.toString:()Ljava/lang/String;
        21: .line 1824
            invokespecial javax.security.auth.x500.X500Principal.<init>:(Ljava/lang/String;)V
            astore 5 /* p */
        start local 5 // javax.security.auth.x500.X500Principal p
        22: .line 1826
            aload 5 /* p */
            invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
            areturn
        end local 5 // javax.security.auth.x500.X500Principal p
        end local 4 // java.security.cert.X509Certificate x509Cert
        end local 3 // java.security.cert.Certificate cert
        end local 2 // java.security.KeyStore keystore
        end local 1 // java.lang.String alias
        end local 0 // sun.security.provider.PolicyFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Lsun/security/provider/PolicyFile;
            0   23     1     alias  Ljava/lang/String;
            0   23     2  keystore  Ljava/security/KeyStore;
            1   23     3      cert  Ljava/security/cert/Certificate;
            4   11     4         e  Ljava/lang/Exception;
           19   23     4  x509Cert  Ljava/security/cert/X509Certificate;
           22   23     5         p  Ljavax/security/auth/x500/X500Principal;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Exception
    MethodParameters:
          Name  Flags
      alias     
      keystore  
}
SourceFile: "PolicyFile.java"
NestMembers:
  sun.security.provider.PolicyFile$1  sun.security.provider.PolicyFile$2  sun.security.provider.PolicyFile$3  sun.security.provider.PolicyFile$4  sun.security.provider.PolicyFile$5  sun.security.provider.PolicyFile$6  sun.security.provider.PolicyFile$7  sun.security.provider.PolicyFile$8  sun.security.provider.PolicyFile$PolicyEntry  sun.security.provider.PolicyFile$PolicyInfo  sun.security.provider.PolicyFile$SelfPermission
InnerClasses:
  public abstract ProtectionDomainCache = jdk.internal.access.JavaSecurityAccess$ProtectionDomainCache of jdk.internal.access.JavaSecurityAccess
  sun.security.provider.PolicyFile$1
  sun.security.provider.PolicyFile$2
  sun.security.provider.PolicyFile$3
  sun.security.provider.PolicyFile$4
  sun.security.provider.PolicyFile$5
  sun.security.provider.PolicyFile$6
  sun.security.provider.PolicyFile$7
  sun.security.provider.PolicyFile$8
  private PolicyEntry = sun.security.provider.PolicyFile$PolicyEntry of sun.security.provider.PolicyFile
  private PolicyInfo = sun.security.provider.PolicyFile$PolicyInfo of sun.security.provider.PolicyFile
  private SelfPermission = sun.security.provider.PolicyFile$SelfPermission of sun.security.provider.PolicyFile
  public GrantEntry = sun.security.provider.PolicyParser$GrantEntry of sun.security.provider.PolicyParser
  public ParsingException = sun.security.provider.PolicyParser$ParsingException of sun.security.provider.PolicyParser
  public PermissionEntry = sun.security.provider.PolicyParser$PermissionEntry of sun.security.provider.PolicyParser
  public PrincipalEntry = sun.security.provider.PolicyParser$PrincipalEntry of sun.security.provider.PolicyParser