public final class java.net.SocketPermission extends java.security.Permission implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: java.net.SocketPermission
  super_class: java.security.Permission
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -7204263841984476862

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

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

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

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

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

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

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

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

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

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

  private transient int mask;
    descriptor: I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

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

  private transient java.lang.String hostname;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.lang.String cname;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.net.InetAddress[] addresses;
    descriptor: [Ljava/net/InetAddress;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean wildcard;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean init_with_ip;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean invalid;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient int[] portrange;
    descriptor: [I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean defaultDeny;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean untrusted;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean trusted;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private static boolean trustNameService;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.security.util.Debug debug;
    descriptor: Lsun/security/util/Debug;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean debugInit;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private transient java.lang.String cdomain;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.lang.String hdomain;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 238
            aconst_null
            putstatic java.net.SocketPermission.debug:Lsun/security/util/Debug;
         1: .line 239
            iconst_0
            putstatic java.net.SocketPermission.debugInit:Z
         2: .line 249
            new sun.security.action.GetBooleanAction
            dup
            ldc "sun.net.trustNameService"
            invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
         3: .line 248
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 0 /* tmp */
        start local 0 // java.lang.Boolean tmp
         4: .line 250
            aload 0 /* tmp */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putstatic java.net.SocketPermission.trustNameService:Z
        end local 0 // java.lang.Boolean tmp
         5: .line 251
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            4    5     0   tmp  Ljava/lang/Boolean;

  private static synchronized sun.security.util.Debug getDebug();
    descriptor: ()Lsun/security/util/Debug;
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=0, args_size=0
         0: .line 254
            getstatic java.net.SocketPermission.debugInit:Z
            ifne 3
         1: .line 255
            ldc "access"
            invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
            putstatic java.net.SocketPermission.debug:Lsun/security/util/Debug;
         2: .line 256
            iconst_1
            putstatic java.net.SocketPermission.debugInit:Z
         3: .line 258
      StackMap locals:
      StackMap stack:
            getstatic java.net.SocketPermission.debug:Lsun/security/util/Debug;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String host
        start local 2 // java.lang.String action
         0: .line 297
            aload 0 /* this */
            aload 1 /* host */
            invokestatic java.net.SocketPermission.getHost:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.security.Permission.<init>:(Ljava/lang/String;)V
         1: .line 228
            aload 0 /* this */
            iconst_0
            putfield java.net.SocketPermission.defaultDeny:Z
         2: .line 299
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            aload 2 /* action */
            invokestatic java.net.SocketPermission.getMask:(Ljava/lang/String;)I
            invokevirtual java.net.SocketPermission.init:(Ljava/lang/String;I)V
         3: .line 300
            return
        end local 2 // java.lang.String action
        end local 1 // java.lang.String host
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljava/net/SocketPermission;
            0    4     1    host  Ljava/lang/String;
            0    4     2  action  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      host    
      action  

  void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String host
        start local 2 // int mask
         0: .line 304
            aload 0 /* this */
            aload 1 /* host */
            invokestatic java.net.SocketPermission.getHost:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.security.Permission.<init>:(Ljava/lang/String;)V
         1: .line 228
            aload 0 /* this */
            iconst_0
            putfield java.net.SocketPermission.defaultDeny:Z
         2: .line 306
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            iload 2 /* mask */
            invokevirtual java.net.SocketPermission.init:(Ljava/lang/String;I)V
         3: .line 307
            return
        end local 2 // int mask
        end local 1 // java.lang.String host
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/net/SocketPermission;
            0    4     1  host  Ljava/lang/String;
            0    4     2  mask  I
    MethodParameters:
      Name  Flags
      host  
      mask  

  private void setDeny();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 310
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.defaultDeny:Z
         1: .line 311
            return
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/net/SocketPermission;

  private static java.lang.String getHost(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.String host
         0: .line 314
            aload 0 /* host */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 315
            ldc "localhost"
            areturn
         2: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* host */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpeq 17
         3: .line 323
            aload 0 /* host */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            dup
            istore 1 /* ind */
        start local 1 // int ind
         4: aload 0 /* host */
            bipush 58
            invokevirtual java.lang.String.lastIndexOf:(I)I
            if_icmpeq 17
         5: .line 328
            new java.util.StringTokenizer
            dup
            aload 0 /* host */
            ldc ":"
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* st */
        start local 2 // java.util.StringTokenizer st
         6: .line 329
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            istore 3 /* tokens */
        start local 3 // int tokens
         7: .line 330
            iload 3 /* tokens */
            bipush 9
            if_icmpne 13
         8: .line 332
            aload 0 /* host */
            bipush 58
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* ind */
         9: .line 333
            new java.lang.StringBuilder
            dup
            ldc "["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* host */
            iconst_0
            iload 1 /* ind */
            invokevirtual java.lang.String.substring:(II)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;
        10: .line 334
            aload 0 /* host */
            iload 1 /* ind */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 333
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 0 /* host */
        12: .line 335
            goto 17
      StackMap locals: int java.util.StringTokenizer int
      StackMap stack:
        13: iload 3 /* tokens */
            bipush 8
            if_icmpne 16
            aload 0 /* host */
            ldc "::"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpne 16
        14: .line 337
            new java.lang.StringBuilder
            dup
            ldc "["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* host */
            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;
            astore 0 /* host */
        15: .line 338
            goto 17
        16: .line 340
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Ambiguous hostport part"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int tokens
        end local 2 // java.util.StringTokenizer st
        end local 1 // int ind
        17: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* host */
            areturn
        end local 0 // java.lang.String host
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    host  Ljava/lang/String;
            4   17     1     ind  I
            6   17     2      st  Ljava/util/StringTokenizer;
            7   17     3  tokens  I
    MethodParameters:
      Name  Flags
      host  

  private int[] parsePort(java.lang.String);
    descriptor: (Ljava/lang/String;)[I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String port
         0: .line 353
            aload 1 /* port */
            ifnull 1
            aload 1 /* port */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 1
            aload 1 /* port */
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 354
      StackMap locals:
      StackMap stack:
            iconst_2
            newarray 10
            dup
            iconst_1
            ldc 65535
            iastore
            areturn
         2: .line 357
      StackMap locals:
      StackMap stack:
            aload 1 /* port */
            bipush 45
            invokevirtual java.lang.String.indexOf:(I)I
            istore 2 /* dash */
        start local 2 // int dash
         3: .line 359
            iload 2 /* dash */
            iconst_m1
            if_icmpne 6
         4: .line 360
            aload 1 /* port */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 3 /* p */
        start local 3 // int p
         5: .line 361
            iconst_2
            newarray 10
            dup
            iconst_0
            iload 3 /* p */
            iastore
            dup
            iconst_1
            iload 3 /* p */
            iastore
            areturn
        end local 3 // int p
         6: .line 363
      StackMap locals: int
      StackMap stack:
            aload 1 /* port */
            iconst_0
            iload 2 /* dash */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* low */
        start local 3 // java.lang.String low
         7: .line 364
            aload 1 /* port */
            iload 2 /* dash */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* high */
        start local 4 // java.lang.String high
         8: .line 367
            aload 3 /* low */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 11
         9: .line 368
            iconst_0
            istore 5 /* l */
        start local 5 // int l
        10: .line 369
            goto 12
        end local 5 // int l
        11: .line 370
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* low */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 5 /* l */
        start local 5 // int l
        12: .line 373
      StackMap locals: int
      StackMap stack:
            aload 4 /* high */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 15
        13: .line 374
            ldc 65535
            istore 6 /* h */
        start local 6 // int h
        14: .line 375
            goto 16
        end local 6 // int h
        15: .line 376
      StackMap locals:
      StackMap stack:
            aload 4 /* high */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 6 /* h */
        start local 6 // int h
        16: .line 378
      StackMap locals: int
      StackMap stack:
            iload 5 /* l */
            iflt 17
            iload 6 /* h */
            iflt 17
            iload 6 /* h */
            iload 5 /* l */
            if_icmpge 18
        17: .line 379
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid port range"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 381
      StackMap locals:
      StackMap stack:
            iconst_2
            newarray 10
            dup
            iconst_0
            iload 5 /* l */
            iastore
            dup
            iconst_1
            iload 6 /* h */
            iastore
            areturn
        end local 6 // int h
        end local 5 // int l
        end local 4 // java.lang.String high
        end local 3 // java.lang.String low
        end local 2 // int dash
        end local 1 // java.lang.String port
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Ljava/net/SocketPermission;
            0   19     1  port  Ljava/lang/String;
            3   19     2  dash  I
            5    6     3     p  I
            7   19     3   low  Ljava/lang/String;
            8   19     4  high  Ljava/lang/String;
           10   11     5     l  I
           12   19     5     l  I
           14   15     6     h  I
           16   19     6     h  I
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      port  

  private boolean includesEphemerals();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 390
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/net/SocketPermission;

  private void init(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String host
        start local 2 // int mask
         0: .line 401
            iload 2 /* mask */
            bipush 15
            iand
            iload 2 /* mask */
            if_icmpeq 2
         1: .line 402
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid actions mask"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 405
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* mask */
            bipush 8
            ior
            putfield java.net.SocketPermission.mask:I
         3: .line 416
            iconst_0
            istore 3 /* rb */
        start local 3 // int rb
         4: .line 417
            iconst_0
            istore 4 /* start */
        start local 4 // int start
         5: iconst_0
            istore 5 /* end */
        start local 5 // int end
         6: .line 418
            iconst_m1
            istore 6 /* sep */
        start local 6 // int sep
         7: .line 419
            aload 1 /* host */
            astore 7 /* hostport */
        start local 7 // java.lang.String hostport
         8: .line 420
            aload 1 /* host */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 18
         9: .line 421
            iconst_1
            istore 4 /* start */
        10: .line 422
            aload 1 /* host */
            bipush 93
            invokevirtual java.lang.String.indexOf:(I)I
            istore 3 /* rb */
        11: .line 423
            iload 3 /* rb */
            iconst_m1
            if_icmpeq 14
        12: .line 424
            aload 1 /* host */
            iload 4 /* start */
            iload 3 /* rb */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* host */
        13: .line 425
            goto 16
        14: .line 427
      StackMap locals: java.net.SocketPermission java.lang.String int int int int int java.lang.String
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid host/port: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 426
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 429
      StackMap locals:
      StackMap stack:
            aload 7 /* hostport */
            bipush 58
            iload 3 /* rb */
            iconst_1
            iadd
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* sep */
        17: .line 430
            goto 23
        18: .line 431
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* start */
        19: .line 432
            aload 1 /* host */
            bipush 58
            iload 3 /* rb */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* sep */
        20: .line 433
            iload 6 /* sep */
            istore 5 /* end */
        21: .line 434
            iload 6 /* sep */
            iconst_m1
            if_icmpeq 23
        22: .line 435
            aload 1 /* host */
            iload 4 /* start */
            iload 5 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* host */
        23: .line 439
      StackMap locals:
      StackMap stack:
            iload 6 /* sep */
            iconst_m1
            if_icmpeq 30
        24: .line 440
            aload 7 /* hostport */
            iload 6 /* sep */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* port */
        start local 8 // java.lang.String port
        25: .line 442
            aload 0 /* this */
            aload 0 /* this */
            aload 8 /* port */
            invokevirtual java.net.SocketPermission.parsePort:(Ljava/lang/String;)[I
            putfield java.net.SocketPermission.portrange:[I
        26: .line 443
            goto 31
      StackMap locals: java.net.SocketPermission java.lang.String int int int int int java.lang.String java.lang.String
      StackMap stack: java.lang.Exception
        27: pop
        28: .line 445
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid port range: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* port */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 444
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.String port
        30: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            newarray 10
            dup
            iconst_1
            ldc 65535
            iastore
            putfield java.net.SocketPermission.portrange:[I
        31: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* host */
            putfield java.net.SocketPermission.hostname:Ljava/lang/String;
        32: .line 454
            aload 1 /* host */
            bipush 42
            invokevirtual java.lang.String.lastIndexOf:(I)I
            ifle 35
        33: .line 456
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid host wildcard specification"
        34: .line 455
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        35: .line 457
      StackMap locals:
      StackMap stack:
            aload 1 /* host */
            ldc "*"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 46
        36: .line 458
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.wildcard:Z
        37: .line 459
            aload 1 /* host */
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 40
        38: .line 460
            aload 0 /* this */
            ldc ""
            putfield java.net.SocketPermission.cname:Ljava/lang/String;
        39: .line 461
            goto 45
      StackMap locals:
      StackMap stack:
        40: aload 1 /* host */
            ldc "*."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 43
        41: .line 462
            aload 0 /* this */
            aload 1 /* host */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            putfield java.net.SocketPermission.cname:Ljava/lang/String;
        42: .line 463
            goto 45
        43: .line 465
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid host wildcard specification"
        44: .line 464
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        45: .line 467
      StackMap locals:
      StackMap stack:
            return
        46: .line 469
      StackMap locals:
      StackMap stack:
            aload 1 /* host */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 60
        47: .line 471
            aload 1 /* host */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 8 /* ch */
        start local 8 // char ch
        48: .line 472
            iload 8 /* ch */
            bipush 58
            if_icmpeq 49
            iload 8 /* ch */
            bipush 16
            invokestatic java.lang.Character.digit:(CI)I
            iconst_m1
            if_icmpeq 60
        49: .line 473
      StackMap locals: int
      StackMap stack:
            aload 1 /* host */
            invokestatic sun.net.util.IPAddressUtil.textToNumericFormatV4:(Ljava/lang/String;)[B
            astore 9 /* ip */
        start local 9 // byte[] ip
        50: .line 474
            aload 9 /* ip */
            ifnonnull 52
        51: .line 475
            aload 1 /* host */
            invokestatic sun.net.util.IPAddressUtil.textToNumericFormatV6:(Ljava/lang/String;)[B
            astore 9 /* ip */
        52: .line 477
      StackMap locals: byte[]
      StackMap stack:
            aload 9 /* ip */
            ifnull 60
        53: .line 479
            aload 0 /* this */
        54: .line 481
            iconst_1
            anewarray java.net.InetAddress
            dup
            iconst_0
            aload 9 /* ip */
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            aastore
        55: .line 479
            putfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
        56: .line 482
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.init_with_ip:Z
        57: .line 483
            goto 60
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        58: pop
        59: .line 485
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        end local 9 // byte[] ip
        end local 8 // char ch
        60: .line 491
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.lang.String hostport
        end local 6 // int sep
        end local 5 // int end
        end local 4 // int start
        end local 3 // int rb
        end local 2 // int mask
        end local 1 // java.lang.String host
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   61     0      this  Ljava/net/SocketPermission;
            0   61     1      host  Ljava/lang/String;
            0   61     2      mask  I
            4   61     3        rb  I
            5   61     4     start  I
            6   61     5       end  I
            7   61     6       sep  I
            8   61     7  hostport  Ljava/lang/String;
           25   30     8      port  Ljava/lang/String;
           48   60     8        ch  C
           50   60     9        ip  [B
      Exception table:
        from    to  target  type
          25    26      27  Class java.lang.Exception
          53    57      58  Class java.net.UnknownHostException
    MethodParameters:
      Name  Flags
      host  
      mask  

  private static int getMask(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // java.lang.String action
         0: .line 501
            aload 0 /* action */
            ifnonnull 2
         1: .line 502
            new java.lang.NullPointerException
            dup
            ldc "action can't be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 505
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 4
         3: .line 506
            new java.lang.IllegalArgumentException
            dup
            ldc "action can't be empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 509
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* mask */
        start local 1 // int mask
         5: .line 513
            aload 0 /* action */
            ldc "resolve"
            if_acmpne 7
         6: .line 514
            bipush 8
            ireturn
         7: .line 515
      StackMap locals: int
      StackMap stack:
            aload 0 /* action */
            ldc "connect"
            if_acmpne 9
         8: .line 516
            iconst_1
            ireturn
         9: .line 517
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc "listen"
            if_acmpne 11
        10: .line 518
            iconst_2
            ireturn
        11: .line 519
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc "accept"
            if_acmpne 13
        12: .line 520
            iconst_4
            ireturn
        13: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc "connect,accept"
            if_acmpne 15
        14: .line 522
            iconst_5
            ireturn
        15: .line 525
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 2 /* a */
        start local 2 // char[] a
        16: .line 527
            aload 2 /* a */
            arraylength
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
        17: .line 528
            iload 3 /* i */
            ifge 81
        18: .line 529
            iload 1 /* mask */
            ireturn
        start local 4 // char c
        19: .line 540
      StackMap locals: char[] int int
      StackMap stack:
            iinc 3 /* i */ -1
        end local 4 // char c
        20: .line 535
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iconst_m1
            if_icmpeq 26
            aload 2 /* a */
            iload 3 /* i */
            caload
            dup
            istore 4 /* c */
        start local 4 // char c
        21: bipush 32
            if_icmpeq 19
        22: .line 536
            iload 4 /* c */
            bipush 13
            if_icmpeq 19
        23: .line 537
            iload 4 /* c */
            bipush 10
            if_icmpeq 19
        24: .line 538
            iload 4 /* c */
            bipush 12
            if_icmpeq 19
        25: .line 539
            iload 4 /* c */
            bipush 9
            if_icmpeq 19
        end local 4 // char c
        26: .line 545
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            bipush 6
            if_icmplt 36
            aload 2 /* a */
            iload 3 /* i */
            bipush 6
            isub
            caload
            bipush 99
            if_icmpeq 27
            aload 2 /* a */
            iload 3 /* i */
            bipush 6
            isub
            caload
            bipush 67
            if_icmpne 36
        27: .line 546
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 111
            if_icmpeq 28
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 79
            if_icmpne 36
        28: .line 547
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 110
            if_icmpeq 29
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 78
            if_icmpne 36
        29: .line 548
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 110
            if_icmpeq 30
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 78
            if_icmpne 36
        30: .line 549
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 101
            if_icmpeq 31
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 69
            if_icmpne 36
        31: .line 550
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 99
            if_icmpeq 32
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 67
            if_icmpne 36
        32: .line 551
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 116
            if_icmpeq 33
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 84
            if_icmpne 36
        33: .line 553
      StackMap locals:
      StackMap stack:
            bipush 7
            istore 5 /* matchlen */
        start local 5 // int matchlen
        34: .line 554
            iload 1 /* mask */
            iconst_1
            ior
            istore 1 /* mask */
        35: .line 556
            goto 67
        end local 5 // int matchlen
      StackMap locals:
      StackMap stack:
        36: iload 3 /* i */
            bipush 6
            if_icmplt 46
            aload 2 /* a */
            iload 3 /* i */
            bipush 6
            isub
            caload
            bipush 114
            if_icmpeq 37
            aload 2 /* a */
            iload 3 /* i */
            bipush 6
            isub
            caload
            bipush 82
            if_icmpne 46
        37: .line 557
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 101
            if_icmpeq 38
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 69
            if_icmpne 46
        38: .line 558
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 115
            if_icmpeq 39
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 83
            if_icmpne 46
        39: .line 559
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 111
            if_icmpeq 40
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 79
            if_icmpne 46
        40: .line 560
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 108
            if_icmpeq 41
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 76
            if_icmpne 46
        41: .line 561
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 118
            if_icmpeq 42
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 86
            if_icmpne 46
        42: .line 562
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 101
            if_icmpeq 43
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 69
            if_icmpne 46
        43: .line 564
      StackMap locals:
      StackMap stack:
            bipush 7
            istore 5 /* matchlen */
        start local 5 // int matchlen
        44: .line 565
            iload 1 /* mask */
            bipush 8
            ior
            istore 1 /* mask */
        45: .line 567
            goto 67
        end local 5 // int matchlen
      StackMap locals:
      StackMap stack:
        46: iload 3 /* i */
            iconst_5
            if_icmplt 55
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 108
            if_icmpeq 47
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 76
            if_icmpne 55
        47: .line 568
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 105
            if_icmpeq 48
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 73
            if_icmpne 55
        48: .line 569
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 115
            if_icmpeq 49
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 83
            if_icmpne 55
        49: .line 570
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 116
            if_icmpeq 50
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 84
            if_icmpne 55
        50: .line 571
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 101
            if_icmpeq 51
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 69
            if_icmpne 55
        51: .line 572
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 110
            if_icmpeq 52
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 78
            if_icmpne 55
        52: .line 574
      StackMap locals:
      StackMap stack:
            bipush 6
            istore 5 /* matchlen */
        start local 5 // int matchlen
        53: .line 575
            iload 1 /* mask */
            iconst_2
            ior
            istore 1 /* mask */
        54: .line 577
            goto 67
        end local 5 // int matchlen
      StackMap locals:
      StackMap stack:
        55: iload 3 /* i */
            iconst_5
            if_icmplt 64
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 97
            if_icmpeq 56
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 65
            if_icmpne 64
        56: .line 578
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 99
            if_icmpeq 57
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 67
            if_icmpne 64
        57: .line 579
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 99
            if_icmpeq 58
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 67
            if_icmpne 64
        58: .line 580
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 101
            if_icmpeq 59
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 69
            if_icmpne 64
        59: .line 581
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 112
            if_icmpeq 60
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 80
            if_icmpne 64
        60: .line 582
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 116
            if_icmpeq 61
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 84
            if_icmpne 64
        61: .line 584
      StackMap locals:
      StackMap stack:
            bipush 6
            istore 5 /* matchlen */
        start local 5 // int matchlen
        62: .line 585
            iload 1 /* mask */
            iconst_4
            ior
            istore 1 /* mask */
        63: .line 587
            goto 67
        end local 5 // int matchlen
        64: .line 589
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        65: .line 590
            new java.lang.StringBuilder
            dup
            ldc "invalid permission: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* action */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        66: .line 589
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 5 // int matchlen
        67: .line 595
      StackMap locals: java.lang.String int char[] int top int
      StackMap stack:
            iconst_0
            istore 6 /* seencomma */
        start local 6 // boolean seencomma
        68: .line 596
            goto 79
        69: .line 597
      StackMap locals: int
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iload 5 /* matchlen */
            isub
            caload
            dup
            istore 4 /* c */
        start local 4 // char c
        70: lookupswitch { // 5
                    9: 71
                   10: 71
                   12: 71
                   13: 71
                   32: 71
              default: 72
          }
        71: .line 600
      StackMap locals: java.lang.String int char[] int int int int
      StackMap stack:
            goto 78
        72: .line 602
      StackMap locals:
      StackMap stack:
            iload 4 /* c */
            bipush 44
            if_icmpne 75
            iload 3 /* i */
            iload 5 /* matchlen */
            if_icmple 75
        73: .line 603
            iconst_1
            istore 6 /* seencomma */
        74: .line 604
            goto 78
        75: .line 606
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        76: .line 607
            new java.lang.StringBuilder
            dup
            ldc "invalid permission: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* action */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        77: .line 606
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        78: .line 609
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ -1
        end local 4 // char c
        79: .line 596
      StackMap locals: java.lang.String int char[] int top int int
      StackMap stack:
            iload 3 /* i */
            iload 5 /* matchlen */
            if_icmplt 80
            iload 6 /* seencomma */
            ifeq 69
        80: .line 613
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 5 /* matchlen */
            isub
            istore 3 /* i */
        end local 6 // boolean seencomma
        end local 5 // int matchlen
        81: .line 531
      StackMap locals: java.lang.String int char[] int
      StackMap stack:
            iload 3 /* i */
            iconst_m1
            if_icmpne 20
        82: .line 616
            iload 1 /* mask */
            ireturn
        end local 3 // int i
        end local 2 // char[] a
        end local 1 // int mask
        end local 0 // java.lang.String action
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   83     0     action  Ljava/lang/String;
            5   83     1       mask  I
           16   83     2          a  [C
           17   83     3          i  I
           19   20     4          c  C
           21   26     4          c  C
           70   79     4          c  C
           34   36     5   matchlen  I
           44   46     5   matchlen  I
           53   55     5   matchlen  I
           62   64     5   matchlen  I
           67   81     5   matchlen  I
           68   81     6  seencomma  Z
    MethodParameters:
        Name  Flags
      action  

  private boolean isUntrusted();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 622
            aload 0 /* this */
            getfield java.net.SocketPermission.trusted:Z
            ifeq 1
            iconst_0
            ireturn
         1: .line 623
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.invalid:Z
            ifne 2
            aload 0 /* this */
            getfield java.net.SocketPermission.untrusted:Z
            ifeq 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
         3: .line 625
      StackMap locals:
      StackMap stack:
            getstatic java.net.SocketPermission.trustNameService:Z
            ifne 19
            aload 0 /* this */
            getfield java.net.SocketPermission.defaultDeny:Z
            ifne 5
         4: .line 626
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            invokestatic sun.net.www.URLConnection.isProxiedHost:(Ljava/lang/String;)Z
            ifeq 19
         5: .line 627
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 7
         6: .line 628
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
         7: .line 630
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            invokevirtual java.net.SocketPermission.match:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 14
         8: .line 632
            aload 0 /* this */
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            invokevirtual java.net.InetAddress.getAddress:()[B
            invokevirtual java.net.SocketPermission.authorized:(Ljava/lang/String;[B)Z
            ifne 14
         9: .line 633
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.untrusted:Z
        10: .line 634
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 1 /* debug */
        start local 1 // sun.security.util.Debug debug
        11: .line 635
            aload 1 /* debug */
            ifnull 13
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 13
        12: .line 636
            aload 1 /* debug */
            new java.lang.StringBuilder
            dup
            ldc "socket access restriction: proxied host ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " does not match "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " from reverse lookup"
            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
        13: .line 638
      StackMap locals: sun.security.util.Debug
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // sun.security.util.Debug debug
        14: .line 641
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.trusted:Z
        15: .line 643
            goto 19
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        16: astore 1 /* uhe */
        start local 1 // java.net.UnknownHostException uhe
        17: .line 644
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        18: .line 645
            aload 1 /* uhe */
            athrow
        end local 1 // java.net.UnknownHostException uhe
        19: .line 647
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Ljava/net/SocketPermission;
           11   14     1  debug  Lsun/security/util/Debug;
           17   19     1    uhe  Ljava/net/UnknownHostException;
      Exception table:
        from    to  target  type
           3    13      16  Class java.net.UnknownHostException
          14    15      16  Class java.net.UnknownHostException
    Exceptions:
      throws java.net.UnknownHostException

  void getCanonName();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 657
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 1
            aload 0 /* this */
            getfield java.net.SocketPermission.invalid:Z
            ifne 1
            aload 0 /* this */
            getfield java.net.SocketPermission.untrusted:Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: return
         2: .line 665
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 4
         3: .line 666
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getIP:()V
         4: .line 671
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 7
         5: .line 672
            aload 0 /* this */
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            iconst_0
            invokevirtual java.net.InetAddress.getHostName:(Z)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            putfield java.net.SocketPermission.cname:Ljava/lang/String;
         6: .line 673
            goto 14
         7: .line 674
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
         8: .line 675
            iconst_0
            invokevirtual java.net.InetAddress.getHostName:(Z)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
         9: .line 674
            putfield java.net.SocketPermission.cname:Ljava/lang/String;
        10: .line 677
            goto 14
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        11: astore 1 /* uhe */
        start local 1 // java.net.UnknownHostException uhe
        12: .line 678
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        13: .line 679
            aload 1 /* uhe */
            athrow
        end local 1 // java.net.UnknownHostException uhe
        14: .line 681
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Ljava/net/SocketPermission;
           12   14     1   uhe  Ljava/net/UnknownHostException;
      Exception table:
        from    to  target  type
           2    10      11  Class java.net.UnknownHostException
    Exceptions:
      throws java.net.UnknownHostException

  private static java.lang.String checkForIDN(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 690
            aload 0 /* name */
            ldc "xn--"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 1
            aload 0 /* name */
            ldc ".xn--"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 2
         1: .line 691
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            invokestatic java.net.IDN.toUnicode:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         2: .line 693
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private boolean match(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String cname
        start local 2 // java.lang.String hname
         0: .line 698
            aload 1 /* cname */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokestatic java.net.SocketPermission.checkForIDN:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* a */
        start local 3 // java.lang.String a
         1: .line 699
            aload 2 /* hname */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokestatic java.net.SocketPermission.checkForIDN:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* b */
        start local 4 // java.lang.String b
         2: .line 700
            aload 3 /* a */
            aload 4 /* b */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 701
            aload 3 /* a */
            invokevirtual java.lang.String.length:()I
            aload 4 /* b */
            invokevirtual java.lang.String.length:()I
            if_icmpeq 4
            aload 3 /* a */
            aload 4 /* b */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 46
            if_icmpne 5
         4: .line 702
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            iconst_1
            ireturn
         5: .line 704
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cdomain:Ljava/lang/String;
            ifnonnull 10
         6: .line 705
            aload 0 /* this */
            aload 3 /* a */
            invokestatic sun.security.util.RegisteredDomain.from:(Ljava/lang/String;)Ljava/util/Optional;
         7: .line 706
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/security/util/RegisteredDomain.name()Ljava/lang/String; (9 itf)
                  (Lsun/security/util/RegisteredDomain;)Ljava/lang/String;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
         8: .line 707
            aload 3 /* a */
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
         9: .line 705
            putfield java.net.SocketPermission.cdomain:Ljava/lang/String;
        10: .line 709
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.hdomain:Ljava/lang/String;
            ifnonnull 15
        11: .line 710
            aload 0 /* this */
            aload 4 /* b */
            invokestatic sun.security.util.RegisteredDomain.from:(Ljava/lang/String;)Ljava/util/Optional;
        12: .line 711
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/security/util/RegisteredDomain.name()Ljava/lang/String; (9 itf)
                  (Lsun/security/util/RegisteredDomain;)Ljava/lang/String;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
        13: .line 712
            aload 4 /* b */
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
        14: .line 710
            putfield java.net.SocketPermission.hdomain:Ljava/lang/String;
        15: .line 715
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cdomain:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 16
            aload 0 /* this */
            getfield java.net.SocketPermission.hdomain:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 16
            aload 0 /* this */
            getfield java.net.SocketPermission.cdomain:Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.hdomain:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        16: iconst_0
            ireturn
        end local 4 // java.lang.String b
        end local 3 // java.lang.String a
        end local 2 // java.lang.String hname
        end local 1 // java.lang.String cname
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   17     0   this  Ljava/net/SocketPermission;
            0   17     1  cname  Ljava/lang/String;
            0   17     2  hname  Ljava/lang/String;
            1   17     3      a  Ljava/lang/String;
            2   17     4      b  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      cname  
      hname  

  private boolean authorized(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String cname
        start local 2 // byte[] addr
         0: .line 719
            aload 2 /* addr */
            arraylength
            iconst_4
            if_icmpne 2
         1: .line 720
            aload 0 /* this */
            aload 1 /* cname */
            aload 2 /* addr */
            invokevirtual java.net.SocketPermission.authorizedIPv4:(Ljava/lang/String;[B)Z
            ireturn
         2: .line 721
      StackMap locals:
      StackMap stack:
            aload 2 /* addr */
            arraylength
            bipush 16
            if_icmpne 4
         3: .line 722
            aload 0 /* this */
            aload 1 /* cname */
            aload 2 /* addr */
            invokevirtual java.net.SocketPermission.authorizedIPv6:(Ljava/lang/String;[B)Z
            ireturn
         4: .line 724
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // byte[] addr
        end local 1 // java.lang.String cname
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljava/net/SocketPermission;
            0    5     1  cname  Ljava/lang/String;
            0    5     2   addr  [B
    MethodParameters:
       Name  Flags
      cname  
      addr   

  private boolean authorizedIPv4(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String cname
        start local 2 // byte[] addr
         0: .line 728
            ldc ""
            astore 3 /* authHost */
        start local 3 // java.lang.String authHost
         1: .line 732
            new java.lang.StringBuilder
            dup
            ldc "auth."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 733
            aload 2 /* addr */
            iconst_3
            baload
            sipush 255
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* addr */
            iconst_2
            baload
            sipush 255
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 734
            aload 2 /* addr */
            iconst_1
            baload
            sipush 255
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* addr */
            iconst_0
            baload
            sipush 255
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         4: .line 735
            ldc ".in-addr.arpa"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 732
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* authHost */
         6: .line 738
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* authHost */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* authHost */
         7: .line 739
            aload 3 /* authHost */
            iconst_0
            invokestatic java.net.InetAddress.getAllByName0:(Ljava/lang/String;Z)[Ljava/net/InetAddress;
            iconst_0
            aaload
            astore 4 /* auth */
        start local 4 // java.net.InetAddress auth
         8: .line 740
            aload 4 /* auth */
            aload 2 /* addr */
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 741
            iconst_1
            ireturn
        10: .line 743
      StackMap locals: java.lang.String java.net.InetAddress
      StackMap stack:
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 5 /* debug */
        start local 5 // sun.security.util.Debug debug
        11: .line 744
            aload 5 /* debug */
            ifnull 18
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 18
        12: .line 745
            aload 5 /* debug */
            new java.lang.StringBuilder
            dup
            ldc "socket access restriction: IP address of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* auth */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* addr */
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            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 5 // sun.security.util.Debug debug
        13: .line 747
            goto 18
        end local 4 // java.net.InetAddress auth
      StackMap locals: java.net.SocketPermission java.lang.String byte[] java.lang.String
      StackMap stack: java.net.UnknownHostException
        14: pop
        15: .line 748
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 5 /* debug */
        start local 5 // sun.security.util.Debug debug
        16: .line 749
            aload 5 /* debug */
            ifnull 18
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 18
        17: .line 750
            aload 5 /* debug */
            new java.lang.StringBuilder
            dup
            ldc "socket access restriction: forward lookup failed for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* authHost */
            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 5 // sun.security.util.Debug debug
        18: .line 753
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // java.lang.String authHost
        end local 2 // byte[] addr
        end local 1 // java.lang.String cname
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Ljava/net/SocketPermission;
            0   19     1     cname  Ljava/lang/String;
            0   19     2      addr  [B
            1   19     3  authHost  Ljava/lang/String;
            8   14     4      auth  Ljava/net/InetAddress;
           11   13     5     debug  Lsun/security/util/Debug;
           16   18     5     debug  Lsun/security/util/Debug;
      Exception table:
        from    to  target  type
           1     9      14  Class java.net.UnknownHostException
          10    13      14  Class java.net.UnknownHostException
    MethodParameters:
       Name  Flags
      cname  
      addr   

  private boolean authorizedIPv6(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String cname
        start local 2 // byte[] addr
         0: .line 757
            ldc ""
            astore 3 /* authHost */
        start local 3 // java.lang.String authHost
         1: .line 761
            new java.lang.StringBuilder
            dup
            bipush 39
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 5 /* sb */
        start local 5 // java.lang.StringBuilder sb
         2: .line 763
            bipush 15
            istore 6 /* i */
        start local 6 // int i
         3: goto 9
         4: .line 764
      StackMap locals: java.net.SocketPermission java.lang.String byte[] java.lang.String top java.lang.StringBuilder int
      StackMap stack:
            aload 5 /* sb */
            aload 2 /* addr */
            iload 6 /* i */
            baload
            bipush 15
            iand
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 765
            aload 5 /* sb */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 766
            aload 5 /* sb */
            aload 2 /* addr */
            iload 6 /* i */
            baload
            iconst_4
            ishr
            bipush 15
            iand
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 767
            aload 5 /* sb */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 763
            iinc 6 /* i */ -1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* i */
            ifge 4
        end local 6 // int i
        10: .line 769
            new java.lang.StringBuilder
            dup
            ldc "auth."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "IP6.ARPA"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* authHost */
        11: .line 771
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* authHost */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* authHost */
        12: .line 772
            aload 3 /* authHost */
            iconst_0
            invokestatic java.net.InetAddress.getAllByName0:(Ljava/lang/String;Z)[Ljava/net/InetAddress;
            iconst_0
            aaload
            astore 4 /* auth */
        start local 4 // java.net.InetAddress auth
        13: .line 773
            aload 4 /* auth */
            aload 2 /* addr */
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 774
            iconst_1
            ireturn
        15: .line 775
      StackMap locals: java.net.SocketPermission java.lang.String byte[] java.lang.String java.net.InetAddress java.lang.StringBuilder
      StackMap stack:
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 6 /* debug */
        start local 6 // sun.security.util.Debug debug
        16: .line 776
            aload 6 /* debug */
            ifnull 23
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 23
        17: .line 777
            aload 6 /* debug */
            new java.lang.StringBuilder
            dup
            ldc "socket access restriction: IP address of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* auth */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* addr */
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            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 6 // sun.security.util.Debug debug
        end local 5 // java.lang.StringBuilder sb
        18: .line 779
            goto 23
        end local 4 // java.net.InetAddress auth
      StackMap locals: java.net.SocketPermission java.lang.String byte[] java.lang.String
      StackMap stack: java.net.UnknownHostException
        19: pop
        20: .line 780
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 5 /* debug */
        start local 5 // sun.security.util.Debug debug
        21: .line 781
            aload 5 /* debug */
            ifnull 23
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 23
        22: .line 782
            aload 5 /* debug */
            new java.lang.StringBuilder
            dup
            ldc "socket access restriction: forward lookup failed for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* authHost */
            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 5 // sun.security.util.Debug debug
        23: .line 785
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // java.lang.String authHost
        end local 2 // byte[] addr
        end local 1 // java.lang.String cname
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Ljava/net/SocketPermission;
            0   24     1     cname  Ljava/lang/String;
            0   24     2      addr  [B
            1   24     3  authHost  Ljava/lang/String;
           13   19     4      auth  Ljava/net/InetAddress;
            2   18     5        sb  Ljava/lang/StringBuilder;
            3   10     6         i  I
           16   18     6     debug  Lsun/security/util/Debug;
           21   23     5     debug  Lsun/security/util/Debug;
      Exception table:
        from    to  target  type
           1    14      19  Class java.net.UnknownHostException
          15    18      19  Class java.net.UnknownHostException
    MethodParameters:
       Name  Flags
      cname  
      addr   

  void getIP();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 796
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 1
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifne 1
            aload 0 /* this */
            getfield java.net.SocketPermission.invalid:Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: return
         2: .line 801
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 5
         3: .line 803
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            iconst_1
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            bipush 93
            invokevirtual java.lang.String.indexOf:(I)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* host */
        start local 1 // java.lang.String host
         4: .line 804
            goto 10
        end local 1 // java.lang.String host
         5: .line 805
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 2 /* i */
        start local 2 // int i
         6: .line 806
            iload 2 /* i */
            iconst_m1
            if_icmpne 9
         7: .line 807
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            astore 1 /* host */
        start local 1 // java.lang.String host
         8: goto 10
        end local 1 // java.lang.String host
         9: .line 809
      StackMap locals: java.net.SocketPermission top int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            iconst_0
            iload 2 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* host */
        end local 2 // int i
        start local 1 // java.lang.String host
        10: .line 813
      StackMap locals: java.net.SocketPermission java.lang.String
      StackMap stack:
            aload 0 /* this */
        11: .line 814
            iconst_1
            anewarray java.net.InetAddress
            dup
            iconst_0
            aload 1 /* host */
            iconst_0
            invokestatic java.net.InetAddress.getAllByName0:(Ljava/lang/String;Z)[Ljava/net/InetAddress;
            iconst_0
            aaload
            aastore
        12: .line 813
            putfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
        end local 1 // java.lang.String host
        13: .line 816
            goto 20
      StackMap locals: java.net.SocketPermission
      StackMap stack: java.net.UnknownHostException
        14: astore 1 /* uhe */
        start local 1 // java.net.UnknownHostException uhe
        15: .line 817
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        16: .line 818
            aload 1 /* uhe */
            athrow
        end local 1 // java.net.UnknownHostException uhe
        17: .line 819
      StackMap locals:
      StackMap stack: java.lang.IndexOutOfBoundsException
            pop
        18: .line 820
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        19: .line 821
            new java.net.UnknownHostException
            dup
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokespecial java.net.UnknownHostException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 823
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Ljava/net/SocketPermission;
            4    5     1  host  Ljava/lang/String;
            8    9     1  host  Ljava/lang/String;
           10   13     1  host  Ljava/lang/String;
            6   10     2     i  I
           15   17     1   uhe  Ljava/net/UnknownHostException;
      Exception table:
        from    to  target  type
           2    13      14  Class java.net.UnknownHostException
           2    13      17  Class java.lang.IndexOutOfBoundsException
    Exceptions:
      throws java.net.UnknownHostException

  public boolean implies(java.security.Permission);
    descriptor: (Ljava/security/Permission;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.security.Permission p
         0: .line 863
            aload 1 /* p */
            instanceof java.net.SocketPermission
            ifne 2
         1: .line 864
            iconst_0
            ireturn
         2: .line 866
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            aload 0 /* this */
            if_acmpne 4
         3: .line 867
            iconst_1
            ireturn
         4: .line 869
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            checkcast java.net.SocketPermission
            astore 2 /* that */
        start local 2 // java.net.SocketPermission that
         5: .line 871
            aload 0 /* this */
            getfield java.net.SocketPermission.mask:I
            aload 2 /* that */
            getfield java.net.SocketPermission.mask:I
            iand
            aload 2 /* that */
            getfield java.net.SocketPermission.mask:I
            if_icmpne 8
         6: .line 872
            aload 0 /* this */
            aload 2 /* that */
            invokevirtual java.net.SocketPermission.impliesIgnoreMask:(Ljava/net/SocketPermission;)Z
            ifeq 8
         7: .line 871
            iconst_1
            ireturn
      StackMap locals: java.net.SocketPermission
      StackMap stack:
         8: iconst_0
            ireturn
        end local 2 // java.net.SocketPermission that
        end local 1 // java.security.Permission p
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/net/SocketPermission;
            0    9     1     p  Ljava/security/Permission;
            5    9     2  that  Ljava/net/SocketPermission;
    MethodParameters:
      Name  Flags
      p     

  boolean impliesIgnoreMask(java.net.SocketPermission);
    descriptor: (Ljava/net/SocketPermission;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.net.SocketPermission that
         0: .line 901
            aload 1 /* that */
            getfield java.net.SocketPermission.mask:I
            bipush 8
            iand
            aload 1 /* that */
            getfield java.net.SocketPermission.mask:I
            if_icmpeq 10
         1: .line 904
            aload 1 /* that */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            if_icmplt 3
         2: .line 905
            aload 1 /* that */
            getfield java.net.SocketPermission.portrange:[I
            iconst_1
            iaload
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_1
            iaload
            if_icmple 10
         3: .line 908
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.includesEphemerals:()Z
            ifne 4
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.includesEphemerals:()Z
            ifeq 9
         4: .line 909
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_1
            iaload
         5: .line 910
            aload 1 /* that */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            aload 1 /* that */
            getfield java.net.SocketPermission.portrange:[I
            iconst_1
            iaload
         6: .line 909
            invokestatic java.net.SocketPermission.inRange:(IIII)Z
         7: .line 910
            ifne 10
         8: .line 912
            iconst_0
            ireturn
         9: .line 915
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        10: .line 921
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 12
            ldc ""
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 922
            iconst_1
            ireturn
        12: .line 925
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.invalid:Z
            ifne 13
            aload 1 /* that */
            getfield java.net.SocketPermission.invalid:Z
            ifeq 14
        13: .line 926
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.compareHostnames:(Ljava/net/SocketPermission;)Z
            ireturn
        14: .line 930
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 29
        15: .line 931
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 17
        16: .line 932
            iconst_0
            ireturn
        17: .line 934
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 20
        18: .line 935
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
        19: ireturn
        20: .line 937
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 22
        21: .line 938
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getIP:()V
        22: .line 940
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        23: goto 27
        24: .line 941
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iload 2 /* i */
            aaload
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 26
        25: .line 942
            iconst_1
            ireturn
        26: .line 940
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 2 /* i */
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            arraylength
            if_icmplt 24
        28: .line 947
            iconst_0
            ireturn
        end local 2 // int i
        29: .line 951
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifne 30
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 39
        30: .line 955
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 33
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 33
        31: .line 956
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
        32: ireturn
        33: .line 959
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 35
        34: .line 960
            iconst_0
            ireturn
        35: .line 964
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 37
        36: .line 965
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        37: .line 967
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
        38: ireturn
        39: .line 971
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 41
        40: .line 972
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getIP:()V
        41: .line 975
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 43
        42: .line 976
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getIP:()V
        43: .line 979
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 44
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.isUntrusted:()Z
            ifne 62
        44: .line 980
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* j */
        start local 3 // int j
        45: goto 53
        46: .line 981
      StackMap locals: java.net.SocketPermission java.net.SocketPermission top int
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        47: goto 51
        48: .line 982
      StackMap locals: java.net.SocketPermission java.net.SocketPermission int int
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iload 3 /* j */
            aaload
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iload 2 /* i */
            aaload
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 50
        49: .line 983
            iconst_1
            ireturn
        50: .line 981
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        51: iload 2 /* i */
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            arraylength
            if_icmplt 48
        52: .line 980
            iinc 3 /* j */ 1
        end local 2 // int i
      StackMap locals: java.net.SocketPermission java.net.SocketPermission top int
      StackMap stack:
        53: iload 3 /* j */
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            arraylength
            if_icmplt 46
        54: .line 989
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 56
        55: .line 990
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        56: .line 993
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 58
        57: .line 994
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        58: .line 997
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
        59: ireturn
        end local 3 // int j
        60: .line 1000
      StackMap locals: java.net.SocketPermission java.net.SocketPermission
      StackMap stack: java.net.UnknownHostException
            pop
        61: .line 1001
            aload 0 /* this */
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.compareHostnames:(Ljava/net/SocketPermission;)Z
            ireturn
        62: .line 1007
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.net.SocketPermission that
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   63     0  this  Ljava/net/SocketPermission;
            0   63     1  that  Ljava/net/SocketPermission;
           23   29     2     i  I
           47   53     2     i  I
           45   60     3     j  I
      Exception table:
        from    to  target  type
          14    16      60  Class java.net.UnknownHostException
          17    19      60  Class java.net.UnknownHostException
          20    25      60  Class java.net.UnknownHostException
          26    28      60  Class java.net.UnknownHostException
          29    32      60  Class java.net.UnknownHostException
          33    34      60  Class java.net.UnknownHostException
          35    38      60  Class java.net.UnknownHostException
          39    49      60  Class java.net.UnknownHostException
          50    59      60  Class java.net.UnknownHostException
    MethodParameters:
      Name  Flags
      that  

  private boolean compareHostnames(java.net.SocketPermission);
    descriptor: (Ljava/net/SocketPermission;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.net.SocketPermission that
         0: .line 1013
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            astore 2 /* thisHost */
        start local 2 // java.lang.String thisHost
         1: .line 1014
            aload 1 /* that */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            astore 3 /* thatHost */
        start local 3 // java.lang.String thatHost
         2: .line 1016
            aload 2 /* thisHost */
            ifnonnull 4
         3: .line 1017
            iconst_0
            ireturn
         4: .line 1018
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 10
         5: .line 1019
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            istore 4 /* cnameLength */
        start local 4 // int cnameLength
         6: .line 1020
            aload 3 /* thatHost */
            iconst_1
         7: .line 1021
            aload 3 /* thatHost */
            invokevirtual java.lang.String.length:()I
            iload 4 /* cnameLength */
            isub
         8: .line 1022
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            iconst_0
            iload 4 /* cnameLength */
         9: .line 1020
            invokevirtual java.lang.String.regionMatches:(ZILjava/lang/String;II)Z
            ireturn
        end local 4 // int cnameLength
        10: .line 1024
      StackMap locals:
      StackMap stack:
            aload 2 /* thisHost */
            aload 3 /* thatHost */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ireturn
        end local 3 // java.lang.String thatHost
        end local 2 // java.lang.String thisHost
        end local 1 // java.net.SocketPermission that
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Ljava/net/SocketPermission;
            0   11     1         that  Ljava/net/SocketPermission;
            1   11     2     thisHost  Ljava/lang/String;
            2   11     3     thatHost  Ljava/lang/String;
            6   10     4  cnameLength  I
    MethodParameters:
      Name  Flags
      that  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.Object obj
         0: .line 1040
            aload 1 /* obj */
            aload 0 /* this */
            if_acmpne 2
         1: .line 1041
            iconst_1
            ireturn
         2: .line 1043
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.net.SocketPermission
            ifne 4
         3: .line 1044
            iconst_0
            ireturn
         4: .line 1046
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast java.net.SocketPermission
            astore 2 /* that */
        start local 2 // java.net.SocketPermission that
         5: .line 1051
            aload 0 /* this */
            getfield java.net.SocketPermission.mask:I
            aload 2 /* that */
            getfield java.net.SocketPermission.mask:I
            if_icmpeq 6
            iconst_0
            ireturn
         6: .line 1053
      StackMap locals: java.net.SocketPermission
      StackMap stack:
            aload 2 /* that */
            getfield java.net.SocketPermission.mask:I
            bipush 8
            iand
            aload 2 /* that */
            getfield java.net.SocketPermission.mask:I
            if_icmpeq 10
         7: .line 1055
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            aload 2 /* that */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            if_icmpne 9
         8: .line 1056
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_1
            iaload
            aload 2 /* that */
            getfield java.net.SocketPermission.portrange:[I
            iconst_1
            iaload
            if_icmpeq 10
         9: .line 1057
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        10: .line 1068
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            aload 2 /* that */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 12
        11: .line 1069
            iconst_1
            ireturn
        12: .line 1077
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        13: .line 1078
            aload 2 /* that */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        14: .line 1079
            goto 17
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        15: pop
        16: .line 1080
            iconst_0
            ireturn
        17: .line 1083
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.invalid:Z
            ifne 18
            aload 2 /* that */
            getfield java.net.SocketPermission.invalid:Z
            ifeq 19
        18: .line 1084
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        19: .line 1086
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnull 21
        20: .line 1087
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            aload 2 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ireturn
        21: .line 1090
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.net.SocketPermission that
        end local 1 // java.lang.Object obj
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Ljava/net/SocketPermission;
            0   22     1   obj  Ljava/lang/Object;
            5   22     2  that  Ljava/net/SocketPermission;
      Exception table:
        from    to  target  type
          12    14      15  Class java.net.UnknownHostException
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 1107
            aload 0 /* this */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifne 1
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 2
         1: .line 1108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
         2: .line 1112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
         3: .line 1113
            goto 5
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
         4: pop
         5: .line 1117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.invalid:Z
            ifne 6
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 7
         6: .line 1118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
         7: .line 1120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljava/net/SocketPermission;
      Exception table:
        from    to  target  type
           2     3       4  Class java.net.UnknownHostException

  int getMask();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 1130
            aload 0 /* this */
            getfield java.net.SocketPermission.mask:I
            ireturn
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/SocketPermission;

  private static java.lang.String getActions(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // int mask
         0: .line 1143
            new java.util.StringJoiner
            dup
            ldc ","
            invokespecial java.util.StringJoiner.<init>:(Ljava/lang/CharSequence;)V
            astore 1 /* sj */
        start local 1 // java.util.StringJoiner sj
         1: .line 1144
            iload 0 /* mask */
            iconst_1
            iand
            iconst_1
            if_icmpne 3
         2: .line 1145
            aload 1 /* sj */
            ldc "connect"
            invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
            pop
         3: .line 1147
      StackMap locals: java.util.StringJoiner
      StackMap stack:
            iload 0 /* mask */
            iconst_2
            iand
            iconst_2
            if_icmpne 5
         4: .line 1148
            aload 1 /* sj */
            ldc "listen"
            invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
            pop
         5: .line 1150
      StackMap locals:
      StackMap stack:
            iload 0 /* mask */
            iconst_4
            iand
            iconst_4
            if_icmpne 7
         6: .line 1151
            aload 1 /* sj */
            ldc "accept"
            invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
            pop
         7: .line 1153
      StackMap locals:
      StackMap stack:
            iload 0 /* mask */
            bipush 8
            iand
            bipush 8
            if_icmpne 9
         8: .line 1154
            aload 1 /* sj */
            ldc "resolve"
            invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
            pop
         9: .line 1156
      StackMap locals:
      StackMap stack:
            aload 1 /* sj */
            invokevirtual java.util.StringJoiner.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.util.StringJoiner sj
        end local 0 // int mask
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  mask  I
            1   10     1    sj  Ljava/util/StringJoiner;
    MethodParameters:
      Name  Flags
      mask  

  public java.lang.String getActions();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 1169
            aload 0 /* this */
            getfield java.net.SocketPermission.actions:Ljava/lang/String;
            ifnonnull 2
         1: .line 1170
            aload 0 /* this */
            aload 0 /* this */
            getfield java.net.SocketPermission.mask:I
            invokestatic java.net.SocketPermission.getActions:(I)Ljava/lang/String;
            putfield java.net.SocketPermission.actions:Ljava/lang/String;
         2: .line 1172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.actions:Ljava/lang/String;
            areturn
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/net/SocketPermission;

  public java.security.PermissionCollection newPermissionCollection();
    descriptor: ()Ljava/security/PermissionCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 1188
            new java.net.SocketPermissionCollection
            dup
            invokespecial java.net.SocketPermissionCollection.<init>:()V
            areturn
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/SocketPermission;

  private synchronized void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.io.ObjectOutputStream s
         0: .line 1202
            aload 0 /* this */
            getfield java.net.SocketPermission.actions:Ljava/lang/String;
            ifnonnull 2
         1: .line 1203
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getActions:()Ljava/lang/String;
            pop
         2: .line 1204
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         3: .line 1205
            return
        end local 1 // java.io.ObjectOutputStream s
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/net/SocketPermission;
            0    4     1     s  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  private synchronized void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.io.ObjectInputStream s
         0: .line 1216
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 1217
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.actions:Ljava/lang/String;
            invokestatic java.net.SocketPermission.getMask:(Ljava/lang/String;)I
            invokevirtual java.net.SocketPermission.init:(Ljava/lang/String;I)V
         2: .line 1218
            return
        end local 1 // java.io.ObjectInputStream s
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/net/SocketPermission;
            0    3     1     s  Ljava/io/ObjectInputStream;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      s     

  private static int initEphemeralPorts(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String suffix
        start local 1 // int defval
         0: .line 1226
            new java.net.SocketPermission$1
            dup
            aload 0 /* suffix */
            invokespecial java.net.SocketPermission$1.<init>:(Ljava/lang/String;)V
         1: .line 1225
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 1 // int defval
        end local 0 // java.lang.String suffix
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  suffix  Ljava/lang/String;
            0    2     1  defval  I
    MethodParameters:
        Name  Flags
      suffix  
      defval  

  private static boolean inRange(int, int, int, int);
    descriptor: (IIII)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // int policyLow
        start local 1 // int policyHigh
        start local 2 // int targetLow
        start local 3 // int targetHigh
         0: .line 1251
            getstatic java.net.SocketPermission$EphemeralRange.low:I
            istore 4 /* ephemeralLow */
        start local 4 // int ephemeralLow
         1: .line 1252
            getstatic java.net.SocketPermission$EphemeralRange.high:I
            istore 5 /* ephemeralHigh */
        start local 5 // int ephemeralHigh
         2: .line 1254
            iload 2 /* targetLow */
            ifne 8
         3: .line 1256
            iload 0 /* policyLow */
            iload 1 /* policyHigh */
            iload 4 /* ephemeralLow */
            iload 5 /* ephemeralHigh */
            invokestatic java.net.SocketPermission.inRange:(IIII)Z
            ifne 5
         4: .line 1257
            iconst_0
            ireturn
         5: .line 1259
      StackMap locals: int int
      StackMap stack:
            iload 3 /* targetHigh */
            ifne 7
         6: .line 1261
            iconst_1
            ireturn
         7: .line 1264
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* targetLow */
         8: .line 1267
      StackMap locals:
      StackMap stack:
            iload 0 /* policyLow */
            ifne 11
            iload 1 /* policyHigh */
            ifne 11
         9: .line 1269
            iload 2 /* targetLow */
            iload 4 /* ephemeralLow */
            if_icmplt 10
            iload 3 /* targetHigh */
            iload 5 /* ephemeralHigh */
            if_icmpgt 10
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        10: iconst_0
            ireturn
        11: .line 1272
      StackMap locals:
      StackMap stack:
            iload 0 /* policyLow */
            ifeq 14
        12: .line 1274
            iload 2 /* targetLow */
            iload 0 /* policyLow */
            if_icmplt 13
            iload 3 /* targetHigh */
            iload 1 /* policyHigh */
            if_icmpgt 13
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        13: iconst_0
            ireturn
        14: .line 1281
      StackMap locals:
      StackMap stack:
            iload 1 /* policyHigh */
            iload 4 /* ephemeralLow */
            iconst_1
            isub
            if_icmplt 17
        15: .line 1282
            iload 3 /* targetHigh */
            iload 5 /* ephemeralHigh */
            if_icmpgt 16
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        16: iconst_0
            ireturn
        17: .line 1289
      StackMap locals:
      StackMap stack:
            iload 2 /* targetLow */
            iload 1 /* policyHigh */
            if_icmpgt 18
            iload 3 /* targetHigh */
            iload 1 /* policyHigh */
            if_icmple 21
        18: .line 1290
      StackMap locals:
      StackMap stack:
            iload 2 /* targetLow */
            iload 4 /* ephemeralLow */
            if_icmplt 20
            iload 3 /* targetHigh */
            iload 5 /* ephemeralHigh */
        19: .line 1289
            if_icmple 21
      StackMap locals:
      StackMap stack:
        20: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        21: iconst_1
            ireturn
        end local 5 // int ephemeralHigh
        end local 4 // int ephemeralLow
        end local 3 // int targetHigh
        end local 2 // int targetLow
        end local 1 // int policyHigh
        end local 0 // int policyLow
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   22     0      policyLow  I
            0   22     1     policyHigh  I
            0   22     2      targetLow  I
            0   22     3     targetHigh  I
            1   22     4   ephemeralLow  I
            2   22     5  ephemeralHigh  I
    MethodParameters:
            Name  Flags
      policyLow   
      policyHigh  
      targetLow   
      targetHigh  
}
SourceFile: "SocketPermission.java"
NestMembers:
  java.net.SocketPermission$1  java.net.SocketPermission$EphemeralRange
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  java.net.SocketPermission$1
  private EphemeralRange = java.net.SocketPermission$EphemeralRange of java.net.SocketPermission