public class io.vertx.rabbitmq.impl.RabbitMQClientImpl implements io.vertx.rabbitmq.RabbitMQClient, com.rabbitmq.client.ShutdownListener
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.rabbitmq.impl.RabbitMQClientImpl
  super_class: java.lang.Object
{
  private static final io.vertx.core.impl.logging.Logger log;
    descriptor: Lio/vertx/core/impl/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.vertx.core.json.JsonObject emptyConfig;
    descriptor: Lio/vertx/core/json/JsonObject;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final io.vertx.core.Vertx vertx;
    descriptor: Lio/vertx/core/Vertx;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.rabbitmq.RabbitMQOptions config;
    descriptor: Lio/vertx/rabbitmq/RabbitMQOptions;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int retries;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.rabbitmq.client.Connection connection;
    descriptor: Lcom/rabbitmq/client/Connection;
    flags: (0x0002) ACC_PRIVATE

  private com.rabbitmq.client.Channel channel;
    descriptor: Lcom/rabbitmq/client/Channel;
    flags: (0x0002) ACC_PRIVATE

  private long channelInstance;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

  private java.util.List<io.vertx.core.Handler<io.vertx.core.Promise<java.lang.Void>>> connectionEstablishedCallbacks;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lio/vertx/core/Handler<Lio/vertx/core/Promise<Ljava/lang/Void;>;>;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 53
            ldc Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            invokestatic io.vertx.core.impl.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/impl/logging/Logger;
            putstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
         1: .line 54
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            putstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.emptyConfig:Lio/vertx/core/json/JsonObject;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(io.vertx.core.Vertx, io.vertx.rabbitmq.RabbitMQOptions);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/rabbitmq/RabbitMQOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.rabbitmq.RabbitMQOptions config
         0: .line 67
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            iconst_0
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channelConfirms:Z
         2: .line 65
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connectionEstablishedCallbacks:Ljava/util/List;
         3: .line 68
            aload 0 /* this */
            aload 1 /* vertx */
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.vertx:Lio/vertx/core/Vertx;
         4: .line 69
            aload 0 /* this */
            aload 2 /* config */
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.config:Lio/vertx/rabbitmq/RabbitMQOptions;
         5: .line 70
            aload 0 /* this */
            aload 2 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getReconnectAttempts:()I
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.retries:I
         6: .line 71
            return
        end local 2 // io.vertx.rabbitmq.RabbitMQOptions config
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    7     1   vertx  Lio/vertx/core/Vertx;
            0    7     2  config  Lio/vertx/rabbitmq/RabbitMQOptions;
    MethodParameters:
        Name  Flags
      vertx   
      config  

  public long getChannelInstance();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
         0: .line 74
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channelInstance:J
            lreturn
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;

  public void addConnectionEstablishedCallback(io.vertx.core.Handler<io.vertx.core.Promise<java.lang.Void>>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // io.vertx.core.Handler connectionEstablishedCallback
         0: .line 79
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connectionEstablishedCallbacks:Ljava/util/List;
            aload 1 /* connectionEstablishedCallback */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 80
            return
        end local 1 // io.vertx.core.Handler connectionEstablishedCallback
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    2     0                           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    2     1  connectionEstablishedCallback  Lio/vertx/core/Handler<Lio/vertx/core/Promise<Ljava/lang/Void;>;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/Promise<Ljava/lang/Void;>;>;)V
    MethodParameters:
                               Name  Flags
      connectionEstablishedCallback  

  private static com.rabbitmq.client.Connection newConnection(io.vertx.core.Vertx, io.vertx.rabbitmq.RabbitMQOptions);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/rabbitmq/RabbitMQOptions;)Lcom/rabbitmq/client/Connection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // io.vertx.core.Vertx vertx
        start local 1 // io.vertx.rabbitmq.RabbitMQOptions config
         0: .line 83
            new com.rabbitmq.client.ConnectionFactory
            dup
            invokespecial com.rabbitmq.client.ConnectionFactory.<init>:()V
            astore 2 /* cf */
        start local 2 // com.rabbitmq.client.ConnectionFactory cf
         1: .line 85
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getUri:()Ljava/lang/String;
            astore 3 /* uri */
        start local 3 // java.lang.String uri
         2: .line 87
            aconst_null
            astore 4 /* addresses */
        start local 4 // java.util.List addresses
         3: .line 88
            aload 3 /* uri */
            ifnull 9
         4: .line 90
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Connecting to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.impl.logging.Logger.info:(Ljava/lang/Object;)V
         5: .line 91
            aload 2 /* cf */
            aload 3 /* uri */
            invokevirtual com.rabbitmq.client.ConnectionFactory.setUri:(Ljava/lang/String;)V
         6: .line 92
            goto 16
      StackMap locals: io.vertx.core.Vertx io.vertx.rabbitmq.RabbitMQOptions com.rabbitmq.client.ConnectionFactory java.lang.String java.util.List
      StackMap stack: java.lang.Exception
         7: pop
         8: .line 93
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid rabbitmq connection uri "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 96
      StackMap locals:
      StackMap stack:
            aload 2 /* cf */
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getUser:()Ljava/lang/String;
            invokevirtual com.rabbitmq.client.ConnectionFactory.setUsername:(Ljava/lang/String;)V
        10: .line 97
            aload 2 /* cf */
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getPassword:()Ljava/lang/String;
            invokevirtual com.rabbitmq.client.ConnectionFactory.setPassword:(Ljava/lang/String;)V
        11: .line 98
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getAddresses:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 13
        12: .line 99
            new com.rabbitmq.client.Address
            dup
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getHost:()Ljava/lang/String;
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getPort:()I
            invokespecial com.rabbitmq.client.Address.<init>:(Ljava/lang/String;I)V
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            goto 14
        13: .line 100
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getAddresses:()Ljava/util/List;
        14: .line 98
      StackMap locals:
      StackMap stack: java.util.List
            astore 4 /* addresses */
        15: .line 101
            aload 2 /* cf */
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getVirtualHost:()Ljava/lang/String;
            invokevirtual com.rabbitmq.client.ConnectionFactory.setVirtualHost:(Ljava/lang/String;)V
        16: .line 104
      StackMap locals:
      StackMap stack:
            aload 2 /* cf */
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getConnectionTimeout:()I
            invokevirtual com.rabbitmq.client.ConnectionFactory.setConnectionTimeout:(I)V
        17: .line 105
            aload 2 /* cf */
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getRequestedHeartbeat:()I
            invokevirtual com.rabbitmq.client.ConnectionFactory.setRequestedHeartbeat:(I)V
        18: .line 106
            aload 2 /* cf */
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getHandshakeTimeout:()I
            invokevirtual com.rabbitmq.client.ConnectionFactory.setHandshakeTimeout:(I)V
        19: .line 107
            aload 2 /* cf */
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getRequestedChannelMax:()I
            invokevirtual com.rabbitmq.client.ConnectionFactory.setRequestedChannelMax:(I)V
        20: .line 108
            aload 2 /* cf */
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getNetworkRecoveryInterval:()J
            invokevirtual com.rabbitmq.client.ConnectionFactory.setNetworkRecoveryInterval:(J)V
        21: .line 109
            aload 2 /* cf */
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.isAutomaticRecoveryEnabled:()Z
            invokevirtual com.rabbitmq.client.ConnectionFactory.setAutomaticRecoveryEnabled:(Z)V
        22: .line 111
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.isSsl:()Z
            ifeq 27
        23: .line 113
            aload 1 /* config */
            new io.vertx.core.net.JdkSSLEngineOptions
            dup
            invokespecial io.vertx.core.net.JdkSSLEngineOptions.<init>:()V
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.setSslEngineOptions:(Lio/vertx/core/net/SSLEngineOptions;)Lio/vertx/core/net/NetClientOptions;
            pop
        24: .line 114
            new io.vertx.core.net.impl.SSLHelper
            dup
            aload 1 /* config */
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getKeyCertOptions:()Lio/vertx/core/net/KeyCertOptions;
            aload 1 /* config */
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getTrustOptions:()Lio/vertx/core/net/TrustOptions;
            invokespecial io.vertx.core.net.impl.SSLHelper.<init>:(Lio/vertx/core/net/NetClientOptions;Lio/vertx/core/net/KeyCertOptions;Lio/vertx/core/net/TrustOptions;)V
            astore 5 /* sslHelper */
        start local 5 // io.vertx.core.net.impl.SSLHelper sslHelper
        25: .line 115
            aload 5 /* sslHelper */
            aload 0 /* vertx */
            checkcast io.vertx.core.impl.VertxInternal
            invokevirtual io.vertx.core.net.impl.SSLHelper.getContext:(Lio/vertx/core/impl/VertxInternal;)Lio/netty/handler/ssl/SslContext;
            checkcast io.netty.handler.ssl.JdkSslContext
            astore 6 /* ctx */
        start local 6 // io.netty.handler.ssl.JdkSslContext ctx
        26: .line 116
            aload 2 /* cf */
            aload 6 /* ctx */
            invokevirtual io.netty.handler.ssl.JdkSslContext.context:()Ljavax/net/ssl/SSLContext;
            invokevirtual com.rabbitmq.client.ConnectionFactory.useSslProtocol:(Ljavax/net/ssl/SSLContext;)V
        end local 6 // io.netty.handler.ssl.JdkSslContext ctx
        end local 5 // io.vertx.core.net.impl.SSLHelper sslHelper
        27: .line 120
      StackMap locals:
      StackMap stack:
            aload 4 /* addresses */
            ifnonnull 29
        28: .line 121
            aload 2 /* cf */
            invokevirtual com.rabbitmq.client.ConnectionFactory.newConnection:()Lcom/rabbitmq/client/Connection;
            goto 30
        29: .line 122
      StackMap locals:
      StackMap stack:
            aload 2 /* cf */
            aload 4 /* addresses */
            invokevirtual com.rabbitmq.client.ConnectionFactory.newConnection:(Ljava/util/List;)Lcom/rabbitmq/client/Connection;
        30: .line 120
      StackMap locals:
      StackMap stack: com.rabbitmq.client.Connection
            areturn
        end local 4 // java.util.List addresses
        end local 3 // java.lang.String uri
        end local 2 // com.rabbitmq.client.ConnectionFactory cf
        end local 1 // io.vertx.rabbitmq.RabbitMQOptions config
        end local 0 // io.vertx.core.Vertx vertx
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   31     0      vertx  Lio/vertx/core/Vertx;
            0   31     1     config  Lio/vertx/rabbitmq/RabbitMQOptions;
            1   31     2         cf  Lcom/rabbitmq/client/ConnectionFactory;
            2   31     3        uri  Ljava/lang/String;
            3   31     4  addresses  Ljava/util/List<Lcom/rabbitmq/client/Address;>;
           25   27     5  sslHelper  Lio/vertx/core/net/impl/SSLHelper;
           26   27     6        ctx  Lio/netty/handler/ssl/JdkSslContext;
      Exception table:
        from    to  target  type
           4     6       7  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException, java.util.concurrent.TimeoutException
    MethodParameters:
        Name  Flags
      vertx   
      config  

  public boolean isConnected();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
         0: .line 127
            iconst_0
            istore 1 /* connected */
        start local 1 // boolean connected
         1: .line 128
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connection:Lcom/rabbitmq/client/Connection;
            ifnull 4
         2: .line 129
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connection:Lcom/rabbitmq/client/Connection;
            invokeinterface com.rabbitmq.client.Connection.isOpen:()Z
            ifeq 4
         3: .line 130
            iconst_1
            istore 1 /* connected */
         4: .line 133
      StackMap locals: int
      StackMap stack:
            iload 1 /* connected */
            ireturn
        end local 1 // boolean connected
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            1    5     1  connected  Z

  public boolean isOpenChannel();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
         0: .line 138
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channel:Lcom/rabbitmq/client/Channel;
            ifnull 1
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channel:Lcom/rabbitmq/client/Channel;
            invokeinterface com.rabbitmq.client.Channel.isOpen:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;

  public void basicAck(long, boolean, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (JZLio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // long deliveryTag
        start local 3 // boolean multiple
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 143
            aload 0 /* this */
            lload 1 /* deliveryTag */
            iload 3 /* multiple */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.basicAck:(JZ)Lio/vertx/core/Future;
            astore 5 /* fut */
        start local 5 // io.vertx.core.Future fut
         1: .line 144
            aload 4 /* resultHandler */
            ifnull 3
         2: .line 145
            aload 5 /* fut */
            aload 4 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 147
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 5 // io.vertx.core.Future fut
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // boolean multiple
        end local 1 // long deliveryTag
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1    deliveryTag  J
            0    4     3       multiple  Z
            0    4     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     5            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (JZLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      deliveryTag    
      multiple       
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> basicAck(long, boolean);
    descriptor: (JZ)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // long deliveryTag
        start local 3 // boolean multiple
         0: .line 151
            aload 0 /* this */
            lload 1 /* deliveryTag */
            iload 3 /* multiple */
            invokedynamic handle(JZ)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$0(JZLcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 3 // boolean multiple
        end local 1 // long deliveryTag
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1  deliveryTag  J
            0    1     3     multiple  Z
    Signature: (JZ)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
             Name  Flags
      deliveryTag  
      multiple     

  public void basicNack(long, boolean, boolean, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (JZZLio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // long deliveryTag
        start local 3 // boolean multiple
        start local 4 // boolean requeue
        start local 5 // io.vertx.core.Handler resultHandler
         0: .line 159
            aload 0 /* this */
            lload 1 /* deliveryTag */
            iload 3 /* multiple */
            iload 4 /* requeue */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.basicNack:(JZZ)Lio/vertx/core/Future;
            astore 6 /* fut */
        start local 6 // io.vertx.core.Future fut
         1: .line 160
            aload 5 /* resultHandler */
            ifnull 3
         2: .line 161
            aload 6 /* fut */
            aload 5 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 163
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 6 // io.vertx.core.Future fut
        end local 5 // io.vertx.core.Handler resultHandler
        end local 4 // boolean requeue
        end local 3 // boolean multiple
        end local 1 // long deliveryTag
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1    deliveryTag  J
            0    4     3       multiple  Z
            0    4     4        requeue  Z
            0    4     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     6            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (JZZLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      deliveryTag    
      multiple       
      requeue        
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> basicNack(long, boolean, boolean);
    descriptor: (JZZ)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // long deliveryTag
        start local 3 // boolean multiple
        start local 4 // boolean requeue
         0: .line 167
            aload 0 /* this */
            lload 1 /* deliveryTag */
            iload 3 /* multiple */
            iload 4 /* requeue */
            invokedynamic handle(JZZ)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$1(JZZLcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 4 // boolean requeue
        end local 3 // boolean multiple
        end local 1 // long deliveryTag
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1  deliveryTag  J
            0    1     3     multiple  Z
            0    1     4      requeue  Z
    Signature: (JZZ)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
             Name  Flags
      deliveryTag  
      multiple     
      requeue      

  private void restartConsumer(int, io.vertx.rabbitmq.impl.QueueConsumerHandler, io.vertx.rabbitmq.QueueOptions);
    descriptor: (ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // int attempts
        start local 2 // io.vertx.rabbitmq.impl.QueueConsumerHandler handler
        start local 3 // io.vertx.rabbitmq.QueueOptions options
         0: .line 174
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* handler */
            aload 3 /* options */
            iload 1 /* attempts */
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;Lio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;I)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$2(Lio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;ILio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.stop:(Lio/vertx/core/Handler;)V
         1: .line 211
            return
        end local 3 // io.vertx.rabbitmq.QueueOptions options
        end local 2 // io.vertx.rabbitmq.impl.QueueConsumerHandler handler
        end local 1 // int attempts
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    2     1  attempts  I
            0    2     2   handler  Lio/vertx/rabbitmq/impl/QueueConsumerHandler;
            0    2     3   options  Lio/vertx/rabbitmq/QueueOptions;
    MethodParameters:
          Name  Flags
      attempts  
      handler   
      options   

  public void basicConsumer(java.lang.String, io.vertx.rabbitmq.QueueOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.rabbitmq.RabbitMQConsumer>>);
    descriptor: (Ljava/lang/String;Lio/vertx/rabbitmq/QueueOptions;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // io.vertx.rabbitmq.QueueOptions options
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 215
            aload 0 /* this */
            aload 1 /* queue */
            aload 2 /* options */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.basicConsumer:(Ljava/lang/String;Lio/vertx/rabbitmq/QueueOptions;)Lio/vertx/core/Future;
            astore 4 /* fut */
        start local 4 // io.vertx.core.Future fut
         1: .line 216
            aload 3 /* resultHandler */
            ifnull 3
         2: .line 217
            aload 4 /* fut */
            aload 3 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 219
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 4 // io.vertx.core.Future fut
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // io.vertx.rabbitmq.QueueOptions options
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1          queue  Ljava/lang/String;
            0    4     2        options  Lio/vertx/rabbitmq/QueueOptions;
            0    4     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/rabbitmq/RabbitMQConsumer;>;>;
            1    4     4            fut  Lio/vertx/core/Future<Lio/vertx/rabbitmq/RabbitMQConsumer;>;
    Signature: (Ljava/lang/String;Lio/vertx/rabbitmq/QueueOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/rabbitmq/RabbitMQConsumer;>;>;)V
    MethodParameters:
               Name  Flags
      queue          
      options        
      resultHandler  

  public io.vertx.core.Future<io.vertx.rabbitmq.RabbitMQConsumer> basicConsumer(java.lang.String, io.vertx.rabbitmq.QueueOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/rabbitmq/QueueOptions;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // io.vertx.rabbitmq.QueueOptions options
         0: .line 223
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* options */
            aload 1 /* queue */
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;Lio/vertx/rabbitmq/QueueOptions;Ljava/lang/String;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$8(Lio/vertx/rabbitmq/QueueOptions;Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Lio/vertx/rabbitmq/impl/QueueConsumerHandler; (7)
                  (Lcom/rabbitmq/client/Channel;)Lio/vertx/rabbitmq/impl/QueueConsumerHandler;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
         1: .line 236
            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;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$10(Lio/vertx/rabbitmq/impl/QueueConsumerHandler;)Lio/vertx/rabbitmq/RabbitMQConsumer; (6)
                  (Lio/vertx/rabbitmq/impl/QueueConsumerHandler;)Lio/vertx/rabbitmq/RabbitMQConsumer;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
         2: .line 223
            areturn
        end local 2 // io.vertx.rabbitmq.QueueOptions options
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    3     1    queue  Ljava/lang/String;
            0    3     2  options  Lio/vertx/rabbitmq/QueueOptions;
    Signature: (Ljava/lang/String;Lio/vertx/rabbitmq/QueueOptions;)Lio/vertx/core/Future<Lio/vertx/rabbitmq/RabbitMQConsumer;>;
    MethodParameters:
         Name  Flags
      queue    
      options  

  public void basicGet(java.lang.String, boolean, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.rabbitmq.RabbitMQMessage>>);
    descriptor: (Ljava/lang/String;ZLio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // boolean autoAck
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 248
            aload 0 /* this */
            aload 1 /* queue */
            iload 2 /* autoAck */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.basicGet:(Ljava/lang/String;Z)Lio/vertx/core/Future;
            astore 4 /* fut */
        start local 4 // io.vertx.core.Future fut
         1: .line 249
            aload 3 /* resultHandler */
            ifnull 3
         2: .line 250
            aload 4 /* fut */
            aload 3 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 252
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 4 // io.vertx.core.Future fut
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // boolean autoAck
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1          queue  Ljava/lang/String;
            0    4     2        autoAck  Z
            0    4     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/rabbitmq/RabbitMQMessage;>;>;
            1    4     4            fut  Lio/vertx/core/Future<Lio/vertx/rabbitmq/RabbitMQMessage;>;
    Signature: (Ljava/lang/String;ZLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/rabbitmq/RabbitMQMessage;>;>;)V
    MethodParameters:
               Name  Flags
      queue          
      autoAck        
      resultHandler  

  public io.vertx.core.Future<io.vertx.rabbitmq.RabbitMQMessage> basicGet(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // boolean autoAck
         0: .line 256
            aload 0 /* this */
            aload 1 /* queue */
            iload 2 /* autoAck */
            invokedynamic handle(Ljava/lang/String;Z)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$11(Ljava/lang/String;ZLcom/rabbitmq/client/Channel;)Lio/vertx/rabbitmq/RabbitMQMessage; (6)
                  (Lcom/rabbitmq/client/Channel;)Lio/vertx/rabbitmq/RabbitMQMessage;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 2 // boolean autoAck
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1    queue  Ljava/lang/String;
            0    1     2  autoAck  Z
    Signature: (Ljava/lang/String;Z)Lio/vertx/core/Future<Lio/vertx/rabbitmq/RabbitMQMessage;>;
    MethodParameters:
         Name  Flags
      queue    
      autoAck  

  public void basicPublish(java.lang.String, java.lang.String, io.vertx.core.buffer.Buffer, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String exchange
        start local 2 // java.lang.String routingKey
        start local 3 // io.vertx.core.buffer.Buffer body
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 268
            aload 0 /* this */
            aload 1 /* exchange */
            aload 2 /* routingKey */
            new com.rabbitmq.client.AMQP$BasicProperties
            dup
            invokespecial com.rabbitmq.client.AMQP$BasicProperties.<init>:()V
            aload 3 /* body */
            aconst_null
            aload 4 /* resultHandler */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.basicPublishWithDeliveryTag:(Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;Lio/vertx/core/Handler;)V
         1: .line 269
            return
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.core.buffer.Buffer body
        end local 2 // java.lang.String routingKey
        end local 1 // java.lang.String exchange
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    2     1       exchange  Ljava/lang/String;
            0    2     2     routingKey  Ljava/lang/String;
            0    2     3           body  Lio/vertx/core/buffer/Buffer;
            0    2     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      exchange       
      routingKey     
      body           
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> basicPublish(java.lang.String, java.lang.String, io.vertx.core.buffer.Buffer);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String exchange
        start local 2 // java.lang.String routingKey
        start local 3 // io.vertx.core.buffer.Buffer body
         0: .line 273
            aload 0 /* this */
            aload 1 /* exchange */
            aload 2 /* routingKey */
            new com.rabbitmq.client.AMQP$BasicProperties
            dup
            invokespecial com.rabbitmq.client.AMQP$BasicProperties.<init>:()V
            aload 3 /* body */
            aconst_null
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.basicPublishWithDeliveryTag:(Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            areturn
        end local 3 // io.vertx.core.buffer.Buffer body
        end local 2 // java.lang.String routingKey
        end local 1 // java.lang.String exchange
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1    exchange  Ljava/lang/String;
            0    1     2  routingKey  Ljava/lang/String;
            0    1     3        body  Lio/vertx/core/buffer/Buffer;
    Signature: (Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      exchange    
      routingKey  
      body        

  public void basicPublish(java.lang.String, java.lang.String, com.rabbitmq.client.BasicProperties, io.vertx.core.buffer.Buffer, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String exchange
        start local 2 // java.lang.String routingKey
        start local 3 // com.rabbitmq.client.BasicProperties properties
        start local 4 // io.vertx.core.buffer.Buffer body
        start local 5 // io.vertx.core.Handler resultHandler
         0: .line 278
            aload 0 /* this */
            aload 1 /* exchange */
            aload 2 /* routingKey */
            aload 3 /* properties */
            aload 4 /* body */
            aconst_null
            aload 5 /* resultHandler */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.basicPublishWithDeliveryTag:(Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;Lio/vertx/core/Handler;)V
         1: .line 279
            return
        end local 5 // io.vertx.core.Handler resultHandler
        end local 4 // io.vertx.core.buffer.Buffer body
        end local 3 // com.rabbitmq.client.BasicProperties properties
        end local 2 // java.lang.String routingKey
        end local 1 // java.lang.String exchange
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    2     1       exchange  Ljava/lang/String;
            0    2     2     routingKey  Ljava/lang/String;
            0    2     3     properties  Lcom/rabbitmq/client/BasicProperties;
            0    2     4           body  Lio/vertx/core/buffer/Buffer;
            0    2     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      exchange       
      routingKey     
      properties     
      body           
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> basicPublish(java.lang.String, java.lang.String, com.rabbitmq.client.BasicProperties, io.vertx.core.buffer.Buffer);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String exchange
        start local 2 // java.lang.String routingKey
        start local 3 // com.rabbitmq.client.BasicProperties properties
        start local 4 // io.vertx.core.buffer.Buffer body
         0: .line 283
            aload 0 /* this */
            aload 1 /* exchange */
            aload 2 /* routingKey */
            aload 3 /* properties */
            aload 4 /* body */
            aconst_null
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.basicPublishWithDeliveryTag:(Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            areturn
        end local 4 // io.vertx.core.buffer.Buffer body
        end local 3 // com.rabbitmq.client.BasicProperties properties
        end local 2 // java.lang.String routingKey
        end local 1 // java.lang.String exchange
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1    exchange  Ljava/lang/String;
            0    1     2  routingKey  Ljava/lang/String;
            0    1     3  properties  Lcom/rabbitmq/client/BasicProperties;
            0    1     4        body  Lio/vertx/core/buffer/Buffer;
    Signature: (Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      exchange    
      routingKey  
      properties  
      body        

  public void basicPublishWithDeliveryTag(java.lang.String, java.lang.String, com.rabbitmq.client.BasicProperties, io.vertx.core.buffer.Buffer, io.vertx.core.Handler<java.lang.Long>, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=7
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String exchange
        start local 2 // java.lang.String routingKey
        start local 3 // com.rabbitmq.client.BasicProperties properties
        start local 4 // io.vertx.core.buffer.Buffer body
        start local 5 // io.vertx.core.Handler deliveryTagHandler
        start local 6 // io.vertx.core.Handler resultHandler
         0: .line 288
            aload 0 /* this */
            aload 1 /* exchange */
            aload 2 /* routingKey */
            aload 3 /* properties */
            aload 4 /* body */
            aload 5 /* deliveryTagHandler */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.basicPublishWithDeliveryTag:(Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            astore 7 /* fut */
        start local 7 // io.vertx.core.Future fut
         1: .line 289
            aload 6 /* resultHandler */
            ifnull 3
         2: .line 290
            aload 7 /* fut */
            aload 6 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 292
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 7 // io.vertx.core.Future fut
        end local 6 // io.vertx.core.Handler resultHandler
        end local 5 // io.vertx.core.Handler deliveryTagHandler
        end local 4 // io.vertx.core.buffer.Buffer body
        end local 3 // com.rabbitmq.client.BasicProperties properties
        end local 2 // java.lang.String routingKey
        end local 1 // java.lang.String exchange
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1            exchange  Ljava/lang/String;
            0    4     2          routingKey  Ljava/lang/String;
            0    4     3          properties  Lcom/rabbitmq/client/BasicProperties;
            0    4     4                body  Lio/vertx/core/buffer/Buffer;
            0    4     5  deliveryTagHandler  Lio/vertx/core/Handler<Ljava/lang/Long;>;
            0    4     6       resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     7                 fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler<Ljava/lang/Long;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
                    Name  Flags
      exchange            
      routingKey          
      properties          
      body                
      deliveryTagHandler  
      resultHandler       

  public io.vertx.core.Future<java.lang.Void> basicPublishWithDeliveryTag(java.lang.String, java.lang.String, com.rabbitmq.client.BasicProperties, io.vertx.core.buffer.Buffer, io.vertx.core.Handler<java.lang.Long>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String exchange
        start local 2 // java.lang.String routingKey
        start local 3 // com.rabbitmq.client.BasicProperties properties
        start local 4 // io.vertx.core.buffer.Buffer body
        start local 5 // io.vertx.core.Handler deliveryTagHandler
         0: .line 296
            aload 0 /* this */
            aload 5 /* deliveryTagHandler */
            aload 1 /* exchange */
            aload 2 /* routingKey */
            aload 3 /* properties */
            aload 4 /* body */
            invokedynamic handle(Lio/vertx/core/Handler;Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$12(Lio/vertx/core/Handler;Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 5 // io.vertx.core.Handler deliveryTagHandler
        end local 4 // io.vertx.core.buffer.Buffer body
        end local 3 // com.rabbitmq.client.BasicProperties properties
        end local 2 // java.lang.String routingKey
        end local 1 // java.lang.String exchange
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1            exchange  Ljava/lang/String;
            0    1     2          routingKey  Ljava/lang/String;
            0    1     3          properties  Lcom/rabbitmq/client/BasicProperties;
            0    1     4                body  Lio/vertx/core/buffer/Buffer;
            0    1     5  deliveryTagHandler  Lio/vertx/core/Handler<Ljava/lang/Long;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler<Ljava/lang/Long;>;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
                    Name  Flags
      exchange            
      routingKey          
      properties          
      body                
      deliveryTagHandler  

  public void addConfirmListener(int, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.streams.ReadStream<io.vertx.rabbitmq.RabbitMQConfirmation>>>);
    descriptor: (ILio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // int maxQueueSize
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 308
            aload 0 /* this */
            iload 1 /* maxQueueSize */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.addConfirmListener:(I)Lio/vertx/core/Future;
            astore 3 /* fut */
        start local 3 // io.vertx.core.Future fut
         1: .line 309
            aload 2 /* resultHandler */
            ifnull 3
         2: .line 310
            aload 3 /* fut */
            aload 2 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 312
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 3 // io.vertx.core.Future fut
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // int maxQueueSize
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1   maxQueueSize  I
            0    4     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/streams/ReadStream<Lio/vertx/rabbitmq/RabbitMQConfirmation;>;>;>;
            1    4     3            fut  Lio/vertx/core/Future<Lio/vertx/core/streams/ReadStream<Lio/vertx/rabbitmq/RabbitMQConfirmation;>;>;
    Signature: (ILio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/streams/ReadStream<Lio/vertx/rabbitmq/RabbitMQConfirmation;>;>;>;)V
    MethodParameters:
               Name  Flags
      maxQueueSize   
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.streams.ReadStream<io.vertx.rabbitmq.RabbitMQConfirmation>> addConfirmListener(int);
    descriptor: (I)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // int maxQueueSize
         0: .line 316
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* maxQueueSize */
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;I)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$13(ILcom/rabbitmq/client/Channel;)Lio/vertx/core/streams/ReadStream; (7)
                  (Lcom/rabbitmq/client/Channel;)Lio/vertx/core/streams/ReadStream;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 1 // int maxQueueSize
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1  maxQueueSize  I
    Signature: (I)Lio/vertx/core/Future<Lio/vertx/core/streams/ReadStream<Lio/vertx/rabbitmq/RabbitMQConfirmation;>;>;
    MethodParameters:
              Name  Flags
      maxQueueSize  

  public void confirmSelect(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // io.vertx.core.Handler resultHandler
         0: .line 330
            aload 0 /* this */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.confirmSelect:()Lio/vertx/core/Future;
            astore 2 /* fut */
        start local 2 // io.vertx.core.Future fut
         1: .line 331
            aload 1 /* resultHandler */
            ifnull 3
         2: .line 332
            aload 2 /* fut */
            aload 1 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 334
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 2 // io.vertx.core.Future fut
        end local 1 // io.vertx.core.Handler resultHandler
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     2            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> confirmSelect();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
         0: .line 338
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$14(Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (7)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
    Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;

  public void waitForConfirms(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // io.vertx.core.Handler resultHandler
         0: .line 347
            aload 0 /* this */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.waitForConfirms:()Lio/vertx/core/Future;
            astore 2 /* fut */
        start local 2 // io.vertx.core.Future fut
         1: .line 348
            aload 1 /* resultHandler */
            ifnull 3
         2: .line 349
            aload 2 /* fut */
            aload 1 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 351
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 2 // io.vertx.core.Future fut
        end local 1 // io.vertx.core.Handler resultHandler
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     2            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> waitForConfirms();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
         0: .line 355
            aload 0 /* this */
            invokedynamic handle()Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$15(Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
    Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;

  public void waitForConfirms(long, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (JLio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // long timeout
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 363
            aload 0 /* this */
            lload 1 /* timeout */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.waitForConfirms:(J)Lio/vertx/core/Future;
            astore 4 /* fut */
        start local 4 // io.vertx.core.Future fut
         1: .line 364
            aload 3 /* resultHandler */
            ifnull 3
         2: .line 365
            aload 4 /* fut */
            aload 3 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 367
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 4 // io.vertx.core.Future fut
        end local 3 // io.vertx.core.Handler resultHandler
        end local 1 // long timeout
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1        timeout  J
            0    4     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     4            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (JLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      timeout        
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> waitForConfirms(long);
    descriptor: (J)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // long timeout
         0: .line 371
            aload 0 /* this */
            lload 1 /* timeout */
            invokedynamic handle(J)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$16(JLcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 1 // long timeout
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1  timeout  J
    Signature: (J)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
         Name  Flags
      timeout  

  public void basicQos(int, int, boolean, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (IIZLio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // int prefetchSize
        start local 2 // int prefetchCount
        start local 3 // boolean global
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 379
            aload 0 /* this */
            iload 1 /* prefetchSize */
            iload 2 /* prefetchCount */
            iload 3 /* global */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.basicQos:(IIZ)Lio/vertx/core/Future;
            astore 5 /* fut */
        start local 5 // io.vertx.core.Future fut
         1: .line 380
            aload 4 /* resultHandler */
            ifnull 3
         2: .line 381
            aload 5 /* fut */
            aload 4 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 383
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 5 // io.vertx.core.Future fut
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // boolean global
        end local 2 // int prefetchCount
        end local 1 // int prefetchSize
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1   prefetchSize  I
            0    4     2  prefetchCount  I
            0    4     3         global  Z
            0    4     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     5            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (IIZLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      prefetchSize   
      prefetchCount  
      global         
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> basicQos(int, int, boolean);
    descriptor: (IIZ)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // int prefetchSize
        start local 2 // int prefetchCount
        start local 3 // boolean global
         0: .line 387
            aload 0 /* this */
            iload 1 /* prefetchSize */
            iload 2 /* prefetchCount */
            iload 3 /* global */
            invokedynamic handle(IIZ)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$17(IIZLcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 3 // boolean global
        end local 2 // int prefetchCount
        end local 1 // int prefetchSize
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1   prefetchSize  I
            0    1     2  prefetchCount  I
            0    1     3         global  Z
    Signature: (IIZ)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
               Name  Flags
      prefetchSize   
      prefetchCount  
      global         

  public void exchangeDeclare(java.lang.String, java.lang.String, boolean, boolean, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZZLio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String exchange
        start local 2 // java.lang.String type
        start local 3 // boolean durable
        start local 4 // boolean autoDelete
        start local 5 // io.vertx.core.Handler resultHandler
         0: .line 395
            aload 0 /* this */
            aload 1 /* exchange */
            aload 2 /* type */
            iload 3 /* durable */
            iload 4 /* autoDelete */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.exchangeDeclare:(Ljava/lang/String;Ljava/lang/String;ZZ)Lio/vertx/core/Future;
            astore 6 /* fut */
        start local 6 // io.vertx.core.Future fut
         1: .line 396
            aload 5 /* resultHandler */
            ifnull 3
         2: .line 397
            aload 6 /* fut */
            aload 5 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 399
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 6 // io.vertx.core.Future fut
        end local 5 // io.vertx.core.Handler resultHandler
        end local 4 // boolean autoDelete
        end local 3 // boolean durable
        end local 2 // java.lang.String type
        end local 1 // java.lang.String exchange
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1       exchange  Ljava/lang/String;
            0    4     2           type  Ljava/lang/String;
            0    4     3        durable  Z
            0    4     4     autoDelete  Z
            0    4     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     6            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;ZZLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      exchange       
      type           
      durable        
      autoDelete     
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> exchangeDeclare(java.lang.String, java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZZ)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String exchange
        start local 2 // java.lang.String type
        start local 3 // boolean durable
        start local 4 // boolean autoDelete
         0: .line 403
            aload 0 /* this */
            aload 1 /* exchange */
            aload 2 /* type */
            iload 3 /* durable */
            iload 4 /* autoDelete */
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.emptyConfig:Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.exchangeDeclare:(Ljava/lang/String;Ljava/lang/String;ZZLio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            areturn
        end local 4 // boolean autoDelete
        end local 3 // boolean durable
        end local 2 // java.lang.String type
        end local 1 // java.lang.String exchange
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1    exchange  Ljava/lang/String;
            0    1     2        type  Ljava/lang/String;
            0    1     3     durable  Z
            0    1     4  autoDelete  Z
    Signature: (Ljava/lang/String;Ljava/lang/String;ZZ)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      exchange    
      type        
      durable     
      autoDelete  

  public void exchangeDeclare(java.lang.String, java.lang.String, boolean, boolean, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZZLio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=7
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String exchange
        start local 2 // java.lang.String type
        start local 3 // boolean durable
        start local 4 // boolean autoDelete
        start local 5 // io.vertx.core.json.JsonObject config
        start local 6 // io.vertx.core.Handler resultHandler
         0: .line 408
            aload 0 /* this */
            aload 1 /* exchange */
            aload 2 /* type */
            iload 3 /* durable */
            iload 4 /* autoDelete */
            aload 5 /* config */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.exchangeDeclare:(Ljava/lang/String;Ljava/lang/String;ZZLio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 7 /* fut */
        start local 7 // io.vertx.core.Future fut
         1: .line 409
            aload 6 /* resultHandler */
            ifnull 3
         2: .line 410
            aload 7 /* fut */
            aload 6 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 412
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 7 // io.vertx.core.Future fut
        end local 6 // io.vertx.core.Handler resultHandler
        end local 5 // io.vertx.core.json.JsonObject config
        end local 4 // boolean autoDelete
        end local 3 // boolean durable
        end local 2 // java.lang.String type
        end local 1 // java.lang.String exchange
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1       exchange  Ljava/lang/String;
            0    4     2           type  Ljava/lang/String;
            0    4     3        durable  Z
            0    4     4     autoDelete  Z
            0    4     5         config  Lio/vertx/core/json/JsonObject;
            0    4     6  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     7            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;ZZLio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      exchange       
      type           
      durable        
      autoDelete     
      config         
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> exchangeDeclare(java.lang.String, java.lang.String, boolean, boolean, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZZLio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String exchange
        start local 2 // java.lang.String type
        start local 3 // boolean durable
        start local 4 // boolean autoDelete
        start local 5 // io.vertx.core.json.JsonObject config
         0: .line 416
            aload 0 /* this */
            aload 1 /* exchange */
            aload 2 /* type */
            iload 3 /* durable */
            iload 4 /* autoDelete */
            aload 5 /* config */
            invokedynamic handle(Ljava/lang/String;Ljava/lang/String;ZZLio/vertx/core/json/JsonObject;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$18(Ljava/lang/String;Ljava/lang/String;ZZLio/vertx/core/json/JsonObject;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 5 // io.vertx.core.json.JsonObject config
        end local 4 // boolean autoDelete
        end local 3 // boolean durable
        end local 2 // java.lang.String type
        end local 1 // java.lang.String exchange
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1    exchange  Ljava/lang/String;
            0    1     2        type  Ljava/lang/String;
            0    1     3     durable  Z
            0    1     4  autoDelete  Z
            0    1     5      config  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Ljava/lang/String;ZZLio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      exchange    
      type        
      durable     
      autoDelete  
      config      

  public void exchangeDelete(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String exchange
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 424
            aload 0 /* this */
            aload 1 /* exchange */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.exchangeDelete:(Ljava/lang/String;)Lio/vertx/core/Future;
            astore 3 /* fut */
        start local 3 // io.vertx.core.Future fut
         1: .line 425
            aload 2 /* resultHandler */
            ifnull 3
         2: .line 426
            aload 3 /* fut */
            aload 2 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 428
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 3 // io.vertx.core.Future fut
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String exchange
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1       exchange  Ljava/lang/String;
            0    4     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     3            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      exchange       
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> exchangeDelete(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String exchange
         0: .line 432
            aload 0 /* this */
            aload 1 /* exchange */
            invokedynamic handle(Ljava/lang/String;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$19(Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 1 // java.lang.String exchange
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1  exchange  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
          Name  Flags
      exchange  

  public void exchangeBind(java.lang.String, java.lang.String, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String destination
        start local 2 // java.lang.String source
        start local 3 // java.lang.String routingKey
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 440
            aload 0 /* this */
            aload 1 /* destination */
            aload 2 /* source */
            aload 3 /* routingKey */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.exchangeBind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
            astore 5 /* fut */
        start local 5 // io.vertx.core.Future fut
         1: .line 441
            aload 4 /* resultHandler */
            ifnull 3
         2: .line 442
            aload 5 /* fut */
            aload 4 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 444
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 5 // io.vertx.core.Future fut
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String source
        end local 1 // java.lang.String destination
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1    destination  Ljava/lang/String;
            0    4     2         source  Ljava/lang/String;
            0    4     3     routingKey  Ljava/lang/String;
            0    4     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     5            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      destination    
      source         
      routingKey     
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> exchangeBind(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String destination
        start local 2 // java.lang.String source
        start local 3 // java.lang.String routingKey
         0: .line 448
            aload 0 /* this */
            aload 1 /* destination */
            aload 2 /* source */
            aload 3 /* routingKey */
            invokedynamic handle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$20(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String source
        end local 1 // java.lang.String destination
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1  destination  Ljava/lang/String;
            0    1     2       source  Ljava/lang/String;
            0    1     3   routingKey  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
             Name  Flags
      destination  
      source       
      routingKey   

  public void exchangeBind(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String destination
        start local 2 // java.lang.String source
        start local 3 // java.lang.String routingKey
        start local 4 // java.util.Map arguments
        start local 5 // io.vertx.core.Handler resultHandler
         0: .line 456
            aload 0 /* this */
            aload 1 /* destination */
            aload 2 /* source */
            aload 3 /* routingKey */
            aload 4 /* arguments */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.exchangeBind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lio/vertx/core/Future;
            astore 6 /* fut */
        start local 6 // io.vertx.core.Future fut
         1: .line 457
            aload 5 /* resultHandler */
            ifnull 3
         2: .line 458
            aload 6 /* fut */
            aload 5 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 460
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 6 // io.vertx.core.Future fut
        end local 5 // io.vertx.core.Handler resultHandler
        end local 4 // java.util.Map arguments
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String source
        end local 1 // java.lang.String destination
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1    destination  Ljava/lang/String;
            0    4     2         source  Ljava/lang/String;
            0    4     3     routingKey  Ljava/lang/String;
            0    4     4      arguments  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0    4     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     6            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      destination    
      source         
      routingKey     
      arguments      
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> exchangeBind(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String destination
        start local 2 // java.lang.String source
        start local 3 // java.lang.String routingKey
        start local 4 // java.util.Map arguments
         0: .line 464
            aload 0 /* this */
            aload 1 /* destination */
            aload 2 /* source */
            aload 3 /* routingKey */
            aload 4 /* arguments */
            invokedynamic handle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$21(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 4 // java.util.Map arguments
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String source
        end local 1 // java.lang.String destination
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1  destination  Ljava/lang/String;
            0    1     2       source  Ljava/lang/String;
            0    1     3   routingKey  Ljava/lang/String;
            0    1     4    arguments  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
             Name  Flags
      destination  
      source       
      routingKey   
      arguments    

  public void exchangeUnbind(java.lang.String, java.lang.String, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String destination
        start local 2 // java.lang.String source
        start local 3 // java.lang.String routingKey
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 472
            aload 0 /* this */
            aload 1 /* destination */
            aload 2 /* source */
            aload 3 /* routingKey */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.exchangeUnbind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
            astore 5 /* fut */
        start local 5 // io.vertx.core.Future fut
         1: .line 473
            aload 4 /* resultHandler */
            ifnull 3
         2: .line 474
            aload 5 /* fut */
            aload 4 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 476
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 5 // io.vertx.core.Future fut
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String source
        end local 1 // java.lang.String destination
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1    destination  Ljava/lang/String;
            0    4     2         source  Ljava/lang/String;
            0    4     3     routingKey  Ljava/lang/String;
            0    4     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     5            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      destination    
      source         
      routingKey     
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> exchangeUnbind(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String destination
        start local 2 // java.lang.String source
        start local 3 // java.lang.String routingKey
         0: .line 480
            aload 0 /* this */
            aload 1 /* destination */
            aload 2 /* source */
            aload 3 /* routingKey */
            invokedynamic handle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$22(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String source
        end local 1 // java.lang.String destination
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1  destination  Ljava/lang/String;
            0    1     2       source  Ljava/lang/String;
            0    1     3   routingKey  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
             Name  Flags
      destination  
      source       
      routingKey   

  public void exchangeUnbind(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String destination
        start local 2 // java.lang.String source
        start local 3 // java.lang.String routingKey
        start local 4 // java.util.Map arguments
        start local 5 // io.vertx.core.Handler resultHandler
         0: .line 488
            aload 0 /* this */
            aload 1 /* destination */
            aload 2 /* source */
            aload 3 /* routingKey */
            aload 4 /* arguments */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.exchangeUnbind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lio/vertx/core/Future;
            astore 6 /* fut */
        start local 6 // io.vertx.core.Future fut
         1: .line 489
            aload 5 /* resultHandler */
            ifnull 3
         2: .line 490
            aload 6 /* fut */
            aload 5 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 492
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 6 // io.vertx.core.Future fut
        end local 5 // io.vertx.core.Handler resultHandler
        end local 4 // java.util.Map arguments
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String source
        end local 1 // java.lang.String destination
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1    destination  Ljava/lang/String;
            0    4     2         source  Ljava/lang/String;
            0    4     3     routingKey  Ljava/lang/String;
            0    4     4      arguments  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0    4     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     6            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      destination    
      source         
      routingKey     
      arguments      
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> exchangeUnbind(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String destination
        start local 2 // java.lang.String source
        start local 3 // java.lang.String routingKey
        start local 4 // java.util.Map arguments
         0: .line 496
            aload 0 /* this */
            aload 1 /* destination */
            aload 2 /* source */
            aload 3 /* routingKey */
            aload 4 /* arguments */
            invokedynamic handle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$23(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 4 // java.util.Map arguments
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String source
        end local 1 // java.lang.String destination
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1  destination  Ljava/lang/String;
            0    1     2       source  Ljava/lang/String;
            0    1     3   routingKey  Ljava/lang/String;
            0    1     4    arguments  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
             Name  Flags
      destination  
      source       
      routingKey   
      arguments    

  public void queueDeclareAuto(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonObject>>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // io.vertx.core.Handler resultHandler
         0: .line 504
            aload 0 /* this */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.queueDeclareAuto:()Lio/vertx/core/Future;
            astore 2 /* fut */
        start local 2 // io.vertx.core.Future fut
         1: .line 505
            aload 1 /* resultHandler */
            ifnull 3
         2: .line 506
            aload 2 /* fut */
            aload 1 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 508
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 2 // io.vertx.core.Future fut
        end local 1 // io.vertx.core.Handler resultHandler
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            1    4     2            fut  Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;)V
    MethodParameters:
               Name  Flags
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.json.JsonObject> queueDeclareAuto();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
         0: .line 512
            aload 0 /* this */
            invokedynamic handle()Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$24(Lcom/rabbitmq/client/Channel;)Lio/vertx/core/json/JsonObject; (6)
                  (Lcom/rabbitmq/client/Channel;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
    Signature: ()Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;

  public void queueDeclare(java.lang.String, boolean, boolean, boolean, io.vertx.core.Handler<io.vertx.core.AsyncResult<com.rabbitmq.client.AMQP$Queue$DeclareOk>>);
    descriptor: (Ljava/lang/String;ZZZLio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // boolean durable
        start local 3 // boolean exclusive
        start local 4 // boolean autoDelete
        start local 5 // io.vertx.core.Handler resultHandler
         0: .line 520
            aload 0 /* this */
            aload 1 /* queue */
            iload 2 /* durable */
            iload 3 /* exclusive */
            iload 4 /* autoDelete */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.queueDeclare:(Ljava/lang/String;ZZZ)Lio/vertx/core/Future;
            astore 6 /* fut */
        start local 6 // io.vertx.core.Future fut
         1: .line 521
            aload 5 /* resultHandler */
            ifnull 3
         2: .line 522
            aload 6 /* fut */
            aload 5 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 524
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 6 // io.vertx.core.Future fut
        end local 5 // io.vertx.core.Handler resultHandler
        end local 4 // boolean autoDelete
        end local 3 // boolean exclusive
        end local 2 // boolean durable
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1          queue  Ljava/lang/String;
            0    4     2        durable  Z
            0    4     3      exclusive  Z
            0    4     4     autoDelete  Z
            0    4     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;>;>;
            1    4     6            fut  Lio/vertx/core/Future<Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;>;
    Signature: (Ljava/lang/String;ZZZLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;>;>;)V
    MethodParameters:
               Name  Flags
      queue          
      durable        
      exclusive      
      autoDelete     
      resultHandler  

  public io.vertx.core.Future<com.rabbitmq.client.AMQP$Queue$DeclareOk> queueDeclare(java.lang.String, boolean, boolean, boolean);
    descriptor: (Ljava/lang/String;ZZZ)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // boolean durable
        start local 3 // boolean exclusive
        start local 4 // boolean autoDelete
         0: .line 528
            aload 0 /* this */
            aload 1 /* queue */
            iload 2 /* durable */
            iload 3 /* exclusive */
            iload 4 /* autoDelete */
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.emptyConfig:Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.queueDeclare:(Ljava/lang/String;ZZZLio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            areturn
        end local 4 // boolean autoDelete
        end local 3 // boolean exclusive
        end local 2 // boolean durable
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1       queue  Ljava/lang/String;
            0    1     2     durable  Z
            0    1     3   exclusive  Z
            0    1     4  autoDelete  Z
    Signature: (Ljava/lang/String;ZZZ)Lio/vertx/core/Future<Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;>;
    MethodParameters:
            Name  Flags
      queue       
      durable     
      exclusive   
      autoDelete  

  public void queueDeclare(java.lang.String, boolean, boolean, boolean, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<com.rabbitmq.client.AMQP$Queue$DeclareOk>>);
    descriptor: (Ljava/lang/String;ZZZLio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=7
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // boolean durable
        start local 3 // boolean exclusive
        start local 4 // boolean autoDelete
        start local 5 // io.vertx.core.json.JsonObject config
        start local 6 // io.vertx.core.Handler resultHandler
         0: .line 533
            aload 0 /* this */
            aload 1 /* queue */
            iload 2 /* durable */
            iload 3 /* exclusive */
            iload 4 /* autoDelete */
            aload 5 /* config */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.queueDeclare:(Ljava/lang/String;ZZZLio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 7 /* fut */
        start local 7 // io.vertx.core.Future fut
         1: .line 534
            aload 6 /* resultHandler */
            ifnull 3
         2: .line 535
            aload 7 /* fut */
            aload 6 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 537
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 7 // io.vertx.core.Future fut
        end local 6 // io.vertx.core.Handler resultHandler
        end local 5 // io.vertx.core.json.JsonObject config
        end local 4 // boolean autoDelete
        end local 3 // boolean exclusive
        end local 2 // boolean durable
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1          queue  Ljava/lang/String;
            0    4     2        durable  Z
            0    4     3      exclusive  Z
            0    4     4     autoDelete  Z
            0    4     5         config  Lio/vertx/core/json/JsonObject;
            0    4     6  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;>;>;
            1    4     7            fut  Lio/vertx/core/Future<Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;>;
    Signature: (Ljava/lang/String;ZZZLio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;>;>;)V
    MethodParameters:
               Name  Flags
      queue          
      durable        
      exclusive      
      autoDelete     
      config         
      resultHandler  

  public io.vertx.core.Future<com.rabbitmq.client.AMQP$Queue$DeclareOk> queueDeclare(java.lang.String, boolean, boolean, boolean, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;ZZZLio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // boolean durable
        start local 3 // boolean exclusive
        start local 4 // boolean autoDelete
        start local 5 // io.vertx.core.json.JsonObject config
         0: .line 541
            aload 0 /* this */
            aload 1 /* queue */
            iload 2 /* durable */
            iload 3 /* exclusive */
            iload 4 /* autoDelete */
            aload 5 /* config */
            invokedynamic handle(Ljava/lang/String;ZZZLio/vertx/core/json/JsonObject;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$25(Ljava/lang/String;ZZZLio/vertx/core/json/JsonObject;Lcom/rabbitmq/client/Channel;)Lcom/rabbitmq/client/AMQP$Queue$DeclareOk; (6)
                  (Lcom/rabbitmq/client/Channel;)Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 5 // io.vertx.core.json.JsonObject config
        end local 4 // boolean autoDelete
        end local 3 // boolean exclusive
        end local 2 // boolean durable
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1       queue  Ljava/lang/String;
            0    1     2     durable  Z
            0    1     3   exclusive  Z
            0    1     4  autoDelete  Z
            0    1     5      config  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;ZZZLio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;>;
    MethodParameters:
            Name  Flags
      queue       
      durable     
      exclusive   
      autoDelete  
      config      

  public void queueDelete(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<com.rabbitmq.client.AMQP$Queue$DeleteOk>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 546
            aload 0 /* this */
            aload 1 /* queue */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.queueDelete:(Ljava/lang/String;)Lio/vertx/core/Future;
            astore 3 /* fut */
        start local 3 // io.vertx.core.Future fut
         1: .line 547
            aload 2 /* resultHandler */
            ifnull 3
         2: .line 548
            aload 3 /* fut */
            aload 2 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 550
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 3 // io.vertx.core.Future fut
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1          queue  Ljava/lang/String;
            0    4     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;>;>;
            1    4     3            fut  Lio/vertx/core/Future<Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;>;>;)V
    MethodParameters:
               Name  Flags
      queue          
      resultHandler  

  public io.vertx.core.Future<com.rabbitmq.client.AMQP$Queue$DeleteOk> queueDelete(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
         0: .line 554
            aload 0 /* this */
            aload 1 /* queue */
            invokedynamic handle(Ljava/lang/String;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$26(Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Lcom/rabbitmq/client/AMQP$Queue$DeleteOk; (6)
                  (Lcom/rabbitmq/client/Channel;)Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1  queue  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;>;
    MethodParameters:
       Name  Flags
      queue  

  public void queueDeleteIf(java.lang.String, boolean, boolean, io.vertx.core.Handler<io.vertx.core.AsyncResult<com.rabbitmq.client.AMQP$Queue$DeleteOk>>);
    descriptor: (Ljava/lang/String;ZZLio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // boolean ifUnused
        start local 3 // boolean ifEmpty
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 559
            aload 0 /* this */
            aload 1 /* queue */
            iload 2 /* ifUnused */
            iload 3 /* ifEmpty */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.queueDeleteIf:(Ljava/lang/String;ZZ)Lio/vertx/core/Future;
            astore 5 /* fut */
        start local 5 // io.vertx.core.Future fut
         1: .line 560
            aload 4 /* resultHandler */
            ifnull 3
         2: .line 561
            aload 5 /* fut */
            aload 4 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 563
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 5 // io.vertx.core.Future fut
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // boolean ifEmpty
        end local 2 // boolean ifUnused
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1          queue  Ljava/lang/String;
            0    4     2       ifUnused  Z
            0    4     3        ifEmpty  Z
            0    4     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;>;>;
            1    4     5            fut  Lio/vertx/core/Future<Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;>;
    Signature: (Ljava/lang/String;ZZLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;>;>;)V
    MethodParameters:
               Name  Flags
      queue          
      ifUnused       
      ifEmpty        
      resultHandler  

  public io.vertx.core.Future<com.rabbitmq.client.AMQP$Queue$DeleteOk> queueDeleteIf(java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;ZZ)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // boolean ifUnused
        start local 3 // boolean ifEmpty
         0: .line 567
            aload 0 /* this */
            aload 1 /* queue */
            iload 2 /* ifUnused */
            iload 3 /* ifEmpty */
            invokedynamic handle(Ljava/lang/String;ZZ)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$27(Ljava/lang/String;ZZLcom/rabbitmq/client/Channel;)Lcom/rabbitmq/client/AMQP$Queue$DeleteOk; (6)
                  (Lcom/rabbitmq/client/Channel;)Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 3 // boolean ifEmpty
        end local 2 // boolean ifUnused
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1     queue  Ljava/lang/String;
            0    1     2  ifUnused  Z
            0    1     3   ifEmpty  Z
    Signature: (Ljava/lang/String;ZZ)Lio/vertx/core/Future<Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;>;
    MethodParameters:
          Name  Flags
      queue     
      ifUnused  
      ifEmpty   

  public void queueBind(java.lang.String, java.lang.String, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // java.lang.String exchange
        start local 3 // java.lang.String routingKey
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 572
            aload 0 /* this */
            aload 1 /* queue */
            aload 2 /* exchange */
            aload 3 /* routingKey */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.queueBind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
            astore 5 /* fut */
        start local 5 // io.vertx.core.Future fut
         1: .line 573
            aload 4 /* resultHandler */
            ifnull 3
         2: .line 574
            aload 5 /* fut */
            aload 4 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 576
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 5 // io.vertx.core.Future fut
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String exchange
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1          queue  Ljava/lang/String;
            0    4     2       exchange  Ljava/lang/String;
            0    4     3     routingKey  Ljava/lang/String;
            0    4     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     5            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      queue          
      exchange       
      routingKey     
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> queueBind(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // java.lang.String exchange
        start local 3 // java.lang.String routingKey
         0: .line 580
            aload 0 /* this */
            aload 1 /* queue */
            aload 2 /* exchange */
            aload 3 /* routingKey */
            invokedynamic handle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$28(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String exchange
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1       queue  Ljava/lang/String;
            0    1     2    exchange  Ljava/lang/String;
            0    1     3  routingKey  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      queue       
      exchange    
      routingKey  

  public void queueBind(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // java.lang.String exchange
        start local 3 // java.lang.String routingKey
        start local 4 // java.util.Map arguments
        start local 5 // io.vertx.core.Handler resultHandler
         0: .line 588
            aload 0 /* this */
            aload 1 /* queue */
            aload 2 /* exchange */
            aload 3 /* routingKey */
            aload 4 /* arguments */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.queueBind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lio/vertx/core/Future;
            astore 6 /* fut */
        start local 6 // io.vertx.core.Future fut
         1: .line 589
            aload 5 /* resultHandler */
            ifnull 3
         2: .line 590
            aload 6 /* fut */
            aload 5 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 592
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 6 // io.vertx.core.Future fut
        end local 5 // io.vertx.core.Handler resultHandler
        end local 4 // java.util.Map arguments
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String exchange
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1          queue  Ljava/lang/String;
            0    4     2       exchange  Ljava/lang/String;
            0    4     3     routingKey  Ljava/lang/String;
            0    4     4      arguments  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0    4     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     6            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      queue          
      exchange       
      routingKey     
      arguments      
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> queueBind(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // java.lang.String exchange
        start local 3 // java.lang.String routingKey
        start local 4 // java.util.Map arguments
         0: .line 596
            aload 0 /* this */
            aload 1 /* queue */
            aload 2 /* exchange */
            aload 3 /* routingKey */
            aload 4 /* arguments */
            invokedynamic handle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$29(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 4 // java.util.Map arguments
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String exchange
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1       queue  Ljava/lang/String;
            0    1     2    exchange  Ljava/lang/String;
            0    1     3  routingKey  Ljava/lang/String;
            0    1     4   arguments  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      queue       
      exchange    
      routingKey  
      arguments   

  public void queueUnbind(java.lang.String, java.lang.String, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // java.lang.String exchange
        start local 3 // java.lang.String routingKey
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 604
            aload 0 /* this */
            aload 1 /* queue */
            aload 2 /* exchange */
            aload 3 /* routingKey */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.queueUnbind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
            astore 5 /* fut */
        start local 5 // io.vertx.core.Future fut
         1: .line 605
            aload 4 /* resultHandler */
            ifnull 3
         2: .line 606
            aload 5 /* fut */
            aload 4 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 608
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 5 // io.vertx.core.Future fut
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String exchange
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1          queue  Ljava/lang/String;
            0    4     2       exchange  Ljava/lang/String;
            0    4     3     routingKey  Ljava/lang/String;
            0    4     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     5            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      queue          
      exchange       
      routingKey     
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> queueUnbind(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // java.lang.String exchange
        start local 3 // java.lang.String routingKey
         0: .line 612
            aload 0 /* this */
            aload 1 /* queue */
            aload 2 /* exchange */
            aload 3 /* routingKey */
            invokedynamic handle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$30(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String exchange
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1       queue  Ljava/lang/String;
            0    1     2    exchange  Ljava/lang/String;
            0    1     3  routingKey  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      queue       
      exchange    
      routingKey  

  public void queueUnbind(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // java.lang.String exchange
        start local 3 // java.lang.String routingKey
        start local 4 // java.util.Map arguments
        start local 5 // io.vertx.core.Handler resultHandler
         0: .line 620
            aload 0 /* this */
            aload 1 /* queue */
            aload 2 /* exchange */
            aload 3 /* routingKey */
            aload 4 /* arguments */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.queueUnbind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lio/vertx/core/Future;
            astore 6 /* fut */
        start local 6 // io.vertx.core.Future fut
         1: .line 621
            aload 5 /* resultHandler */
            ifnull 3
         2: .line 622
            aload 6 /* fut */
            aload 5 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 624
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 6 // io.vertx.core.Future fut
        end local 5 // io.vertx.core.Handler resultHandler
        end local 4 // java.util.Map arguments
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String exchange
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1          queue  Ljava/lang/String;
            0    4     2       exchange  Ljava/lang/String;
            0    4     3     routingKey  Ljava/lang/String;
            0    4     4      arguments  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0    4     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     6            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      queue          
      exchange       
      routingKey     
      arguments      
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> queueUnbind(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // java.lang.String exchange
        start local 3 // java.lang.String routingKey
        start local 4 // java.util.Map arguments
         0: .line 628
            aload 0 /* this */
            aload 1 /* queue */
            aload 2 /* exchange */
            aload 3 /* routingKey */
            aload 4 /* arguments */
            invokedynamic handle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$31(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 4 // java.util.Map arguments
        end local 3 // java.lang.String routingKey
        end local 2 // java.lang.String exchange
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1       queue  Ljava/lang/String;
            0    1     2    exchange  Ljava/lang/String;
            0    1     3  routingKey  Ljava/lang/String;
            0    1     4   arguments  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      queue       
      exchange    
      routingKey  
      arguments   

  public void messageCount(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Long>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 636
            aload 0 /* this */
            aload 1 /* queue */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.messageCount:(Ljava/lang/String;)Lio/vertx/core/Future;
            astore 3 /* fut */
        start local 3 // io.vertx.core.Future fut
         1: .line 637
            aload 2 /* resultHandler */
            ifnull 3
         2: .line 638
            aload 3 /* fut */
            aload 2 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 640
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 3 // io.vertx.core.Future fut
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1          queue  Ljava/lang/String;
            0    4     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Long;>;>;
            1    4     3            fut  Lio/vertx/core/Future<Ljava/lang/Long;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Long;>;>;)V
    MethodParameters:
               Name  Flags
      queue          
      resultHandler  

  public io.vertx.core.Future<java.lang.Long> messageCount(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // java.lang.String queue
         0: .line 644
            aload 0 /* this */
            aload 1 /* queue */
            invokedynamic handle(Ljava/lang/String;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$32(Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Ljava/lang/Long; (6)
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Long;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
            areturn
        end local 1 // java.lang.String queue
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     1  queue  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Long;>;
    MethodParameters:
       Name  Flags
      queue  

  public void start(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // io.vertx.core.Handler resultHandler
         0: .line 649
            aload 0 /* this */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.start:()Lio/vertx/core/Future;
            astore 2 /* fut */
        start local 2 // io.vertx.core.Future fut
         1: .line 650
            aload 1 /* resultHandler */
            ifnull 3
         2: .line 651
            aload 2 /* fut */
            aload 1 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 653
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 2 // io.vertx.core.Future fut
        end local 1 // io.vertx.core.Handler resultHandler
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     2            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> start();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
         0: .line 657
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Starting rabbitmq client"
            invokeinterface io.vertx.core.impl.logging.Logger.info:(Ljava/lang/Object;)V
         1: .line 658
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.vertx:Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.getOrCreateContext:()Lio/vertx/core/Context;
            checkcast io.vertx.core.impl.ContextInternal
            iconst_0
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.start:(Lio/vertx/core/impl/ContextInternal;I)Lio/vertx/core/Future;
            areturn
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
    Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;

  private io.vertx.core.Future<java.lang.Void> start(io.vertx.core.impl.ContextInternal, int);
    descriptor: (Lio/vertx/core/impl/ContextInternal;I)Lio/vertx/core/Future;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // io.vertx.core.impl.ContextInternal ctx
        start local 2 // int attempts
         0: .line 662
            aload 1 /* ctx */
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$33(Lio/vertx/core/Promise;)V (7)
                  (Lio/vertx/core/Promise;)V
            invokeinterface io.vertx.core.impl.ContextInternal.executeBlocking:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
         1: .line 669
            aload 0 /* this */
            aload 1 /* ctx */
            iload 2 /* attempts */
            invokedynamic apply(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;Lio/vertx/core/impl/ContextInternal;I)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;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$34(Lio/vertx/core/impl/ContextInternal;ILjava/lang/Throwable;)Lio/vertx/core/Future; (7)
                  (Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Future.recover:(Ljava/util/function/Function;)Lio/vertx/core/Future;
         2: .line 662
            areturn
        end local 2 // int attempts
        end local 1 // io.vertx.core.impl.ContextInternal ctx
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    3     1       ctx  Lio/vertx/core/impl/ContextInternal;
            0    3     2  attempts  I
    Signature: (Lio/vertx/core/impl/ContextInternal;I)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
          Name  Flags
      ctx       
      attempts  

  public void stop(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // io.vertx.core.Handler resultHandler
         0: .line 691
            aload 0 /* this */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.stop:()Lio/vertx/core/Future;
            astore 2 /* fut */
        start local 2 // io.vertx.core.Future fut
         1: .line 692
            aload 1 /* resultHandler */
            ifnull 3
         2: .line 693
            aload 2 /* fut */
            aload 1 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 695
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 2 // io.vertx.core.Future fut
        end local 1 // io.vertx.core.Handler resultHandler
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     2            fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
               Name  Flags
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> stop();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
         0: .line 699
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Stopping rabbitmq client"
            invokeinterface io.vertx.core.impl.logging.Logger.info:(Ljava/lang/Object;)V
         1: .line 700
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.vertx:Lio/vertx/core/Vertx;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$36(Lio/vertx/core/Promise;)V (7)
                  (Lio/vertx/core/Promise;)V
            invokeinterface io.vertx.core.Vertx.executeBlocking:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            areturn
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
    Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;

  private <T> io.vertx.core.Future<T> forChannel(io.vertx.rabbitmq.impl.RabbitMQClientImpl$ChannelHandler<T>);
    descriptor: (Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // io.vertx.rabbitmq.impl.RabbitMQClientImpl$ChannelHandler channelHandler
         0: .line 711
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.vertx:Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.getOrCreateContext:()Lio/vertx/core/Context;
            checkcast io.vertx.core.impl.ContextInternal
            astore 2 /* ctx */
        start local 2 // io.vertx.core.impl.ContextInternal ctx
         1: .line 712
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connection:Lcom/rabbitmq/client/Connection;
            ifnull 2
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channel:Lcom/rabbitmq/client/Channel;
            ifnonnull 3
         2: .line 713
      StackMap locals: io.vertx.core.impl.ContextInternal
      StackMap stack:
            aload 2 /* ctx */
            ldc "Not connected"
            invokeinterface io.vertx.core.impl.ContextInternal.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            areturn
         3: .line 715
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channel:Lcom/rabbitmq/client/Channel;
            invokeinterface com.rabbitmq.client.Channel.isOpen:()Z
            ifne 13
         4: .line 720
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "channel is close, try create Channel"
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
         5: .line 722
            aload 0 /* this */
            dup
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channelInstance:J
            lconst_1
            ladd
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channelInstance:J
         6: .line 723
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connection:Lcom/rabbitmq/client/Connection;
            invokeinterface com.rabbitmq.client.Connection.createChannel:()Lcom/rabbitmq/client/Channel;
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channel:Lcom/rabbitmq/client/Channel;
         7: .line 725
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channelConfirms:Z
            ifeq 13
         8: .line 726
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channel:Lcom/rabbitmq/client/Channel;
            invokeinterface com.rabbitmq.client.Channel.confirmSelect:()Lcom/rabbitmq/client/AMQP$Confirm$SelectOk;
            pop
         9: .line 727
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
        10: astore 3 /* e */
        start local 3 // java.io.IOException e
        11: .line 728
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "create channel error"
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
        12: .line 729
            aload 2 /* ctx */
            aload 3 /* e */
            invokeinterface io.vertx.core.impl.ContextInternal.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            areturn
        end local 3 // java.io.IOException e
        13: .line 732
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.vertx:Lio/vertx/core/Vertx;
            aload 0 /* this */
            aload 1 /* channelHandler */
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$37(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;Lio/vertx/core/Promise;)V (7)
                  (Lio/vertx/core/Promise;)V
            invokeinterface io.vertx.core.Vertx.executeBlocking:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.impl.ContextInternal ctx
        end local 1 // io.vertx.rabbitmq.impl.RabbitMQClientImpl$ChannelHandler channelHandler
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0            this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0   14     1  channelHandler  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler<TT;>;
            1   14     2             ctx  Lio/vertx/core/impl/ContextInternal;
           11   13     3               e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     9      10  Class java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler<TT;>;)Lio/vertx/core/Future<TT;>;
    MethodParameters:
                Name  Flags
      channelHandler  

  private io.vertx.core.Future<java.lang.Void> connect();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
         0: .line 743
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Connecting to rabbitmq..."
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
         1: .line 744
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.vertx:Lio/vertx/core/Vertx;
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.config:Lio/vertx/rabbitmq/RabbitMQOptions;
            invokestatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.newConnection:(Lio/vertx/core/Vertx;Lio/vertx/rabbitmq/RabbitMQOptions;)Lcom/rabbitmq/client/Connection;
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connection:Lcom/rabbitmq/client/Connection;
         2: .line 745
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connection:Lcom/rabbitmq/client/Connection;
            aload 0 /* this */
            invokeinterface com.rabbitmq.client.Connection.addShutdownListener:(Lcom/rabbitmq/client/ShutdownListener;)V
         3: .line 746
            aload 0 /* this */
            dup
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channelInstance:J
            lconst_1
            ladd
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channelInstance:J
         4: .line 747
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connection:Lcom/rabbitmq/client/Connection;
            invokeinterface com.rabbitmq.client.Connection.createChannel:()Lcom/rabbitmq/client/Channel;
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channel:Lcom/rabbitmq/client/Channel;
         5: .line 748
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            astore 1 /* promise */
        start local 1 // io.vertx.core.Promise promise
         6: .line 749
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connectionEstablishedCallbacks:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 9
         7: .line 750
            aload 1 /* promise */
            invokeinterface io.vertx.core.Promise.complete:()V
         8: .line 751
            goto 11
         9: .line 752
      StackMap locals: io.vertx.core.Promise
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connectionEstablishedCallbacks:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
        10: .line 753
            aload 0 /* this */
            invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
            aload 2 /* iter */
            aload 1 /* promise */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.connectCallbackHandler:(Lio/vertx/core/AsyncResult;Ljava/util/Iterator;Lio/vertx/core/Promise;)V
        end local 2 // java.util.Iterator iter
        11: .line 755
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Connected to rabbitmq !"
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
        12: .line 756
            aload 1 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.Promise promise
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            6   13     1  promise  Lio/vertx/core/Promise;
           10   11     2     iter  Ljava/util/Iterator<Lio/vertx/core/Handler<Lio/vertx/core/Promise<Ljava/lang/Void;>;>;>;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.TimeoutException
    Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;

  private void connectCallbackHandler(io.vertx.core.AsyncResult<java.lang.Void>, java.util.Iterator<io.vertx.core.Handler<io.vertx.core.Promise<java.lang.Void>>>, io.vertx.core.Promise<java.lang.Void>);
    descriptor: (Lio/vertx/core/AsyncResult;Ljava/util/Iterator;Lio/vertx/core/Promise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // io.vertx.core.AsyncResult prevResult
        start local 2 // java.util.Iterator iter
        start local 3 // io.vertx.core.Promise connectPromise
         0: .line 761
            aload 1 /* prevResult */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 762
            aload 3 /* connectPromise */
            aload 1 /* prevResult */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
         2: .line 763
            goto 14
         3: .line 764
      StackMap locals:
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 9
         4: .line 765
            aload 2 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.core.Handler
            astore 4 /* next */
        start local 4 // io.vertx.core.Handler next
         5: .line 766
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            astore 5 /* callbackPromise */
        start local 5 // io.vertx.core.Promise callbackPromise
         6: .line 767
            aload 4 /* next */
            aload 5 /* callbackPromise */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         7: .line 768
            aload 5 /* callbackPromise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            aload 0 /* this */
            aload 2 /* iter */
            aload 3 /* connectPromise */
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;Ljava/util/Iterator;Lio/vertx/core/Promise;)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$38(Ljava/util/Iterator;Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
        end local 5 // io.vertx.core.Promise callbackPromise
        end local 4 // io.vertx.core.Handler next
         8: .line 769
            goto 14
         9: .line 770
      StackMap locals:
      StackMap stack:
            aload 3 /* connectPromise */
            invokeinterface io.vertx.core.Promise.complete:()V
        10: .line 773
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 4 /* ex */
        start local 4 // java.lang.Throwable ex
        12: .line 774
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Exception whilst running connection stablished callback: "
            aload 4 /* ex */
            invokeinterface io.vertx.core.impl.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        13: .line 775
            aload 3 /* connectPromise */
            aload 4 /* ex */
            invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
        end local 4 // java.lang.Throwable ex
        14: .line 777
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.vertx.core.Promise connectPromise
        end local 2 // java.util.Iterator iter
        end local 1 // io.vertx.core.AsyncResult prevResult
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0   15     1       prevResult  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;
            0   15     2             iter  Ljava/util/Iterator<Lio/vertx/core/Handler<Lio/vertx/core/Promise<Ljava/lang/Void;>;>;>;
            0   15     3   connectPromise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
            5    8     4             next  Lio/vertx/core/Handler<Lio/vertx/core/Promise<Ljava/lang/Void;>;>;
            6    8     5  callbackPromise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
           12   14     4               ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0    10      11  Class java.lang.Throwable
    Signature: (Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;Ljava/util/Iterator<Lio/vertx/core/Handler<Lio/vertx/core/Promise<Ljava/lang/Void;>;>;>;Lio/vertx/core/Promise<Ljava/lang/Void;>;)V
    MethodParameters:
                Name  Flags
      prevResult      
      iter            
      connectPromise  

  private void disconnect();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
         0: .line 781
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Disconnecting from rabbitmq..."
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
         1: .line 783
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connection:Lcom/rabbitmq/client/Connection;
            ifnull 3
         2: .line 784
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connection:Lcom/rabbitmq/client/Connection;
            invokeinterface com.rabbitmq.client.Connection.close:()V
         3: .line 786
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Disconnected from rabbitmq !"
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
         4: .line 787
            goto 13
      StackMap locals:
      StackMap stack: com.rabbitmq.client.AlreadyClosedException
         5: pop
         6: .line 788
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Already disconnected from rabbitmq !"
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
         7: .line 790
            aload 0 /* this */
            aconst_null
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connection:Lcom/rabbitmq/client/Connection;
         8: .line 791
            aload 0 /* this */
            aconst_null
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channel:Lcom/rabbitmq/client/Channel;
            goto 15
         9: .line 789
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
        10: .line 790
            aload 0 /* this */
            aconst_null
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connection:Lcom/rabbitmq/client/Connection;
        11: .line 791
            aload 0 /* this */
            aconst_null
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channel:Lcom/rabbitmq/client/Channel;
        12: .line 792
            aload 1
            athrow
        13: .line 790
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.connection:Lcom/rabbitmq/client/Connection;
        14: .line 791
            aload 0 /* this */
            aconst_null
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channel:Lcom/rabbitmq/client/Channel;
        15: .line 793
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
      Exception table:
        from    to  target  type
           0     4       5  Class com.rabbitmq.client.AlreadyClosedException
           0     7       9  any
    Exceptions:
      throws java.io.IOException

  public void shutdownCompleted(com.rabbitmq.client.ShutdownSignalException);
    descriptor: (Lcom/rabbitmq/client/ShutdownSignalException;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // com.rabbitmq.client.ShutdownSignalException cause
         0: .line 797
            aload 1 /* cause */
            invokevirtual com.rabbitmq.client.ShutdownSignalException.isInitiatedByApplication:()Z
            ifeq 2
         1: .line 798
            return
         2: .line 800
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "RabbitMQ connection shutdown! The client will attempt to reconnect automatically"
            aload 1 /* cause */
            invokeinterface io.vertx.core.impl.logging.Logger.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         3: .line 801
            return
        end local 1 // com.rabbitmq.client.ShutdownSignalException cause
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    4     1  cause  Lcom/rabbitmq/client/ShutdownSignalException;
    MethodParameters:
       Name  Flags
      cause  

  private static java.lang.Void lambda$0(long, boolean, com.rabbitmq.client.Channel);
    descriptor: (JZLcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=3
        start local 3 // com.rabbitmq.client.Channel channel
         0: .line 152
            aload 3 /* channel */
            lload 0
            iload 2
            invokeinterface com.rabbitmq.client.Channel.basicAck:(JZ)V
         1: .line 153
            aconst_null
            areturn
        end local 3 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     3  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$1(long, boolean, boolean, com.rabbitmq.client.Channel);
    descriptor: (JZZLcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=4
        start local 4 // com.rabbitmq.client.Channel channel
         0: .line 168
            aload 4 /* channel */
            lload 0
            iload 2
            iload 3
            invokeinterface com.rabbitmq.client.Channel.basicNack:(JZZ)V
         1: .line 169
            aconst_null
            areturn
        end local 4 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     4  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private void lambda$2(io.vertx.rabbitmq.impl.QueueConsumerHandler, io.vertx.rabbitmq.QueueOptions, int, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;ILio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 4 // io.vertx.core.AsyncResult ar
         0: .line 175
            aload 1
            invokevirtual io.vertx.rabbitmq.impl.QueueConsumerHandler.queue:()Lio/vertx/rabbitmq/RabbitMQConsumer;
            invokeinterface io.vertx.rabbitmq.RabbitMQConsumer.isCancelled:()Z
            ifne 11
         1: .line 176
            aload 4 /* ar */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 10
         2: .line 177
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.retries:I
            ifne 5
         3: .line 178
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Retries disabled. Will not attempt to restart"
            invokeinterface io.vertx.core.impl.logging.Logger.error:(Ljava/lang/Object;)V
         4: .line 179
            goto 11
      StackMap locals:
      StackMap stack:
         5: iload 3
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.retries:I
            if_icmplt 8
         6: .line 180
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Max number of consumer restart attempts ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.retries:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") reached. Will not attempt to restart again"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.impl.logging.Logger.error:(Ljava/lang/Object;)V
         7: .line 181
            goto 11
         8: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1
            aload 2
            iload 3
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;Lio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;I)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$3(Lio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;ILio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.start:(Lio/vertx/core/Handler;)V
         9: .line 206
            goto 11
        10: .line 207
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Failed to stop client, will not attempt to restart: "
            aload 4 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.core.impl.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        11: .line 210
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.vertx.core.AsyncResult ar
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0   12     4    ar  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;

  private io.vertx.rabbitmq.impl.QueueConsumerHandler lambda$8(io.vertx.rabbitmq.QueueOptions, java.lang.String, com.rabbitmq.client.Channel);
    descriptor: (Lio/vertx/rabbitmq/QueueOptions;Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Lio/vertx/rabbitmq/impl/QueueConsumerHandler;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 3 // com.rabbitmq.client.Channel channel
         0: .line 224
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Created new QueueConsumer"
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
         1: .line 225
            new io.vertx.rabbitmq.impl.QueueConsumerHandler
            dup
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.vertx:Lio/vertx/core/Vertx;
            aload 3 /* channel */
            aload 1
            aload 2
            invokespecial io.vertx.rabbitmq.impl.QueueConsumerHandler.<init>:(Lio/vertx/core/Vertx;Lcom/rabbitmq/client/Channel;Lio/vertx/rabbitmq/QueueOptions;Ljava/lang/String;)V
            astore 4 /* handler */
        start local 4 // io.vertx.rabbitmq.impl.QueueConsumerHandler handler
         2: .line 226
            aload 4 /* handler */
            aload 0 /* this */
            aload 4 /* handler */
            aload 1
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;Lio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$9(Lio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;Lcom/rabbitmq/client/ShutdownSignalException;)V (7)
                  (Lcom/rabbitmq/client/ShutdownSignalException;)V
            invokevirtual io.vertx.rabbitmq.impl.QueueConsumerHandler.setShutdownHandler:(Lio/vertx/core/Handler;)V
         3: .line 230
            aload 3 /* channel */
            aload 2
            aload 1
            invokevirtual io.vertx.rabbitmq.QueueOptions.isAutoAck:()Z
            aload 4 /* handler */
            invokeinterface com.rabbitmq.client.Channel.basicConsume:(Ljava/lang/String;ZLcom/rabbitmq/client/Consumer;)Ljava/lang/String;
            pop
         4: .line 231
            goto 8
      StackMap locals: io.vertx.rabbitmq.impl.RabbitMQClientImpl io.vertx.rabbitmq.QueueOptions java.lang.String com.rabbitmq.client.Channel io.vertx.rabbitmq.impl.QueueConsumerHandler
      StackMap stack: java.lang.Throwable
         5: astore 5 /* ex */
        start local 5 // java.lang.Throwable ex
         6: .line 232
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Failed to consume: "
            aload 5 /* ex */
            invokeinterface io.vertx.core.impl.logging.Logger.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         7: .line 233
            aload 0 /* this */
            iconst_0
            aload 4 /* handler */
            aload 1
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.restartConsumer:(ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;)V
        end local 5 // java.lang.Throwable ex
         8: .line 235
      StackMap locals:
      StackMap stack:
            aload 4 /* handler */
            areturn
        end local 4 // io.vertx.rabbitmq.impl.QueueConsumerHandler handler
        end local 3 // com.rabbitmq.client.Channel channel
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    9     3  channel  Lcom/rabbitmq/client/Channel;
            2    9     4  handler  Lio/vertx/rabbitmq/impl/QueueConsumerHandler;
            6    8     5       ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Exception

  private static io.vertx.rabbitmq.RabbitMQConsumer lambda$10(io.vertx.rabbitmq.impl.QueueConsumerHandler);
    descriptor: (Lio/vertx/rabbitmq/impl/QueueConsumerHandler;)Lio/vertx/rabbitmq/RabbitMQConsumer;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // io.vertx.rabbitmq.impl.QueueConsumerHandler res
         0: .line 237
            aload 0 /* res */
            invokevirtual io.vertx.rabbitmq.impl.QueueConsumerHandler.queue:()Lio/vertx/rabbitmq/RabbitMQConsumer;
            astore 1 /* q */
        start local 1 // io.vertx.rabbitmq.RabbitMQConsumer q
         1: .line 240
            aload 1 /* q */
            invokeinterface io.vertx.rabbitmq.RabbitMQConsumer.resume:()Lio/vertx/rabbitmq/RabbitMQConsumer;
            pop
         2: .line 242
            aload 1 /* q */
            areturn
        end local 1 // io.vertx.rabbitmq.RabbitMQConsumer q
        end local 0 // io.vertx.rabbitmq.impl.QueueConsumerHandler res
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   res  Lio/vertx/rabbitmq/impl/QueueConsumerHandler;
            1    3     1     q  Lio/vertx/rabbitmq/RabbitMQConsumer;

  private static io.vertx.rabbitmq.RabbitMQMessage lambda$11(java.lang.String, boolean, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;ZLcom/rabbitmq/client/Channel;)Lio/vertx/rabbitmq/RabbitMQMessage;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=4, args_size=3
        start local 2 // com.rabbitmq.client.Channel channel
         0: .line 257
            aload 2 /* channel */
            aload 0
            iload 1
            invokeinterface com.rabbitmq.client.Channel.basicGet:(Ljava/lang/String;Z)Lcom/rabbitmq/client/GetResponse;
            astore 3 /* response */
        start local 3 // com.rabbitmq.client.GetResponse response
         1: .line 258
            aload 3 /* response */
            ifnonnull 3
         2: .line 259
            aconst_null
            areturn
         3: .line 261
      StackMap locals: com.rabbitmq.client.GetResponse
      StackMap stack:
            new io.vertx.rabbitmq.impl.RabbitMQMessageImpl
            dup
            aload 3 /* response */
            invokevirtual com.rabbitmq.client.GetResponse.getBody:()[B
            aconst_null
            aload 3 /* response */
            invokevirtual com.rabbitmq.client.GetResponse.getEnvelope:()Lcom/rabbitmq/client/Envelope;
            aload 3 /* response */
            invokevirtual com.rabbitmq.client.GetResponse.getProps:()Lcom/rabbitmq/client/AMQP$BasicProperties;
            aload 3 /* response */
            invokevirtual com.rabbitmq.client.GetResponse.getMessageCount:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial io.vertx.rabbitmq.impl.RabbitMQMessageImpl.<init>:([BLjava/lang/String;Lcom/rabbitmq/client/Envelope;Lcom/rabbitmq/client/AMQP$BasicProperties;Ljava/lang/Integer;)V
            areturn
        end local 3 // com.rabbitmq.client.GetResponse response
        end local 2 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     2   channel  Lcom/rabbitmq/client/Channel;
            1    4     3  response  Lcom/rabbitmq/client/GetResponse;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$12(io.vertx.core.Handler, java.lang.String, java.lang.String, com.rabbitmq.client.BasicProperties, io.vertx.core.buffer.Buffer, com.rabbitmq.client.Channel);
    descriptor: (Lio/vertx/core/Handler;Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/BasicProperties;Lio/vertx/core/buffer/Buffer;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=8, args_size=6
        start local 5 // com.rabbitmq.client.Channel channel
         0: .line 297
            aload 0
            ifnull 3
         1: .line 298
            aload 5 /* channel */
            invokeinterface com.rabbitmq.client.Channel.getNextPublishSeqNo:()J
            lstore 6 /* deliveryTag */
        start local 6 // long deliveryTag
         2: .line 299
            aload 0
            lload 6 /* deliveryTag */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 6 // long deliveryTag
         3: .line 301
      StackMap locals:
      StackMap stack:
            aload 5 /* channel */
            aload 1
            aload 2
            aload 3
            checkcast com.rabbitmq.client.AMQP$BasicProperties
            aload 4
            invokeinterface io.vertx.core.buffer.Buffer.getBytes:()[B
            invokeinterface com.rabbitmq.client.Channel.basicPublish:(Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/AMQP$BasicProperties;[B)V
         4: .line 302
            aconst_null
            areturn
        end local 5 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     5      channel  Lcom/rabbitmq/client/Channel;
            2    3     6  deliveryTag  J
    Exceptions:
      throws java.lang.Exception

  private io.vertx.core.streams.ReadStream lambda$13(int, com.rabbitmq.client.Channel);
    descriptor: (ILcom/rabbitmq/client/Channel;)Lio/vertx/core/streams/ReadStream;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 2 // com.rabbitmq.client.Channel channel
         0: .line 318
            new io.vertx.rabbitmq.impl.ChannelConfirmHandler
            dup
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.vertx:Lio/vertx/core/Vertx;
            aload 0 /* this */
            iload 1
            invokespecial io.vertx.rabbitmq.impl.ChannelConfirmHandler.<init>:(Lio/vertx/core/Vertx;Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;I)V
            astore 3 /* handler */
        start local 3 // io.vertx.rabbitmq.impl.ChannelConfirmHandler handler
         1: .line 319
            aload 2 /* channel */
            aload 3 /* handler */
            invokeinterface com.rabbitmq.client.Channel.addConfirmListener:(Lcom/rabbitmq/client/ConfirmListener;)V
         2: .line 320
            aload 2 /* channel */
            invokeinterface com.rabbitmq.client.Channel.confirmSelect:()Lcom/rabbitmq/client/AMQP$Confirm$SelectOk;
            pop
         3: .line 322
            aload 0 /* this */
            iconst_1
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channelConfirms:Z
         4: .line 324
            aload 3 /* handler */
            invokevirtual io.vertx.rabbitmq.impl.ChannelConfirmHandler.getListener:()Lio/vertx/rabbitmq/impl/RabbitMQConfirmListenerImpl;
            areturn
        end local 3 // io.vertx.rabbitmq.impl.ChannelConfirmHandler handler
        end local 2 // com.rabbitmq.client.Channel channel
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    5     2  channel  Lcom/rabbitmq/client/Channel;
            1    5     3  handler  Lio/vertx/rabbitmq/impl/ChannelConfirmHandler;
    Exceptions:
      throws java.lang.Exception

  private java.lang.Void lambda$14(com.rabbitmq.client.Channel);
    descriptor: (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // com.rabbitmq.client.Channel channel
         0: .line 339
            aload 1 /* channel */
            invokeinterface com.rabbitmq.client.Channel.confirmSelect:()Lcom/rabbitmq/client/AMQP$Confirm$SelectOk;
            pop
         1: .line 340
            aload 0 /* this */
            iconst_1
            putfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channelConfirms:Z
         2: .line 341
            aconst_null
            areturn
        end local 1 // com.rabbitmq.client.Channel channel
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    3     1  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$15(com.rabbitmq.client.Channel);
    descriptor: (Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.rabbitmq.client.Channel channel
         0: .line 356
            aload 0 /* channel */
            invokeinterface com.rabbitmq.client.Channel.waitForConfirmsOrDie:()V
         1: .line 357
            aconst_null
            areturn
        end local 0 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$16(long, com.rabbitmq.client.Channel);
    descriptor: (JLcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 2 // com.rabbitmq.client.Channel channel
         0: .line 372
            aload 2 /* channel */
            lload 0
            invokeinterface com.rabbitmq.client.Channel.waitForConfirmsOrDie:(J)V
         1: .line 373
            aconst_null
            areturn
        end local 2 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     2  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$17(int, int, boolean, com.rabbitmq.client.Channel);
    descriptor: (IIZLcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 3 // com.rabbitmq.client.Channel channel
         0: .line 388
            aload 3 /* channel */
            iload 0
            iload 1
            iload 2
            invokeinterface com.rabbitmq.client.Channel.basicQos:(IIZ)V
         1: .line 389
            aconst_null
            areturn
        end local 3 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     3  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$18(java.lang.String, java.lang.String, boolean, boolean, io.vertx.core.json.JsonObject, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZZLio/vertx/core/json/JsonObject;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=8, locals=6, args_size=6
        start local 5 // com.rabbitmq.client.Channel channel
         0: .line 417
            aload 5 /* channel */
            aload 0
            aload 1
            iload 2
            iload 3
            new java.util.LinkedHashMap
            dup
            aload 4
            invokevirtual io.vertx.core.json.JsonObject.getMap:()Ljava/util/Map;
            invokespecial java.util.LinkedHashMap.<init>:(Ljava/util/Map;)V
            invokeinterface com.rabbitmq.client.Channel.exchangeDeclare:(Ljava/lang/String;Ljava/lang/String;ZZLjava/util/Map;)Lcom/rabbitmq/client/AMQP$Exchange$DeclareOk;
            pop
         1: .line 418
            aconst_null
            areturn
        end local 5 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     5  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$19(java.lang.String, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.rabbitmq.client.Channel channel
         0: .line 433
            aload 1 /* channel */
            aload 0
            invokeinterface com.rabbitmq.client.Channel.exchangeDelete:(Ljava/lang/String;)Lcom/rabbitmq/client/AMQP$Exchange$DeleteOk;
            pop
         1: .line 434
            aconst_null
            areturn
        end local 1 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     1  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$20(java.lang.String, java.lang.String, java.lang.String, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 3 // com.rabbitmq.client.Channel channel
         0: .line 449
            aload 3 /* channel */
            aload 0
            aload 1
            aload 2
            invokeinterface com.rabbitmq.client.Channel.exchangeBind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/rabbitmq/client/AMQP$Exchange$BindOk;
            pop
         1: .line 450
            aconst_null
            areturn
        end local 3 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     3  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$21(java.lang.String, java.lang.String, java.lang.String, java.util.Map, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 4 // com.rabbitmq.client.Channel channel
         0: .line 465
            aload 4 /* channel */
            aload 0
            aload 1
            aload 2
            aload 3
            invokeinterface com.rabbitmq.client.Channel.exchangeBind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lcom/rabbitmq/client/AMQP$Exchange$BindOk;
            pop
         1: .line 466
            aconst_null
            areturn
        end local 4 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     4  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$22(java.lang.String, java.lang.String, java.lang.String, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 3 // com.rabbitmq.client.Channel channel
         0: .line 481
            aload 3 /* channel */
            aload 0
            aload 1
            aload 2
            invokeinterface com.rabbitmq.client.Channel.exchangeUnbind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/rabbitmq/client/AMQP$Exchange$UnbindOk;
            pop
         1: .line 482
            aconst_null
            areturn
        end local 3 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     3  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$23(java.lang.String, java.lang.String, java.lang.String, java.util.Map, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 4 // com.rabbitmq.client.Channel channel
         0: .line 497
            aload 4 /* channel */
            aload 0
            aload 1
            aload 2
            aload 3
            invokeinterface com.rabbitmq.client.Channel.exchangeUnbind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lcom/rabbitmq/client/AMQP$Exchange$UnbindOk;
            pop
         1: .line 498
            aconst_null
            areturn
        end local 4 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     4  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static io.vertx.core.json.JsonObject lambda$24(com.rabbitmq.client.Channel);
    descriptor: (Lcom/rabbitmq/client/Channel;)Lio/vertx/core/json/JsonObject;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.rabbitmq.client.Channel channel
         0: .line 513
            aload 0 /* channel */
            invokeinterface com.rabbitmq.client.Channel.queueDeclare:()Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;
            astore 1 /* result */
        start local 1 // com.rabbitmq.client.AMQP$Queue$DeclareOk result
         1: .line 514
            aload 1 /* result */
            invokestatic io.vertx.rabbitmq.impl.Utils.toJson:(Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;)Lio/vertx/core/json/JsonObject;
            areturn
        end local 1 // com.rabbitmq.client.AMQP$Queue$DeclareOk result
        end local 0 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  channel  Lcom/rabbitmq/client/Channel;
            1    2     1   result  Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;
    Exceptions:
      throws java.lang.Exception

  private static com.rabbitmq.client.AMQP$Queue$DeclareOk lambda$25(java.lang.String, boolean, boolean, boolean, io.vertx.core.json.JsonObject, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;ZZZLio/vertx/core/json/JsonObject;Lcom/rabbitmq/client/Channel;)Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=8, locals=6, args_size=6
        start local 5 // com.rabbitmq.client.Channel channel
         0: .line 541
            aload 5 /* channel */
            aload 0
            iload 1
            iload 2
            iload 3
            new java.util.LinkedHashMap
            dup
            aload 4
            invokevirtual io.vertx.core.json.JsonObject.getMap:()Ljava/util/Map;
            invokespecial java.util.LinkedHashMap.<init>:(Ljava/util/Map;)V
            invokeinterface com.rabbitmq.client.Channel.queueDeclare:(Ljava/lang/String;ZZZLjava/util/Map;)Lcom/rabbitmq/client/AMQP$Queue$DeclareOk;
            areturn
        end local 5 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     5  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static com.rabbitmq.client.AMQP$Queue$DeleteOk lambda$26(java.lang.String, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.rabbitmq.client.Channel channel
         0: .line 554
            aload 1 /* channel */
            aload 0
            invokeinterface com.rabbitmq.client.Channel.queueDelete:(Ljava/lang/String;)Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;
            areturn
        end local 1 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     1  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static com.rabbitmq.client.AMQP$Queue$DeleteOk lambda$27(java.lang.String, boolean, boolean, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;ZZLcom/rabbitmq/client/Channel;)Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 3 // com.rabbitmq.client.Channel channel
         0: .line 567
            aload 3 /* channel */
            aload 0
            iload 1
            iload 2
            invokeinterface com.rabbitmq.client.Channel.queueDelete:(Ljava/lang/String;ZZ)Lcom/rabbitmq/client/AMQP$Queue$DeleteOk;
            areturn
        end local 3 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     3  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$28(java.lang.String, java.lang.String, java.lang.String, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 3 // com.rabbitmq.client.Channel channel
         0: .line 581
            aload 3 /* channel */
            aload 0
            aload 1
            aload 2
            invokeinterface com.rabbitmq.client.Channel.queueBind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/rabbitmq/client/AMQP$Queue$BindOk;
            pop
         1: .line 582
            aconst_null
            areturn
        end local 3 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     3  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$29(java.lang.String, java.lang.String, java.lang.String, java.util.Map, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 4 // com.rabbitmq.client.Channel channel
         0: .line 597
            aload 4 /* channel */
            aload 0
            aload 1
            aload 2
            aload 3
            invokeinterface com.rabbitmq.client.Channel.queueBind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lcom/rabbitmq/client/AMQP$Queue$BindOk;
            pop
         1: .line 598
            aconst_null
            areturn
        end local 4 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     4  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$30(java.lang.String, java.lang.String, java.lang.String, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 3 // com.rabbitmq.client.Channel channel
         0: .line 613
            aload 3 /* channel */
            aload 0
            aload 1
            aload 2
            invokeinterface com.rabbitmq.client.Channel.queueUnbind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/rabbitmq/client/AMQP$Queue$UnbindOk;
            pop
         1: .line 614
            aconst_null
            areturn
        end local 3 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     3  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$31(java.lang.String, java.lang.String, java.lang.String, java.util.Map, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/rabbitmq/client/Channel;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 4 // com.rabbitmq.client.Channel channel
         0: .line 629
            aload 4 /* channel */
            aload 0
            aload 1
            aload 2
            aload 3
            invokeinterface com.rabbitmq.client.Channel.queueUnbind:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lcom/rabbitmq/client/AMQP$Queue$UnbindOk;
            pop
         1: .line 630
            aconst_null
            areturn
        end local 4 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     4  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Long lambda$32(java.lang.String, com.rabbitmq.client.Channel);
    descriptor: (Ljava/lang/String;Lcom/rabbitmq/client/Channel;)Ljava/lang/Long;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.rabbitmq.client.Channel channel
         0: .line 644
            aload 1 /* channel */
            aload 0
            invokeinterface com.rabbitmq.client.Channel.messageCount:(Ljava/lang/String;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 1 // com.rabbitmq.client.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     1  channel  Lcom/rabbitmq/client/Channel;
    Exceptions:
      throws java.lang.Exception

  private void lambda$33(io.vertx.core.Promise);
    descriptor: (Lio/vertx/core/Promise;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // io.vertx.core.Promise promise
         0: .line 664
            aload 0 /* this */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.connect:()Lio/vertx/core/Future;
            aload 1 /* promise */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         1: .line 665
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 2 /* e */
        start local 2 // java.lang.Exception e
         3: .line 666
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Could not connect to rabbitmq"
            aload 2 /* e */
            invokeinterface io.vertx.core.impl.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         4: .line 667
            aload 1 /* promise */
            aload 2 /* e */
            invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
        end local 2 // java.lang.Exception e
         5: .line 669
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.Promise promise
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    6     1  promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
            3    5     2        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
           0     1       2  Class java.util.concurrent.TimeoutException

  private io.vertx.core.Future lambda$34(io.vertx.core.impl.ContextInternal, int, java.lang.Throwable);
    descriptor: (Lio/vertx/core/impl/ContextInternal;ILjava/lang/Throwable;)Lio/vertx/core/Future;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 3 // java.lang.Throwable err
         0: .line 670
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.retries:I
            ifne 3
         1: .line 671
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Retries disabled. Will not attempt to restart"
            invokeinterface io.vertx.core.impl.logging.Logger.error:(Ljava/lang/Object;)V
         2: .line 672
            aload 1
            aload 3 /* err */
            invokeinterface io.vertx.core.impl.ContextInternal.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            areturn
         3: .line 673
      StackMap locals:
      StackMap stack:
            iload 2
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.retries:I
            if_icmplt 6
         4: .line 674
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Max number of connect attempts ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.retries:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") reached. Will not attempt to connect again"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.impl.logging.Logger.info:(Ljava/lang/Object;)V
         5: .line 675
            aload 1
            aload 3 /* err */
            invokeinterface io.vertx.core.impl.ContextInternal.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            areturn
         6: .line 677
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.config:Lio/vertx/rabbitmq/RabbitMQOptions;
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getReconnectInterval:()J
            lstore 4 /* delay */
        start local 4 // long delay
         7: .line 678
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Attempting to reconnect to rabbitmq..."
            invokeinterface io.vertx.core.impl.logging.Logger.info:(Ljava/lang/Object;)V
         8: .line 679
            aload 1
            invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 6 /* promise */
        start local 6 // io.vertx.core.Promise promise
         9: .line 680
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.vertx:Lio/vertx/core/Vertx;
            lload 4 /* delay */
            aload 0 /* this */
            iload 2
            aload 1
            aload 6 /* promise */
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;ILio/vertx/core/impl/ContextInternal;Lio/vertx/core/Promise;)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$35(ILio/vertx/core/impl/ContextInternal;Lio/vertx/core/Promise;Ljava/lang/Long;)V (7)
                  (Ljava/lang/Long;)V
            invokeinterface io.vertx.core.Vertx.setTimer:(JLio/vertx/core/Handler;)J
            pop2
        10: .line 684
            aload 6 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 6 // io.vertx.core.Promise promise
        end local 4 // long delay
        end local 3 // java.lang.Throwable err
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0   11     3      err  Ljava/lang/Throwable;
            7   11     4    delay  J
            9   11     6  promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;

  private void lambda$36(io.vertx.core.Promise);
    descriptor: (Lio/vertx/core/Promise;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 1 // io.vertx.core.Promise future
         0: .line 702
            aload 0 /* this */
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.disconnect:()V
         1: .line 703
            aload 1 /* future */
            invokeinterface io.vertx.core.Promise.complete:()V
         2: .line 704
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 2 /* e */
        start local 2 // java.io.IOException e
         4: .line 705
            aload 1 /* future */
            aload 2 /* e */
            invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
        end local 2 // java.io.IOException e
         5: .line 707
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.Promise future
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    6     1  future  Lio/vertx/core/Promise<Ljava/lang/Void;>;
            4    5     2       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.io.IOException

  private void lambda$37(io.vertx.rabbitmq.impl.RabbitMQClientImpl$ChannelHandler, io.vertx.core.Promise);
    descriptor: (Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;Lio/vertx/core/Promise;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 2 // io.vertx.core.Promise future
         0: .line 734
            aload 1
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.channel:Lcom/rabbitmq/client/Channel;
            invokeinterface io.vertx.rabbitmq.impl.RabbitMQClientImpl$ChannelHandler.handle:(Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
            astore 3 /* t */
        start local 3 // java.lang.Object t
         1: .line 735
            aload 2 /* future */
            aload 3 /* t */
            invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
        end local 3 // java.lang.Object t
         2: .line 736
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 3 /* t */
        start local 3 // java.lang.Throwable t
         4: .line 737
            aload 2 /* future */
            aload 3 /* t */
            invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable t
         5: .line 739
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.Promise future
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    6     2  future  Lio/vertx/core/Promise<TT;>;
            1    2     3       t  TT;
            4    5     3       t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Throwable

  private void lambda$38(java.util.Iterator, io.vertx.core.Promise, io.vertx.core.AsyncResult);
    descriptor: (Ljava/util/Iterator;Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 3 // io.vertx.core.AsyncResult result
         0: .line 768
            aload 0 /* this */
            aload 3 /* result */
            aload 1
            aload 2
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.connectCallbackHandler:(Lio/vertx/core/AsyncResult;Ljava/util/Iterator;Lio/vertx/core/Promise;)V
            return
        end local 3 // io.vertx.core.AsyncResult result
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    1     3  result  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;

  private void lambda$3(io.vertx.rabbitmq.impl.QueueConsumerHandler, io.vertx.rabbitmq.QueueOptions, int, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;ILio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=7, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 4 // io.vertx.core.AsyncResult arStart
         0: .line 183
            aload 4 /* arStart */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 4
         1: .line 184
            aload 0 /* this */
            aload 1
            aload 2
            invokedynamic handle(Lio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;)Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;
              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:
                  (Lcom/rabbitmq/client/Channel;)Ljava/lang/Object;
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$4(Lio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;Lcom/rabbitmq/client/Channel;)Lio/vertx/rabbitmq/RabbitMQConsumer; (6)
                  (Lcom/rabbitmq/client/Channel;)Lio/vertx/rabbitmq/RabbitMQConsumer;
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.forChannel:(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl$ChannelHandler;)Lio/vertx/core/Future;
         2: .line 188
            aload 0 /* this */
            iload 3
            aload 1
            aload 2
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$5(ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 197
            goto 7
         4: .line 198
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Failed to restart client: "
            aload 4 /* arStart */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.core.impl.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         5: .line 199
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.config:Lio/vertx/rabbitmq/RabbitMQOptions;
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getReconnectInterval:()J
            lstore 5 /* delay */
        start local 5 // long delay
         6: .line 200
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.vertx:Lio/vertx/core/Vertx;
            lload 5 /* delay */
            aload 0 /* this */
            iload 3
            aload 1
            aload 2
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$7(ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;Ljava/lang/Long;)V (7)
                  (Ljava/lang/Long;)V
            invokeinterface io.vertx.core.Vertx.setTimer:(JLio/vertx/core/Handler;)J
            pop2
        end local 5 // long delay
         7: .line 204
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.vertx.core.AsyncResult arStart
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    8     4  arStart  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;
            6    7     5    delay  J

  private void lambda$9(io.vertx.rabbitmq.impl.QueueConsumerHandler, io.vertx.rabbitmq.QueueOptions, com.rabbitmq.client.ShutdownSignalException);
    descriptor: (Lio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;Lcom/rabbitmq/client/ShutdownSignalException;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 3 // com.rabbitmq.client.ShutdownSignalException sig
         0: .line 227
            aload 0 /* this */
            iconst_0
            aload 1
            aload 2
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.restartConsumer:(ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;)V
         1: .line 228
            return
        end local 3 // com.rabbitmq.client.ShutdownSignalException sig
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    2     3   sig  Lcom/rabbitmq/client/ShutdownSignalException;

  private void lambda$35(int, io.vertx.core.impl.ContextInternal, io.vertx.core.Promise, java.lang.Long);
    descriptor: (ILio/vertx/core/impl/ContextInternal;Lio/vertx/core/Promise;Ljava/lang/Long;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 4 // java.lang.Long id
         0: .line 681
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Reconnect attempt # "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
         1: .line 682
            aload 0 /* this */
            aload 2
            iload 1
            iconst_1
            iadd
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.start:(Lio/vertx/core/impl/ContextInternal;I)Lio/vertx/core/Future;
            aload 3
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         2: .line 683
            return
        end local 4 // java.lang.Long id
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    3     4    id  Ljava/lang/Long;

  private static io.vertx.rabbitmq.RabbitMQConsumer lambda$4(io.vertx.rabbitmq.impl.QueueConsumerHandler, io.vertx.rabbitmq.QueueOptions, com.rabbitmq.client.Channel);
    descriptor: (Lio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;Lcom/rabbitmq/client/Channel;)Lio/vertx/rabbitmq/RabbitMQConsumer;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=3
        start local 2 // com.rabbitmq.client.Channel chan
         0: .line 185
            aload 0
            invokevirtual io.vertx.rabbitmq.impl.QueueConsumerHandler.queue:()Lio/vertx/rabbitmq/RabbitMQConsumer;
            astore 3 /* q */
        start local 3 // io.vertx.rabbitmq.RabbitMQConsumer q
         1: .line 186
            aload 2 /* chan */
            aload 3 /* q */
            invokeinterface io.vertx.rabbitmq.RabbitMQConsumer.queueName:()Ljava/lang/String;
            aload 1
            invokevirtual io.vertx.rabbitmq.QueueOptions.isAutoAck:()Z
            aload 0
            invokeinterface com.rabbitmq.client.Channel.basicConsume:(Ljava/lang/String;ZLcom/rabbitmq/client/Consumer;)Ljava/lang/String;
            pop
         2: .line 187
            aload 3 /* q */
            invokeinterface io.vertx.rabbitmq.RabbitMQConsumer.resume:()Lio/vertx/rabbitmq/RabbitMQConsumer;
            areturn
        end local 3 // io.vertx.rabbitmq.RabbitMQConsumer q
        end local 2 // com.rabbitmq.client.Channel chan
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     2  chan  Lcom/rabbitmq/client/Channel;
            1    3     3     q  Lio/vertx/rabbitmq/RabbitMQConsumer;
    Exceptions:
      throws java.lang.Exception

  private void lambda$5(int, io.vertx.rabbitmq.impl.QueueConsumerHandler, io.vertx.rabbitmq.QueueOptions, io.vertx.core.AsyncResult);
    descriptor: (ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=7, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 4 // io.vertx.core.AsyncResult arChan
         0: .line 189
            aload 4 /* arChan */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 4
         1: .line 190
            getstatic io.vertx.rabbitmq.impl.RabbitMQClientImpl.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Failed to restart consumer: "
            aload 4 /* arChan */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.core.impl.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         2: .line 191
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.config:Lio/vertx/rabbitmq/RabbitMQOptions;
            invokevirtual io.vertx.rabbitmq.RabbitMQOptions.getReconnectInterval:()J
            lstore 5 /* delay */
        start local 5 // long delay
         3: .line 192
            aload 0 /* this */
            getfield io.vertx.rabbitmq.impl.RabbitMQClientImpl.vertx:Lio/vertx/core/Vertx;
            lload 5 /* delay */
            aload 0 /* this */
            iload 1
            aload 2
            aload 3
            invokedynamic handle(Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/rabbitmq/impl/RabbitMQClientImpl.lambda$6(ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;Ljava/lang/Long;)V (7)
                  (Ljava/lang/Long;)V
            invokeinterface io.vertx.core.Vertx.setTimer:(JLio/vertx/core/Handler;)J
            pop2
        end local 5 // long delay
         4: .line 196
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.vertx.core.AsyncResult arChan
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    5     4  arChan  Lio/vertx/core/AsyncResult<Lio/vertx/rabbitmq/RabbitMQConsumer;>;
            3    4     5   delay  J

  private void lambda$7(int, io.vertx.rabbitmq.impl.QueueConsumerHandler, io.vertx.rabbitmq.QueueOptions, java.lang.Long);
    descriptor: (ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;Ljava/lang/Long;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 4 // java.lang.Long id
         0: .line 201
            aload 0 /* this */
            iload 1
            iconst_1
            iadd
            aload 2
            aload 3
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.restartConsumer:(ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;)V
         1: .line 202
            return
        end local 4 // java.lang.Long id
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    2     4    id  Ljava/lang/Long;

  private void lambda$6(int, io.vertx.rabbitmq.impl.QueueConsumerHandler, io.vertx.rabbitmq.QueueOptions, java.lang.Long);
    descriptor: (ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;Ljava/lang/Long;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
        start local 4 // java.lang.Long id
         0: .line 193
            aload 0 /* this */
            iload 1
            iconst_1
            iadd
            aload 2
            aload 3
            invokevirtual io.vertx.rabbitmq.impl.RabbitMQClientImpl.restartConsumer:(ILio/vertx/rabbitmq/impl/QueueConsumerHandler;Lio/vertx/rabbitmq/QueueOptions;)V
         1: .line 194
            return
        end local 4 // java.lang.Long id
        end local 0 // io.vertx.rabbitmq.impl.RabbitMQClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/rabbitmq/impl/RabbitMQClientImpl;
            0    2     4    id  Ljava/lang/Long;
}
SourceFile: "RabbitMQClientImpl.java"
NestMembers:
  io.vertx.rabbitmq.impl.RabbitMQClientImpl$ChannelHandler
InnerClasses:
  public BasicProperties = com.rabbitmq.client.AMQP$BasicProperties of com.rabbitmq.client.AMQP
  public Confirm = com.rabbitmq.client.AMQP$Confirm of com.rabbitmq.client.AMQP
  public abstract SelectOk = com.rabbitmq.client.AMQP$Confirm$SelectOk of com.rabbitmq.client.AMQP$Confirm
  public Exchange = com.rabbitmq.client.AMQP$Exchange of com.rabbitmq.client.AMQP
  public abstract BindOk = com.rabbitmq.client.AMQP$Exchange$BindOk of com.rabbitmq.client.AMQP$Exchange
  public abstract DeclareOk = com.rabbitmq.client.AMQP$Exchange$DeclareOk of com.rabbitmq.client.AMQP$Exchange
  public abstract DeleteOk = com.rabbitmq.client.AMQP$Exchange$DeleteOk of com.rabbitmq.client.AMQP$Exchange
  public abstract UnbindOk = com.rabbitmq.client.AMQP$Exchange$UnbindOk of com.rabbitmq.client.AMQP$Exchange
  public Queue = com.rabbitmq.client.AMQP$Queue of com.rabbitmq.client.AMQP
  public abstract BindOk = com.rabbitmq.client.AMQP$Queue$BindOk of com.rabbitmq.client.AMQP$Queue
  public abstract DeclareOk = com.rabbitmq.client.AMQP$Queue$DeclareOk of com.rabbitmq.client.AMQP$Queue
  public abstract DeleteOk = com.rabbitmq.client.AMQP$Queue$DeleteOk of com.rabbitmq.client.AMQP$Queue
  public abstract UnbindOk = com.rabbitmq.client.AMQP$Queue$UnbindOk of com.rabbitmq.client.AMQP$Queue
  private abstract ChannelHandler = io.vertx.rabbitmq.impl.RabbitMQClientImpl$ChannelHandler of io.vertx.rabbitmq.impl.RabbitMQClientImpl
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles