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 237
            aconst_null
            putstatic java.net.SocketPermission.debug:Lsun/security/util/Debug;
         1: .line 238
            iconst_0
            putstatic java.net.SocketPermission.debugInit:Z
         2: .line 248
            new sun.security.action.GetBooleanAction
            dup
            ldc "sun.net.trustNameService"
            invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
         3: .line 247
            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 249
            aload 0 /* tmp */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putstatic java.net.SocketPermission.trustNameService:Z
        end local 0 // java.lang.Boolean tmp
         5: .line 250
            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 253
            getstatic java.net.SocketPermission.debugInit:Z
            ifne 3
         1: .line 254
            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 255
            iconst_1
            putstatic java.net.SocketPermission.debugInit:Z
         3: .line 257
      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 291
            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 227
            aload 0 /* this */
            iconst_0
            putfield java.net.SocketPermission.defaultDeny:Z
         2: .line 293
            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 294
            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 298
            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 227
            aload 0 /* this */
            iconst_0
            putfield java.net.SocketPermission.defaultDeny:Z
         2: .line 300
            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 301
            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 304
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.defaultDeny:Z
         1: .line 305
            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 308
            aload 0 /* host */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 309
            ldc "localhost"
            areturn
         2: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* host */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpeq 17
         3: .line 317
            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 322
            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 323
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            istore 3 /* tokens */
        start local 3 // int tokens
         7: .line 324
            iload 3 /* tokens */
            bipush 9
            if_icmpne 13
         8: .line 326
            aload 0 /* host */
            bipush 58
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* ind */
         9: .line 327
            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 328
            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 327
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 0 /* host */
        12: .line 329
            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 331
            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 332
            goto 17
        16: .line 334
      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 339
      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 347
            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 348
      StackMap locals:
      StackMap stack:
            iconst_2
            newarray 10
            dup
            iconst_1
            ldc 65535
            iastore
            areturn
         2: .line 351
      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 353
            iload 2 /* dash */
            iconst_m1
            if_icmpne 6
         4: .line 354
            aload 1 /* port */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 3 /* p */
        start local 3 // int p
         5: .line 355
            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 357
      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 358
            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 361
            aload 3 /* low */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 11
         9: .line 362
            iconst_0
            istore 5 /* l */
        start local 5 // int l
        10: .line 363
            goto 12
        end local 5 // int l
        11: .line 364
      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 367
      StackMap locals: int
      StackMap stack:
            aload 4 /* high */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 15
        13: .line 368
            ldc 65535
            istore 6 /* h */
        start local 6 // int h
        14: .line 369
            goto 16
        end local 6 // int h
        15: .line 370
      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 372
      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 373
      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 375
      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 384
            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 395
            iload 2 /* mask */
            bipush 15
            iand
            iload 2 /* mask */
            if_icmpeq 2
         1: .line 396
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid actions mask"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* mask */
            bipush 8
            ior
            putfield java.net.SocketPermission.mask:I
         3: .line 410
            iconst_0
            istore 3 /* rb */
        start local 3 // int rb
         4: .line 411
            iconst_0
            istore 4 /* start */
        start local 4 // int start
         5: iconst_0
            istore 5 /* end */
        start local 5 // int end
         6: .line 412
            iconst_m1
            istore 6 /* sep */
        start local 6 // int sep
         7: .line 413
            aload 1 /* host */
            astore 7 /* hostport */
        start local 7 // java.lang.String hostport
         8: .line 414
            aload 1 /* host */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 18
         9: .line 415
            iconst_1
            istore 4 /* start */
        10: .line 416
            aload 1 /* host */
            bipush 93
            invokevirtual java.lang.String.indexOf:(I)I
            istore 3 /* rb */
        11: .line 417
            iload 3 /* rb */
            iconst_m1
            if_icmpeq 14
        12: .line 418
            aload 1 /* host */
            iload 4 /* start */
            iload 3 /* rb */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* host */
        13: .line 419
            goto 16
        14: .line 421
      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 420
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 423
      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 424
            goto 23
        18: .line 425
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* start */
        19: .line 426
            aload 1 /* host */
            bipush 58
            iload 3 /* rb */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* sep */
        20: .line 427
            iload 6 /* sep */
            istore 5 /* end */
        21: .line 428
            iload 6 /* sep */
            iconst_m1
            if_icmpeq 23
        22: .line 429
            aload 1 /* host */
            iload 4 /* start */
            iload 5 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* host */
        23: .line 433
      StackMap locals:
      StackMap stack:
            iload 6 /* sep */
            iconst_m1
            if_icmpeq 30
        24: .line 434
            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 436
            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 437
            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 439
            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 438
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.String port
        30: .line 442
      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 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* host */
            putfield java.net.SocketPermission.hostname:Ljava/lang/String;
        32: .line 448
            aload 1 /* host */
            bipush 42
            invokevirtual java.lang.String.lastIndexOf:(I)I
            ifle 35
        33: .line 450
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid host wildcard specification"
        34: .line 449
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        35: .line 451
      StackMap locals:
      StackMap stack:
            aload 1 /* host */
            ldc "*"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 46
        36: .line 452
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.wildcard:Z
        37: .line 453
            aload 1 /* host */
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 40
        38: .line 454
            aload 0 /* this */
            ldc ""
            putfield java.net.SocketPermission.cname:Ljava/lang/String;
        39: .line 455
            goto 45
      StackMap locals:
      StackMap stack:
        40: aload 1 /* host */
            ldc "*."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 43
        41: .line 456
            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 457
            goto 45
        43: .line 459
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid host wildcard specification"
        44: .line 458
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        45: .line 461
      StackMap locals:
      StackMap stack:
            return
        46: .line 463
      StackMap locals:
      StackMap stack:
            aload 1 /* host */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 60
        47: .line 465
            aload 1 /* host */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 8 /* ch */
        start local 8 // char ch
        48: .line 466
            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 467
      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 468
            aload 9 /* ip */
            ifnonnull 52
        51: .line 469
            aload 1 /* host */
            invokestatic sun.net.util.IPAddressUtil.textToNumericFormatV6:(Ljava/lang/String;)[B
            astore 9 /* ip */
        52: .line 471
      StackMap locals: byte[]
      StackMap stack:
            aload 9 /* ip */
            ifnull 60
        53: .line 473
            aload 0 /* this */
        54: .line 475
            iconst_1
            anewarray java.net.InetAddress
            dup
            iconst_0
            aload 9 /* ip */
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            aastore
        55: .line 473
            putfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
        56: .line 476
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.init_with_ip:Z
        57: .line 477
            goto 60
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        58: pop
        59: .line 479
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        end local 9 // byte[] ip
        end local 8 // char ch
        60: .line 485
      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 495
            aload 0 /* action */
            ifnonnull 2
         1: .line 496
            new java.lang.NullPointerException
            dup
            ldc "action can't be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 4
         3: .line 500
            new java.lang.IllegalArgumentException
            dup
            ldc "action can't be empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 503
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* mask */
        start local 1 // int mask
         5: .line 507
            aload 0 /* action */
            ldc "resolve"
            if_acmpne 7
         6: .line 508
            bipush 8
            ireturn
         7: .line 509
      StackMap locals: int
      StackMap stack:
            aload 0 /* action */
            ldc "connect"
            if_acmpne 9
         8: .line 510
            iconst_1
            ireturn
         9: .line 511
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc "listen"
            if_acmpne 11
        10: .line 512
            iconst_2
            ireturn
        11: .line 513
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc "accept"
            if_acmpne 13
        12: .line 514
            iconst_4
            ireturn
        13: .line 515
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc "connect,accept"
            if_acmpne 15
        14: .line 516
            iconst_5
            ireturn
        15: .line 519
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 2 /* a */
        start local 2 // char[] a
        16: .line 521
            aload 2 /* a */
            arraylength
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
        17: .line 522
            iload 3 /* i */
            ifge 79
        18: .line 523
            iload 1 /* mask */
            ireturn
        start local 4 // char c
        19: .line 534
      StackMap locals: char[] int int
      StackMap stack:
            iinc 3 /* i */ -1
        end local 4 // char c
        20: .line 529
      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 530
            iload 4 /* c */
            bipush 13
            if_icmpeq 19
        23: .line 531
            iload 4 /* c */
            bipush 10
            if_icmpeq 19
        24: .line 532
            iload 4 /* c */
            bipush 12
            if_icmpeq 19
        25: .line 533
            iload 4 /* c */
            bipush 9
            if_icmpeq 19
        end local 4 // char c
        26: .line 539
      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 540
      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 541
      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 542
      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 543
      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 544
      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 545
      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 547
      StackMap locals:
      StackMap stack:
            bipush 7
            istore 5 /* matchlen */
        start local 5 // int matchlen
        34: .line 548
            iload 1 /* mask */
            iconst_1
            ior
            istore 1 /* mask */
        35: .line 550
            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 551
      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 552
      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 553
      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 554
      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 555
      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 556
      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 558
      StackMap locals:
      StackMap stack:
            bipush 7
            istore 5 /* matchlen */
        start local 5 // int matchlen
        44: .line 559
            iload 1 /* mask */
            bipush 8
            ior
            istore 1 /* mask */
        45: .line 561
            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 562
      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 563
      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 564
      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 565
      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 566
      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 568
      StackMap locals:
      StackMap stack:
            bipush 6
            istore 5 /* matchlen */
        start local 5 // int matchlen
        53: .line 569
            iload 1 /* mask */
            iconst_2
            ior
            istore 1 /* mask */
        54: .line 571
            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 572
      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 573
      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 574
      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 575
      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 576
      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 578
      StackMap locals:
      StackMap stack:
            bipush 6
            istore 5 /* matchlen */
        start local 5 // int matchlen
        62: .line 579
            iload 1 /* mask */
            iconst_4
            ior
            istore 1 /* mask */
        63: .line 581
            goto 67
        end local 5 // int matchlen
        64: .line 583
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        65: .line 584
            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 583
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 5 // int matchlen
        67: .line 589
      StackMap locals: java.lang.String int char[] int top int
      StackMap stack:
            iconst_0
            istore 6 /* seencomma */
        start local 6 // boolean seencomma
        68: .line 590
            goto 77
        69: .line 591
      StackMap locals: int
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iload 5 /* matchlen */
            isub
            caload
            lookupswitch { // 6
                    9: 72
                   10: 72
                   12: 72
                   13: 72
                   32: 72
                   44: 70
              default: 73
          }
        70: .line 593
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* seencomma */
        71: .line 594
            goto 76
        72: .line 597
      StackMap locals:
      StackMap stack:
            goto 76
        73: .line 599
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        74: .line 600
            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;
        75: .line 599
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        76: .line 602
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ -1
        77: .line 590
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 5 /* matchlen */
            if_icmplt 78
            iload 6 /* seencomma */
            ifeq 69
        78: .line 606
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 5 /* matchlen */
            isub
            istore 3 /* i */
        end local 6 // boolean seencomma
        end local 5 // int matchlen
        79: .line 525
      StackMap locals: java.lang.String int char[] int
      StackMap stack:
            iload 3 /* i */
            iconst_m1
            if_icmpne 20
        80: .line 609
            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   81     0     action  Ljava/lang/String;
            5   81     1       mask  I
           16   81     2          a  [C
           17   81     3          i  I
           19   20     4          c  C
           21   26     4          c  C
           34   36     5   matchlen  I
           44   46     5   matchlen  I
           53   55     5   matchlen  I
           62   64     5   matchlen  I
           67   79     5   matchlen  I
           68   79     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 615
            aload 0 /* this */
            getfield java.net.SocketPermission.trusted:Z
            ifeq 1
            iconst_0
            ireturn
         1: .line 616
      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 618
      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 619
            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 620
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 7
         6: .line 621
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
         7: .line 623
      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 625
            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 626
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.untrusted:Z
        10: .line 627
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 1 /* debug */
        start local 1 // sun.security.util.Debug debug
        11: .line 628
            aload 1 /* debug */
            ifnull 13
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 13
        12: .line 629
            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 631
      StackMap locals: sun.security.util.Debug
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // sun.security.util.Debug debug
        14: .line 634
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.trusted:Z
        15: .line 636
            goto 19
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        16: astore 1 /* uhe */
        start local 1 // java.net.UnknownHostException uhe
        17: .line 637
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        18: .line 638
            aload 1 /* uhe */
            athrow
        end local 1 // java.net.UnknownHostException uhe
        19: .line 640
      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 650
            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 658
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 4
         3: .line 659
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getIP:()V
         4: .line 664
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 7
         5: .line 665
            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 666
            goto 14
         7: .line 667
      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 668
            iconst_0
            invokevirtual java.net.InetAddress.getHostName:(Z)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
         9: .line 667
            putfield java.net.SocketPermission.cname:Ljava/lang/String;
        10: .line 670
            goto 14
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        11: astore 1 /* uhe */
        start local 1 // java.net.UnknownHostException uhe
        12: .line 671
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        13: .line 672
            aload 1 /* uhe */
            athrow
        end local 1 // java.net.UnknownHostException uhe
        14: .line 674
      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 683
            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 684
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            invokestatic java.net.IDN.toUnicode:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         2: .line 686
      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 691
            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 692
            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 693
            aload 3 /* a */
            aload 4 /* b */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 694
            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 695
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            iconst_1
            ireturn
         5: .line 697
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cdomain:Ljava/lang/String;
            ifnonnull 10
         6: .line 698
            aload 0 /* this */
            aload 3 /* a */
            invokestatic sun.security.util.RegisteredDomain.from:(Ljava/lang/String;)Ljava/util/Optional;
         7: .line 699
            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 700
            aload 3 /* a */
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
         9: .line 698
            putfield java.net.SocketPermission.cdomain:Ljava/lang/String;
        10: .line 702
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.hdomain:Ljava/lang/String;
            ifnonnull 15
        11: .line 703
            aload 0 /* this */
            aload 4 /* b */
            invokestatic sun.security.util.RegisteredDomain.from:(Ljava/lang/String;)Ljava/util/Optional;
        12: .line 704
            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 705
            aload 4 /* b */
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
        14: .line 703
            putfield java.net.SocketPermission.hdomain:Ljava/lang/String;
        15: .line 708
      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 712
            aload 2 /* addr */
            arraylength
            iconst_4
            if_icmpne 2
         1: .line 713
            aload 0 /* this */
            aload 1 /* cname */
            aload 2 /* addr */
            invokevirtual java.net.SocketPermission.authorizedIPv4:(Ljava/lang/String;[B)Z
            ireturn
         2: .line 714
      StackMap locals:
      StackMap stack:
            aload 2 /* addr */
            arraylength
            bipush 16
            if_icmpne 4
         3: .line 715
            aload 0 /* this */
            aload 1 /* cname */
            aload 2 /* addr */
            invokevirtual java.net.SocketPermission.authorizedIPv6:(Ljava/lang/String;[B)Z
            ireturn
         4: .line 717
      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 721
            ldc ""
            astore 3 /* authHost */
        start local 3 // java.lang.String authHost
         1: .line 725
            new java.lang.StringBuilder
            dup
            ldc "auth."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 726
            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 727
            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 728
            ldc ".in-addr.arpa"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 725
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* authHost */
         6: .line 731
            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 732
            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 733
            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 734
            iconst_1
            ireturn
        10: .line 736
      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 737
            aload 5 /* debug */
            ifnull 18
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 18
        12: .line 738
            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 740
            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 741
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 5 /* debug */
        start local 5 // sun.security.util.Debug debug
        16: .line 742
            aload 5 /* debug */
            ifnull 18
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 18
        17: .line 743
            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 746
      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 750
            ldc ""
            astore 3 /* authHost */
        start local 3 // java.lang.String authHost
         1: .line 754
            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 756
            bipush 15
            istore 6 /* i */
        start local 6 // int i
         3: goto 9
         4: .line 757
      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 758
            aload 5 /* sb */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 759
            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 760
            aload 5 /* sb */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 756
            iinc 6 /* i */ -1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* i */
            ifge 4
        end local 6 // int i
        10: .line 762
            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 764
            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 765
            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 766
            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 767
            iconst_1
            ireturn
        15: .line 768
      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 769
            aload 6 /* debug */
            ifnull 23
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 23
        17: .line 770
            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 772
            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 773
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 5 /* debug */
        start local 5 // sun.security.util.Debug debug
        21: .line 774
            aload 5 /* debug */
            ifnull 23
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 23
        22: .line 775
            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 778
      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 789
            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 794
      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 796
            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 797
            goto 10
        end local 1 // java.lang.String host
         5: .line 798
      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 799
            iload 2 /* i */
            iconst_m1
            if_icmpne 9
         7: .line 800
            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 802
      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 806
      StackMap locals: java.net.SocketPermission java.lang.String
      StackMap stack:
            aload 0 /* this */
        11: .line 807
            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 806
            putfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
        end local 1 // java.lang.String host
        13: .line 809
            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 810
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        16: .line 811
            aload 1 /* uhe */
            athrow
        end local 1 // java.net.UnknownHostException uhe
        17: .line 812
      StackMap locals:
      StackMap stack: java.lang.IndexOutOfBoundsException
            pop
        18: .line 813
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        19: .line 814
            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 816
      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 856
            aload 1 /* p */
            instanceof java.net.SocketPermission
            ifne 2
         1: .line 857
            iconst_0
            ireturn
         2: .line 859
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            aload 0 /* this */
            if_acmpne 4
         3: .line 860
            iconst_1
            ireturn
         4: .line 862
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            checkcast java.net.SocketPermission
            astore 2 /* that */
        start local 2 // java.net.SocketPermission that
         5: .line 864
            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 865
            aload 0 /* this */
            aload 2 /* that */
            invokevirtual java.net.SocketPermission.impliesIgnoreMask:(Ljava/net/SocketPermission;)Z
            ifeq 8
         7: .line 864
            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 894
            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 897
            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 898
            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 901
      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 902
      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 903
            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 902
            invokestatic java.net.SocketPermission.inRange:(IIII)Z
         7: .line 903
            ifne 10
         8: .line 905
            iconst_0
            ireturn
         9: .line 908
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        10: .line 914
      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 915
            iconst_1
            ireturn
        12: .line 918
      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 919
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.compareHostnames:(Ljava/net/SocketPermission;)Z
            ireturn
        14: .line 923
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 29
        15: .line 924
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 17
        16: .line 925
            iconst_0
            ireturn
        17: .line 927
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 20
        18: .line 928
            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 930
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 22
        21: .line 931
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getIP:()V
        22: .line 933
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        23: goto 27
        24: .line 934
      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 935
            iconst_1
            ireturn
        26: .line 933
      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 940
            iconst_0
            ireturn
        end local 2 // int i
        29: .line 944
      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 948
      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 949
            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 952
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 35
        34: .line 953
            iconst_0
            ireturn
        35: .line 957
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 37
        36: .line 958
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        37: .line 960
      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 964
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 41
        40: .line 965
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getIP:()V
        41: .line 968
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 43
        42: .line 969
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getIP:()V
        43: .line 972
      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 973
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* j */
        start local 3 // int j
        45: goto 53
        46: .line 974
      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 975
      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 976
            iconst_1
            ireturn
        50: .line 974
      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 973
            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 982
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 56
        55: .line 983
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        56: .line 986
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 58
        57: .line 987
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        58: .line 990
      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 993
      StackMap locals: java.net.SocketPermission java.net.SocketPermission
      StackMap stack: java.net.UnknownHostException
            pop
        61: .line 994
            aload 0 /* this */
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.compareHostnames:(Ljava/net/SocketPermission;)Z
            ireturn
        62: .line 1000
      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 1006
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            astore 2 /* thisHost */
        start local 2 // java.lang.String thisHost
         1: .line 1007
            aload 1 /* that */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            astore 3 /* thatHost */
        start local 3 // java.lang.String thatHost
         2: .line 1009
            aload 2 /* thisHost */
            ifnonnull 4
         3: .line 1010
            iconst_0
            ireturn
         4: .line 1011
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 10
         5: .line 1012
            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 1013
            aload 3 /* thatHost */
            iconst_1
         7: .line 1014
            aload 3 /* thatHost */
            invokevirtual java.lang.String.length:()I
            iload 4 /* cnameLength */
            isub
         8: .line 1015
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            iconst_0
            iload 4 /* cnameLength */
         9: .line 1013
            invokevirtual java.lang.String.regionMatches:(ZILjava/lang/String;II)Z
            ireturn
        end local 4 // int cnameLength
        10: .line 1017
      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 1033
            aload 1 /* obj */
            aload 0 /* this */
            if_acmpne 2
         1: .line 1034
            iconst_1
            ireturn
         2: .line 1036
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.net.SocketPermission
            ifne 4
         3: .line 1037
            iconst_0
            ireturn
         4: .line 1039
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast java.net.SocketPermission
            astore 2 /* that */
        start local 2 // java.net.SocketPermission that
         5: .line 1044
            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 1046
      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 1048
            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 1049
            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 1050
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        10: .line 1061
      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 1062
            iconst_1
            ireturn
        12: .line 1070
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        13: .line 1071
            aload 2 /* that */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        14: .line 1072
            goto 17
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        15: pop
        16: .line 1073
            iconst_0
            ireturn
        17: .line 1076
      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 1077
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        19: .line 1079
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnull 21
        20: .line 1080
            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 1083
      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 1100
            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 1101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
         2: .line 1105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
         3: .line 1106
            goto 5
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
         4: pop
         5: .line 1110
      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 1111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
         7: .line 1113
      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 1123
            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 1136
            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 1137
            iload 0 /* mask */
            iconst_1
            iand
            iconst_1
            if_icmpne 3
         2: .line 1138
            aload 1 /* sj */
            ldc "connect"
            invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
            pop
         3: .line 1140
      StackMap locals: java.util.StringJoiner
      StackMap stack:
            iload 0 /* mask */
            iconst_2
            iand
            iconst_2
            if_icmpne 5
         4: .line 1141
            aload 1 /* sj */
            ldc "listen"
            invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
            pop
         5: .line 1143
      StackMap locals:
      StackMap stack:
            iload 0 /* mask */
            iconst_4
            iand
            iconst_4
            if_icmpne 7
         6: .line 1144
            aload 1 /* sj */
            ldc "accept"
            invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
            pop
         7: .line 1146
      StackMap locals:
      StackMap stack:
            iload 0 /* mask */
            bipush 8
            iand
            bipush 8
            if_icmpne 9
         8: .line 1147
            aload 1 /* sj */
            ldc "resolve"
            invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
            pop
         9: .line 1149
      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 1162
            aload 0 /* this */
            getfield java.net.SocketPermission.actions:Ljava/lang/String;
            ifnonnull 2
         1: .line 1163
            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 1165
      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 1181
            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 1194
            aload 0 /* this */
            getfield java.net.SocketPermission.actions:Ljava/lang/String;
            ifnonnull 2
         1: .line 1195
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getActions:()Ljava/lang/String;
            pop
         2: .line 1196
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         3: .line 1197
            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 1207
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 1208
            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 1209
            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 1217
            new java.net.SocketPermission$1
            dup
            aload 0 /* suffix */
            invokespecial java.net.SocketPermission$1.<init>:(Ljava/lang/String;)V
         1: .line 1216
            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 1242
            getstatic java.net.SocketPermission$EphemeralRange.low:I
            istore 4 /* ephemeralLow */
        start local 4 // int ephemeralLow
         1: .line 1243
            getstatic java.net.SocketPermission$EphemeralRange.high:I
            istore 5 /* ephemeralHigh */
        start local 5 // int ephemeralHigh
         2: .line 1245
            iload 2 /* targetLow */
            ifne 8
         3: .line 1247
            iload 0 /* policyLow */
            iload 1 /* policyHigh */
            iload 4 /* ephemeralLow */
            iload 5 /* ephemeralHigh */
            invokestatic java.net.SocketPermission.inRange:(IIII)Z
            ifne 5
         4: .line 1248
            iconst_0
            ireturn
         5: .line 1250
      StackMap locals: int int
      StackMap stack:
            iload 3 /* targetHigh */
            ifne 7
         6: .line 1252
            iconst_1
            ireturn
         7: .line 1255
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* targetLow */
         8: .line 1258
      StackMap locals:
      StackMap stack:
            iload 0 /* policyLow */
            ifne 11
            iload 1 /* policyHigh */
            ifne 11
         9: .line 1260
            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 1263
      StackMap locals:
      StackMap stack:
            iload 0 /* policyLow */
            ifeq 14
        12: .line 1265
            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 1272
      StackMap locals:
      StackMap stack:
            iload 1 /* policyHigh */
            iload 4 /* ephemeralLow */
            iconst_1
            isub
            if_icmplt 17
        15: .line 1273
            iload 3 /* targetHigh */
            iload 5 /* ephemeralHigh */
            if_icmpgt 16
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        16: iconst_0
            ireturn
        17: .line 1280
      StackMap locals:
      StackMap stack:
            iload 2 /* targetLow */
            iload 1 /* policyHigh */
            if_icmpgt 18
            iload 3 /* targetHigh */
            iload 1 /* policyHigh */
            if_icmple 21
        18: .line 1281
      StackMap locals:
      StackMap stack:
            iload 2 /* targetLow */
            iload 4 /* ephemeralLow */
            if_icmplt 20
            iload 3 /* targetHigh */
            iload 5 /* ephemeralHigh */
        19: .line 1280
            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