public class io.netty.bootstrap.Bootstrap extends io.netty.bootstrap.AbstractBootstrap<io.netty.bootstrap.Bootstrap, io.netty.channel.Channel>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.netty.bootstrap.Bootstrap
  super_class: io.netty.bootstrap.AbstractBootstrap
{
  private static final io.netty.util.internal.logging.InternalLogger logger;
    descriptor: Lio/netty/util/internal/logging/InternalLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.netty.resolver.AddressResolverGroup<?> DEFAULT_RESOLVER;
    descriptor: Lio/netty/resolver/AddressResolverGroup;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lio/netty/resolver/AddressResolverGroup<*>;

  private final io.netty.bootstrap.BootstrapConfig config;
    descriptor: Lio/netty/bootstrap/BootstrapConfig;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile io.netty.resolver.AddressResolverGroup<java.net.SocketAddress> resolver;
    descriptor: Lio/netty/resolver/AddressResolverGroup;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Lio/netty/resolver/AddressResolverGroup<Ljava/net/SocketAddress;>;

  private volatile java.net.SocketAddress remoteAddress;
    descriptor: Ljava/net/SocketAddress;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 51
            ldc Lio/netty/bootstrap/Bootstrap;
            invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
            putstatic io.netty.bootstrap.Bootstrap.logger:Lio/netty/util/internal/logging/InternalLogger;
         1: .line 53
            getstatic io.netty.resolver.DefaultAddressResolverGroup.INSTANCE:Lio/netty/resolver/DefaultAddressResolverGroup;
            putstatic io.netty.bootstrap.Bootstrap.DEFAULT_RESOLVER:Lio/netty/resolver/AddressResolverGroup;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.Bootstrap this
         0: .line 62
            aload 0 /* this */
            invokespecial io.netty.bootstrap.AbstractBootstrap.<init>:()V
         1: .line 55
            aload 0 /* this */
            new io.netty.bootstrap.BootstrapConfig
            dup
            aload 0 /* this */
            invokespecial io.netty.bootstrap.BootstrapConfig.<init>:(Lio/netty/bootstrap/Bootstrap;)V
            putfield io.netty.bootstrap.Bootstrap.config:Lio/netty/bootstrap/BootstrapConfig;
         2: .line 58
            aload 0 /* this */
         3: .line 59
            getstatic io.netty.bootstrap.Bootstrap.DEFAULT_RESOLVER:Lio/netty/resolver/AddressResolverGroup;
            putfield io.netty.bootstrap.Bootstrap.resolver:Lio/netty/resolver/AddressResolverGroup;
         4: .line 62
            return
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/bootstrap/Bootstrap;

  private void <init>(io.netty.bootstrap.Bootstrap);
    descriptor: (Lio/netty/bootstrap/Bootstrap;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // io.netty.bootstrap.Bootstrap bootstrap
         0: .line 65
            aload 0 /* this */
            aload 1 /* bootstrap */
            invokespecial io.netty.bootstrap.AbstractBootstrap.<init>:(Lio/netty/bootstrap/AbstractBootstrap;)V
         1: .line 55
            aload 0 /* this */
            new io.netty.bootstrap.BootstrapConfig
            dup
            aload 0 /* this */
            invokespecial io.netty.bootstrap.BootstrapConfig.<init>:(Lio/netty/bootstrap/Bootstrap;)V
            putfield io.netty.bootstrap.Bootstrap.config:Lio/netty/bootstrap/BootstrapConfig;
         2: .line 58
            aload 0 /* this */
         3: .line 59
            getstatic io.netty.bootstrap.Bootstrap.DEFAULT_RESOLVER:Lio/netty/resolver/AddressResolverGroup;
            putfield io.netty.bootstrap.Bootstrap.resolver:Lio/netty/resolver/AddressResolverGroup;
         4: .line 66
            aload 0 /* this */
            aload 1 /* bootstrap */
            getfield io.netty.bootstrap.Bootstrap.resolver:Lio/netty/resolver/AddressResolverGroup;
            putfield io.netty.bootstrap.Bootstrap.resolver:Lio/netty/resolver/AddressResolverGroup;
         5: .line 67
            aload 0 /* this */
            aload 1 /* bootstrap */
            getfield io.netty.bootstrap.Bootstrap.remoteAddress:Ljava/net/SocketAddress;
            putfield io.netty.bootstrap.Bootstrap.remoteAddress:Ljava/net/SocketAddress;
         6: .line 68
            return
        end local 1 // io.netty.bootstrap.Bootstrap bootstrap
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lio/netty/bootstrap/Bootstrap;
            0    7     1  bootstrap  Lio/netty/bootstrap/Bootstrap;
    MethodParameters:
           Name  Flags
      bootstrap  

  public io.netty.bootstrap.Bootstrap resolver(io.netty.resolver.AddressResolverGroup<?>);
    descriptor: (Lio/netty/resolver/AddressResolverGroup;)Lio/netty/bootstrap/Bootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // io.netty.resolver.AddressResolverGroup resolver
         0: .line 80
            aload 0 /* this */
            aload 1 /* resolver */
            ifnonnull 1
            getstatic io.netty.bootstrap.Bootstrap.DEFAULT_RESOLVER:Lio/netty/resolver/AddressResolverGroup;
            goto 2
      StackMap locals:
      StackMap stack: io.netty.bootstrap.Bootstrap
         1: aload 1 /* resolver */
      StackMap locals: io.netty.bootstrap.Bootstrap io.netty.resolver.AddressResolverGroup
      StackMap stack: io.netty.bootstrap.Bootstrap io.netty.resolver.AddressResolverGroup
         2: putfield io.netty.bootstrap.Bootstrap.resolver:Lio/netty/resolver/AddressResolverGroup;
         3: .line 81
            aload 0 /* this */
            areturn
        end local 1 // io.netty.resolver.AddressResolverGroup resolver
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lio/netty/bootstrap/Bootstrap;
            0    4     1  resolver  Lio/netty/resolver/AddressResolverGroup<*>;
    Signature: (Lio/netty/resolver/AddressResolverGroup<*>;)Lio/netty/bootstrap/Bootstrap;
    MethodParameters:
          Name  Flags
      resolver  

  public io.netty.bootstrap.Bootstrap remoteAddress(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)Lio/netty/bootstrap/Bootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // java.net.SocketAddress remoteAddress
         0: .line 89
            aload 0 /* this */
            aload 1 /* remoteAddress */
            putfield io.netty.bootstrap.Bootstrap.remoteAddress:Ljava/net/SocketAddress;
         1: .line 90
            aload 0 /* this */
            areturn
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/netty/bootstrap/Bootstrap;
            0    2     1  remoteAddress  Ljava/net/SocketAddress;
    MethodParameters:
               Name  Flags
      remoteAddress  

  public io.netty.bootstrap.Bootstrap remoteAddress(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Lio/netty/bootstrap/Bootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // java.lang.String inetHost
        start local 2 // int inetPort
         0: .line 97
            aload 0 /* this */
            aload 1 /* inetHost */
            iload 2 /* inetPort */
            invokestatic java.net.InetSocketAddress.createUnresolved:(Ljava/lang/String;I)Ljava/net/InetSocketAddress;
            putfield io.netty.bootstrap.Bootstrap.remoteAddress:Ljava/net/SocketAddress;
         1: .line 98
            aload 0 /* this */
            areturn
        end local 2 // int inetPort
        end local 1 // java.lang.String inetHost
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/netty/bootstrap/Bootstrap;
            0    2     1  inetHost  Ljava/lang/String;
            0    2     2  inetPort  I
    MethodParameters:
          Name  Flags
      inetHost  
      inetPort  

  public io.netty.bootstrap.Bootstrap remoteAddress(java.net.InetAddress, int);
    descriptor: (Ljava/net/InetAddress;I)Lio/netty/bootstrap/Bootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // java.net.InetAddress inetHost
        start local 2 // int inetPort
         0: .line 105
            aload 0 /* this */
            new java.net.InetSocketAddress
            dup
            aload 1 /* inetHost */
            iload 2 /* inetPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            putfield io.netty.bootstrap.Bootstrap.remoteAddress:Ljava/net/SocketAddress;
         1: .line 106
            aload 0 /* this */
            areturn
        end local 2 // int inetPort
        end local 1 // java.net.InetAddress inetHost
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/netty/bootstrap/Bootstrap;
            0    2     1  inetHost  Ljava/net/InetAddress;
            0    2     2  inetPort  I
    MethodParameters:
          Name  Flags
      inetHost  
      inetPort  

  public io.netty.channel.ChannelFuture connect();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.netty.bootstrap.Bootstrap this
         0: .line 113
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.Bootstrap.validate:()Lio/netty/bootstrap/Bootstrap;
            pop
         1: .line 114
            aload 0 /* this */
            getfield io.netty.bootstrap.Bootstrap.remoteAddress:Ljava/net/SocketAddress;
            astore 1 /* remoteAddress */
        start local 1 // java.net.SocketAddress remoteAddress
         2: .line 115
            aload 1 /* remoteAddress */
            ifnonnull 4
         3: .line 116
            new java.lang.IllegalStateException
            dup
            ldc "remoteAddress not set"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 119
      StackMap locals: java.net.SocketAddress
      StackMap stack:
            aload 0 /* this */
            aload 1 /* remoteAddress */
            aload 0 /* this */
            getfield io.netty.bootstrap.Bootstrap.config:Lio/netty/bootstrap/BootstrapConfig;
            invokevirtual io.netty.bootstrap.BootstrapConfig.localAddress:()Ljava/net/SocketAddress;
            invokevirtual io.netty.bootstrap.Bootstrap.doResolveAndConnect:(Ljava/net/SocketAddress;Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lio/netty/bootstrap/Bootstrap;
            2    5     1  remoteAddress  Ljava/net/SocketAddress;

  public io.netty.channel.ChannelFuture connect(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // java.lang.String inetHost
        start local 2 // int inetPort
         0: .line 126
            aload 0 /* this */
            aload 1 /* inetHost */
            iload 2 /* inetPort */
            invokestatic java.net.InetSocketAddress.createUnresolved:(Ljava/lang/String;I)Ljava/net/InetSocketAddress;
            invokevirtual io.netty.bootstrap.Bootstrap.connect:(Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // int inetPort
        end local 1 // java.lang.String inetHost
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/netty/bootstrap/Bootstrap;
            0    1     1  inetHost  Ljava/lang/String;
            0    1     2  inetPort  I
    MethodParameters:
          Name  Flags
      inetHost  
      inetPort  

  public io.netty.channel.ChannelFuture connect(java.net.InetAddress, int);
    descriptor: (Ljava/net/InetAddress;I)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // java.net.InetAddress inetHost
        start local 2 // int inetPort
         0: .line 133
            aload 0 /* this */
            new java.net.InetSocketAddress
            dup
            aload 1 /* inetHost */
            iload 2 /* inetPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            invokevirtual io.netty.bootstrap.Bootstrap.connect:(Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // int inetPort
        end local 1 // java.net.InetAddress inetHost
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/netty/bootstrap/Bootstrap;
            0    1     1  inetHost  Ljava/net/InetAddress;
            0    1     2  inetPort  I
    MethodParameters:
          Name  Flags
      inetHost  
      inetPort  

  public io.netty.channel.ChannelFuture connect(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // java.net.SocketAddress remoteAddress
         0: .line 140
            aload 1 /* remoteAddress */
            ifnonnull 2
         1: .line 141
            new java.lang.NullPointerException
            dup
            ldc "remoteAddress"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.Bootstrap.validate:()Lio/netty/bootstrap/Bootstrap;
            pop
         3: .line 145
            aload 0 /* this */
            aload 1 /* remoteAddress */
            aload 0 /* this */
            getfield io.netty.bootstrap.Bootstrap.config:Lio/netty/bootstrap/BootstrapConfig;
            invokevirtual io.netty.bootstrap.BootstrapConfig.localAddress:()Ljava/net/SocketAddress;
            invokevirtual io.netty.bootstrap.Bootstrap.doResolveAndConnect:(Ljava/net/SocketAddress;Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/netty/bootstrap/Bootstrap;
            0    4     1  remoteAddress  Ljava/net/SocketAddress;
    MethodParameters:
               Name  Flags
      remoteAddress  

  public io.netty.channel.ChannelFuture connect(java.net.SocketAddress, java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // java.net.SocketAddress remoteAddress
        start local 2 // java.net.SocketAddress localAddress
         0: .line 152
            aload 1 /* remoteAddress */
            ifnonnull 2
         1: .line 153
            new java.lang.NullPointerException
            dup
            ldc "remoteAddress"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.Bootstrap.validate:()Lio/netty/bootstrap/Bootstrap;
            pop
         3: .line 156
            aload 0 /* this */
            aload 1 /* remoteAddress */
            aload 2 /* localAddress */
            invokevirtual io.netty.bootstrap.Bootstrap.doResolveAndConnect:(Ljava/net/SocketAddress;Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // java.net.SocketAddress localAddress
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/netty/bootstrap/Bootstrap;
            0    4     1  remoteAddress  Ljava/net/SocketAddress;
            0    4     2   localAddress  Ljava/net/SocketAddress;
    MethodParameters:
               Name  Flags
      remoteAddress  
      localAddress   

  private io.netty.channel.ChannelFuture doResolveAndConnect(java.net.SocketAddress, java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=6, args_size=3
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // java.net.SocketAddress remoteAddress
        start local 2 // java.net.SocketAddress localAddress
         0: .line 163
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.Bootstrap.initAndRegister:()Lio/netty/channel/ChannelFuture;
            astore 3 /* regFuture */
        start local 3 // io.netty.channel.ChannelFuture regFuture
         1: .line 164
            aload 3 /* regFuture */
            invokeinterface io.netty.channel.ChannelFuture.channel:()Lio/netty/channel/Channel;
            astore 4 /* channel */
        start local 4 // io.netty.channel.Channel channel
         2: .line 166
            aload 3 /* regFuture */
            invokeinterface io.netty.channel.ChannelFuture.isDone:()Z
            ifeq 6
         3: .line 167
            aload 3 /* regFuture */
            invokeinterface io.netty.channel.ChannelFuture.isSuccess:()Z
            ifne 5
         4: .line 168
            aload 3 /* regFuture */
            areturn
         5: .line 170
      StackMap locals: io.netty.channel.ChannelFuture io.netty.channel.Channel
      StackMap stack:
            aload 0 /* this */
            aload 4 /* channel */
            aload 1 /* remoteAddress */
            aload 2 /* localAddress */
            aload 4 /* channel */
            invokeinterface io.netty.channel.Channel.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.bootstrap.Bootstrap.doResolveAndConnect0:(Lio/netty/channel/Channel;Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
         6: .line 173
      StackMap locals:
      StackMap stack:
            new io.netty.bootstrap.AbstractBootstrap$PendingRegistrationPromise
            dup
            aload 4 /* channel */
            invokespecial io.netty.bootstrap.AbstractBootstrap$PendingRegistrationPromise.<init>:(Lio/netty/channel/Channel;)V
            astore 5 /* promise */
        start local 5 // io.netty.bootstrap.AbstractBootstrap$PendingRegistrationPromise promise
         7: .line 174
            aload 3 /* regFuture */
            new io.netty.bootstrap.Bootstrap$1
            dup
            aload 0 /* this */
            aload 5 /* promise */
            aload 4 /* channel */
            aload 1 /* remoteAddress */
            aload 2 /* localAddress */
            invokespecial io.netty.bootstrap.Bootstrap$1.<init>:(Lio/netty/bootstrap/Bootstrap;Lio/netty/bootstrap/AbstractBootstrap$PendingRegistrationPromise;Lio/netty/channel/Channel;Ljava/net/SocketAddress;Ljava/net/SocketAddress;)V
            invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
            pop
         8: .line 192
            aload 5 /* promise */
            areturn
        end local 5 // io.netty.bootstrap.AbstractBootstrap$PendingRegistrationPromise promise
        end local 4 // io.netty.channel.Channel channel
        end local 3 // io.netty.channel.ChannelFuture regFuture
        end local 2 // java.net.SocketAddress localAddress
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lio/netty/bootstrap/Bootstrap;
            0    9     1  remoteAddress  Ljava/net/SocketAddress;
            0    9     2   localAddress  Ljava/net/SocketAddress;
            1    9     3      regFuture  Lio/netty/channel/ChannelFuture;
            2    9     4        channel  Lio/netty/channel/Channel;
            7    9     5        promise  Lio/netty/bootstrap/AbstractBootstrap$PendingRegistrationPromise;
    MethodParameters:
               Name  Flags
      remoteAddress  final
      localAddress   final

  private io.netty.channel.ChannelFuture doResolveAndConnect0(io.netty.channel.Channel, java.net.SocketAddress, java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/Channel;Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // io.netty.channel.Channel channel
        start local 2 // java.net.SocketAddress remoteAddress
        start local 3 // java.net.SocketAddress localAddress
        start local 4 // io.netty.channel.ChannelPromise promise
         0: .line 199
            aload 1 /* channel */
            invokeinterface io.netty.channel.Channel.eventLoop:()Lio/netty/channel/EventLoop;
            astore 5 /* eventLoop */
        start local 5 // io.netty.channel.EventLoop eventLoop
         1: .line 200
            aload 0 /* this */
            getfield io.netty.bootstrap.Bootstrap.resolver:Lio/netty/resolver/AddressResolverGroup;
            aload 5 /* eventLoop */
            invokevirtual io.netty.resolver.AddressResolverGroup.getResolver:(Lio/netty/util/concurrent/EventExecutor;)Lio/netty/resolver/AddressResolver;
            astore 6 /* resolver */
        start local 6 // io.netty.resolver.AddressResolver resolver
         2: .line 202
            aload 6 /* resolver */
            aload 2 /* remoteAddress */
            invokeinterface io.netty.resolver.AddressResolver.isSupported:(Ljava/net/SocketAddress;)Z
            ifeq 3
            aload 6 /* resolver */
            aload 2 /* remoteAddress */
            invokeinterface io.netty.resolver.AddressResolver.isResolved:(Ljava/net/SocketAddress;)Z
            ifeq 6
         3: .line 204
      StackMap locals: io.netty.channel.EventLoop io.netty.resolver.AddressResolver
      StackMap stack:
            aload 2 /* remoteAddress */
            aload 3 /* localAddress */
            aload 4 /* promise */
            invokestatic io.netty.bootstrap.Bootstrap.doConnect:(Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
         4: .line 205
            aload 4 /* promise */
         5: areturn
         6: .line 208
      StackMap locals:
      StackMap stack:
            aload 6 /* resolver */
            aload 2 /* remoteAddress */
            invokeinterface io.netty.resolver.AddressResolver.resolve:(Ljava/net/SocketAddress;)Lio/netty/util/concurrent/Future;
            astore 7 /* resolveFuture */
        start local 7 // io.netty.util.concurrent.Future resolveFuture
         7: .line 210
            aload 7 /* resolveFuture */
            invokeinterface io.netty.util.concurrent.Future.isDone:()Z
            ifeq 16
         8: .line 211
            aload 7 /* resolveFuture */
            invokeinterface io.netty.util.concurrent.Future.cause:()Ljava/lang/Throwable;
            astore 8 /* resolveFailureCause */
        start local 8 // java.lang.Throwable resolveFailureCause
         9: .line 213
            aload 8 /* resolveFailureCause */
            ifnull 13
        10: .line 215
            aload 1 /* channel */
            invokeinterface io.netty.channel.Channel.close:()Lio/netty/channel/ChannelFuture;
            pop
        11: .line 216
            aload 4 /* promise */
            aload 8 /* resolveFailureCause */
            invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            pop
        12: .line 217
            goto 14
        13: .line 219
      StackMap locals: io.netty.util.concurrent.Future java.lang.Throwable
      StackMap stack:
            aload 7 /* resolveFuture */
            invokeinterface io.netty.util.concurrent.Future.getNow:()Ljava/lang/Object;
            checkcast java.net.SocketAddress
            aload 3 /* localAddress */
            aload 4 /* promise */
            invokestatic io.netty.bootstrap.Bootstrap.doConnect:(Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
        14: .line 221
      StackMap locals:
      StackMap stack:
            aload 4 /* promise */
        15: areturn
        end local 8 // java.lang.Throwable resolveFailureCause
        16: .line 225
      StackMap locals:
      StackMap stack:
            aload 7 /* resolveFuture */
            new io.netty.bootstrap.Bootstrap$2
            dup
            aload 0 /* this */
            aload 1 /* channel */
            aload 4 /* promise */
            aload 3 /* localAddress */
            invokespecial io.netty.bootstrap.Bootstrap$2.<init>:(Lio/netty/bootstrap/Bootstrap;Lio/netty/channel/Channel;Lio/netty/channel/ChannelPromise;Ljava/net/SocketAddress;)V
            invokeinterface io.netty.util.concurrent.Future.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/util/concurrent/Future;
            pop
        end local 7 // io.netty.util.concurrent.Future resolveFuture
        end local 6 // io.netty.resolver.AddressResolver resolver
        end local 5 // io.netty.channel.EventLoop eventLoop
        17: .line 236
            goto 20
      StackMap locals: io.netty.bootstrap.Bootstrap io.netty.channel.Channel java.net.SocketAddress java.net.SocketAddress io.netty.channel.ChannelPromise
      StackMap stack: java.lang.Throwable
        18: astore 5 /* cause */
        start local 5 // java.lang.Throwable cause
        19: .line 237
            aload 4 /* promise */
            aload 5 /* cause */
            invokeinterface io.netty.channel.ChannelPromise.tryFailure:(Ljava/lang/Throwable;)Z
            pop
        end local 5 // java.lang.Throwable cause
        20: .line 239
      StackMap locals:
      StackMap stack:
            aload 4 /* promise */
            areturn
        end local 4 // io.netty.channel.ChannelPromise promise
        end local 3 // java.net.SocketAddress localAddress
        end local 2 // java.net.SocketAddress remoteAddress
        end local 1 // io.netty.channel.Channel channel
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   21     0                 this  Lio/netty/bootstrap/Bootstrap;
            0   21     1              channel  Lio/netty/channel/Channel;
            0   21     2        remoteAddress  Ljava/net/SocketAddress;
            0   21     3         localAddress  Ljava/net/SocketAddress;
            0   21     4              promise  Lio/netty/channel/ChannelPromise;
            1   17     5            eventLoop  Lio/netty/channel/EventLoop;
            2   17     6             resolver  Lio/netty/resolver/AddressResolver<Ljava/net/SocketAddress;>;
            7   17     7        resolveFuture  Lio/netty/util/concurrent/Future<Ljava/net/SocketAddress;>;
            9   16     8  resolveFailureCause  Ljava/lang/Throwable;
           19   20     5                cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     5      18  Class java.lang.Throwable
           6    15      18  Class java.lang.Throwable
          16    17      18  Class java.lang.Throwable
    MethodParameters:
               Name  Flags
      channel        final
      remoteAddress  
      localAddress   final
      promise        final

  private static void doConnect(java.net.SocketAddress, java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // java.net.SocketAddress remoteAddress
        start local 1 // java.net.SocketAddress localAddress
        start local 2 // io.netty.channel.ChannelPromise connectPromise
         0: .line 247
            aload 2 /* connectPromise */
            invokeinterface io.netty.channel.ChannelPromise.channel:()Lio/netty/channel/Channel;
            astore 3 /* channel */
        start local 3 // io.netty.channel.Channel channel
         1: .line 248
            aload 3 /* channel */
            invokeinterface io.netty.channel.Channel.eventLoop:()Lio/netty/channel/EventLoop;
            new io.netty.bootstrap.Bootstrap$3
            dup
            aload 1 /* localAddress */
            aload 3 /* channel */
            aload 0 /* remoteAddress */
            aload 2 /* connectPromise */
            invokespecial io.netty.bootstrap.Bootstrap$3.<init>:(Ljava/net/SocketAddress;Lio/netty/channel/Channel;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
            invokeinterface io.netty.channel.EventLoop.execute:(Ljava/lang/Runnable;)V
         2: .line 259
            return
        end local 3 // io.netty.channel.Channel channel
        end local 2 // io.netty.channel.ChannelPromise connectPromise
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // java.net.SocketAddress remoteAddress
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0   remoteAddress  Ljava/net/SocketAddress;
            0    3     1    localAddress  Ljava/net/SocketAddress;
            0    3     2  connectPromise  Lio/netty/channel/ChannelPromise;
            1    3     3         channel  Lio/netty/channel/Channel;
    MethodParameters:
                Name  Flags
      remoteAddress   final
      localAddress    final
      connectPromise  final

  void init(io.netty.channel.Channel);
    descriptor: (Lio/netty/channel/Channel;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // io.netty.channel.Channel channel
         0: .line 264
            aload 1 /* channel */
            invokeinterface io.netty.channel.Channel.pipeline:()Lio/netty/channel/ChannelPipeline;
            astore 2 /* p */
        start local 2 // io.netty.channel.ChannelPipeline p
         1: .line 265
            aload 2 /* p */
            iconst_1
            anewarray io.netty.channel.ChannelHandler
            dup
            iconst_0
            aload 0 /* this */
            getfield io.netty.bootstrap.Bootstrap.config:Lio/netty/bootstrap/BootstrapConfig;
            invokevirtual io.netty.bootstrap.BootstrapConfig.handler:()Lio/netty/channel/ChannelHandler;
            aastore
            invokeinterface io.netty.channel.ChannelPipeline.addLast:([Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
            pop
         2: .line 267
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.Bootstrap.options0:()Ljava/util/Map;
            astore 3 /* options */
        start local 3 // java.util.Map options
         3: .line 268
            aload 3 /* options */
            dup
            astore 4
            monitorenter
         4: .line 269
            aload 1 /* channel */
            aload 3 /* options */
            getstatic io.netty.bootstrap.Bootstrap.logger:Lio/netty/util/internal/logging/InternalLogger;
            invokestatic io.netty.bootstrap.Bootstrap.setChannelOptions:(Lio/netty/channel/Channel;Ljava/util/Map;Lio/netty/util/internal/logging/InternalLogger;)V
         5: .line 268
            aload 4
            monitorexit
         6: goto 9
      StackMap locals: io.netty.bootstrap.Bootstrap io.netty.channel.Channel io.netty.channel.ChannelPipeline java.util.Map java.util.Map
      StackMap stack: java.lang.Throwable
         7: aload 4
            monitorexit
         8: athrow
         9: .line 272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.Bootstrap.attrs0:()Ljava/util/Map;
            astore 4 /* attrs */
        start local 4 // java.util.Map attrs
        10: .line 273
            aload 4 /* attrs */
            dup
            astore 5
            monitorenter
        11: .line 274
            aload 4 /* attrs */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 14
      StackMap locals: io.netty.bootstrap.Bootstrap io.netty.channel.Channel io.netty.channel.ChannelPipeline java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        12: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* e */
        start local 6 // java.util.Map$Entry e
        13: .line 275
            aload 1 /* channel */
            aload 6 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast io.netty.util.AttributeKey
            invokeinterface io.netty.channel.Channel.attr:(Lio/netty/util/AttributeKey;)Lio/netty/util/Attribute;
            aload 6 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokeinterface io.netty.util.Attribute.set:(Ljava/lang/Object;)V
        end local 6 // java.util.Map$Entry e
        14: .line 274
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        15: .line 273
            aload 5
            monitorexit
        16: goto 19
      StackMap locals: io.netty.bootstrap.Bootstrap io.netty.channel.Channel io.netty.channel.ChannelPipeline java.util.Map java.util.Map java.util.Map
      StackMap stack: java.lang.Throwable
        17: aload 5
            monitorexit
        18: athrow
        19: .line 278
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.Map attrs
        end local 3 // java.util.Map options
        end local 2 // io.netty.channel.ChannelPipeline p
        end local 1 // io.netty.channel.Channel channel
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lio/netty/bootstrap/Bootstrap;
            0   20     1  channel  Lio/netty/channel/Channel;
            1   20     2        p  Lio/netty/channel/ChannelPipeline;
            3   20     3  options  Ljava/util/Map<Lio/netty/channel/ChannelOption<*>;Ljava/lang/Object;>;
           10   20     4    attrs  Ljava/util/Map<Lio/netty/util/AttributeKey<*>;Ljava/lang/Object;>;
           13   14     6        e  Ljava/util/Map$Entry<Lio/netty/util/AttributeKey<*>;Ljava/lang/Object;>;
      Exception table:
        from    to  target  type
           4     6       7  any
           7     8       7  any
          11    16      17  any
          17    18      17  any
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      channel  

  public io.netty.bootstrap.Bootstrap validate();
    descriptor: ()Lio/netty/bootstrap/Bootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.Bootstrap this
         0: .line 282
            aload 0 /* this */
            invokespecial io.netty.bootstrap.AbstractBootstrap.validate:()Lio/netty/bootstrap/AbstractBootstrap;
            pop
         1: .line 283
            aload 0 /* this */
            getfield io.netty.bootstrap.Bootstrap.config:Lio/netty/bootstrap/BootstrapConfig;
            invokevirtual io.netty.bootstrap.BootstrapConfig.handler:()Lio/netty/channel/ChannelHandler;
            ifnonnull 3
         2: .line 284
            new java.lang.IllegalStateException
            dup
            ldc "handler not set"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 286
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/bootstrap/Bootstrap;

  public io.netty.bootstrap.Bootstrap clone();
    descriptor: ()Lio/netty/bootstrap/Bootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.Bootstrap this
         0: .line 292
            new io.netty.bootstrap.Bootstrap
            dup
            aload 0 /* this */
            invokespecial io.netty.bootstrap.Bootstrap.<init>:(Lio/netty/bootstrap/Bootstrap;)V
            areturn
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/Bootstrap;

  public io.netty.bootstrap.Bootstrap clone(io.netty.channel.EventLoopGroup);
    descriptor: (Lio/netty/channel/EventLoopGroup;)Lio/netty/bootstrap/Bootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.bootstrap.Bootstrap this
        start local 1 // io.netty.channel.EventLoopGroup group
         0: .line 301
            new io.netty.bootstrap.Bootstrap
            dup
            aload 0 /* this */
            invokespecial io.netty.bootstrap.Bootstrap.<init>:(Lio/netty/bootstrap/Bootstrap;)V
            astore 2 /* bs */
        start local 2 // io.netty.bootstrap.Bootstrap bs
         1: .line 302
            aload 2 /* bs */
            aload 1 /* group */
            putfield io.netty.bootstrap.Bootstrap.group:Lio/netty/channel/EventLoopGroup;
         2: .line 303
            aload 2 /* bs */
            areturn
        end local 2 // io.netty.bootstrap.Bootstrap bs
        end local 1 // io.netty.channel.EventLoopGroup group
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/netty/bootstrap/Bootstrap;
            0    3     1  group  Lio/netty/channel/EventLoopGroup;
            1    3     2     bs  Lio/netty/bootstrap/Bootstrap;
    MethodParameters:
       Name  Flags
      group  

  public final io.netty.bootstrap.BootstrapConfig config();
    descriptor: ()Lio/netty/bootstrap/BootstrapConfig;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.Bootstrap this
         0: .line 308
            aload 0 /* this */
            getfield io.netty.bootstrap.Bootstrap.config:Lio/netty/bootstrap/BootstrapConfig;
            areturn
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/Bootstrap;

  final java.net.SocketAddress remoteAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.Bootstrap this
         0: .line 312
            aload 0 /* this */
            getfield io.netty.bootstrap.Bootstrap.remoteAddress:Ljava/net/SocketAddress;
            areturn
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/Bootstrap;

  final io.netty.resolver.AddressResolverGroup<?> resolver();
    descriptor: ()Lio/netty/resolver/AddressResolverGroup;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.Bootstrap this
         0: .line 316
            aload 0 /* this */
            getfield io.netty.bootstrap.Bootstrap.resolver:Lio/netty/resolver/AddressResolverGroup;
            areturn
        end local 0 // io.netty.bootstrap.Bootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/Bootstrap;
    Signature: ()Lio/netty/resolver/AddressResolverGroup<*>;

  public io.netty.bootstrap.AbstractBootstrap validate();
    descriptor: ()Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.bootstrap.Bootstrap.validate:()Lio/netty/bootstrap/Bootstrap;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.bootstrap.AbstractBootstrapConfig config();
    descriptor: ()Lio/netty/bootstrap/AbstractBootstrapConfig;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.bootstrap.Bootstrap.config:()Lio/netty/bootstrap/BootstrapConfig;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.bootstrap.AbstractBootstrap clone();
    descriptor: ()Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.bootstrap.Bootstrap.clone:()Lio/netty/bootstrap/Bootstrap;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.bootstrap.Bootstrap.clone:()Lio/netty/bootstrap/Bootstrap;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.CloneNotSupportedException
}
Signature: Lio/netty/bootstrap/AbstractBootstrap<Lio/netty/bootstrap/Bootstrap;Lio/netty/channel/Channel;>;
SourceFile: "Bootstrap.java"
NestMembers:
  io.netty.bootstrap.Bootstrap$1  io.netty.bootstrap.Bootstrap$2  io.netty.bootstrap.Bootstrap$3
InnerClasses:
  final PendingRegistrationPromise = io.netty.bootstrap.AbstractBootstrap$PendingRegistrationPromise of io.netty.bootstrap.AbstractBootstrap
  io.netty.bootstrap.Bootstrap$1
  io.netty.bootstrap.Bootstrap$2
  io.netty.bootstrap.Bootstrap$3
  public abstract Entry = java.util.Map$Entry of java.util.Map