public class io.vertx.mysqlclient.impl.MySQLConnectionFactory extends io.vertx.sqlclient.impl.SqlConnectionFactoryBase implements io.vertx.sqlclient.impl.ConnectionFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.mysqlclient.impl.MySQLConnectionFactory
  super_class: io.vertx.sqlclient.impl.SqlConnectionFactoryBase
{
  private io.vertx.mysqlclient.impl.MySQLCollation collation;
    descriptor: Lio/vertx/mysqlclient/impl/MySQLCollation;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.charset.Charset charsetEncoding;
    descriptor: Ljava/nio/charset/Charset;
    flags: (0x0002) ACC_PRIVATE

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

  private io.vertx.mysqlclient.SslMode sslMode;
    descriptor: Lio/vertx/mysqlclient/SslMode;
    flags: (0x0002) ACC_PRIVATE

  private io.vertx.core.buffer.Buffer serverRsaPublicKey;
    descriptor: Lio/vertx/core/buffer/Buffer;
    flags: (0x0002) ACC_PRIVATE

  private int initialCapabilitiesFlags;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private io.vertx.mysqlclient.MySQLAuthenticationPlugin authenticationPlugin;
    descriptor: Lio/vertx/mysqlclient/MySQLAuthenticationPlugin;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$io$vertx$mysqlclient$SslMode;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  public void <init>(io.vertx.core.impl.ContextInternal, io.vertx.mysqlclient.MySQLConnectOptions);
    descriptor: (Lio/vertx/core/impl/ContextInternal;Lio/vertx/mysqlclient/MySQLConnectOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.mysqlclient.impl.MySQLConnectionFactory this
        start local 1 // io.vertx.core.impl.ContextInternal context
        start local 2 // io.vertx.mysqlclient.MySQLConnectOptions options
         0: .line 43
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* options */
            invokespecial io.vertx.sqlclient.impl.SqlConnectionFactoryBase.<init>:(Lio/vertx/core/impl/ContextInternal;Lio/vertx/sqlclient/SqlConnectOptions;)V
         1: .line 44
            return
        end local 2 // io.vertx.mysqlclient.MySQLConnectOptions options
        end local 1 // io.vertx.core.impl.ContextInternal context
        end local 0 // io.vertx.mysqlclient.impl.MySQLConnectionFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/mysqlclient/impl/MySQLConnectionFactory;
            0    2     1  context  Lio/vertx/core/impl/ContextInternal;
            0    2     2  options  Lio/vertx/mysqlclient/MySQLConnectOptions;
    MethodParameters:
         Name  Flags
      context  
      options  

  protected void initializeConfiguration(io.vertx.sqlclient.SqlConnectOptions);
    descriptor: (Lio/vertx/sqlclient/SqlConnectOptions;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // io.vertx.mysqlclient.impl.MySQLConnectionFactory this
        start local 1 // io.vertx.sqlclient.SqlConnectOptions connectOptions
         0: .line 48
            aload 1 /* connectOptions */
            instanceof io.vertx.mysqlclient.MySQLConnectOptions
            ifne 2
         1: .line 49
            new java.lang.IllegalArgumentException
            dup
            ldc "mismatched connect options type"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 51
      StackMap locals:
      StackMap stack:
            aload 1 /* connectOptions */
            checkcast io.vertx.mysqlclient.MySQLConnectOptions
            astore 2 /* options */
        start local 2 // io.vertx.mysqlclient.MySQLConnectOptions options
         3: .line 53
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getCollation:()Ljava/lang/String;
            ifnull 7
         4: .line 55
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getCollation:()Ljava/lang/String;
            invokestatic io.vertx.mysqlclient.impl.MySQLCollation.valueOfName:(Ljava/lang/String;)Lio/vertx/mysqlclient/impl/MySQLCollation;
            astore 3 /* collation */
        start local 3 // io.vertx.mysqlclient.impl.MySQLCollation collation
         5: .line 56
            aload 0 /* this */
            aload 3 /* collation */
            invokevirtual io.vertx.mysqlclient.impl.MySQLCollation.mappedJavaCharsetName:()Ljava/lang/String;
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            putfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.charsetEncoding:Ljava/nio/charset/Charset;
         6: .line 57
            goto 17
        end local 3 // io.vertx.mysqlclient.impl.MySQLCollation collation
         7: .line 58
      StackMap locals: io.vertx.mysqlclient.MySQLConnectOptions
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getCharset:()Ljava/lang/String;
            astore 4 /* charset */
        start local 4 // java.lang.String charset
         8: .line 59
            aload 4 /* charset */
            ifnonnull 11
         9: .line 60
            getstatic io.vertx.mysqlclient.impl.MySQLCollation.DEFAULT_COLLATION:Lio/vertx/mysqlclient/impl/MySQLCollation;
            astore 3 /* collation */
        start local 3 // io.vertx.mysqlclient.impl.MySQLCollation collation
        10: .line 61
            goto 12
        end local 3 // io.vertx.mysqlclient.impl.MySQLCollation collation
        11: .line 62
      StackMap locals: io.vertx.mysqlclient.impl.MySQLConnectionFactory io.vertx.sqlclient.SqlConnectOptions io.vertx.mysqlclient.MySQLConnectOptions top java.lang.String
      StackMap stack:
            aload 4 /* charset */
            invokestatic io.vertx.mysqlclient.impl.MySQLCollation.getDefaultCollationFromCharsetName:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic io.vertx.mysqlclient.impl.MySQLCollation.valueOfName:(Ljava/lang/String;)Lio/vertx/mysqlclient/impl/MySQLCollation;
            astore 3 /* collation */
        start local 3 // io.vertx.mysqlclient.impl.MySQLCollation collation
        12: .line 64
      StackMap locals: io.vertx.mysqlclient.impl.MySQLConnectionFactory io.vertx.sqlclient.SqlConnectOptions io.vertx.mysqlclient.MySQLConnectOptions io.vertx.mysqlclient.impl.MySQLCollation java.lang.String
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getCharacterEncoding:()Ljava/lang/String;
            astore 5 /* characterEncoding */
        start local 5 // java.lang.String characterEncoding
        13: .line 65
            aload 5 /* characterEncoding */
            ifnonnull 16
        14: .line 66
            aload 0 /* this */
            invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
            putfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.charsetEncoding:Ljava/nio/charset/Charset;
        15: .line 67
            goto 17
        16: .line 68
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getCharacterEncoding:()Ljava/lang/String;
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            putfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.charsetEncoding:Ljava/nio/charset/Charset;
        end local 5 // java.lang.String characterEncoding
        end local 4 // java.lang.String charset
        17: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* collation */
            putfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.collation:Lio/vertx/mysqlclient/impl/MySQLCollation;
        18: .line 72
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.isUseAffectedRows:()Z
            putfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.useAffectedRows:Z
        19: .line 73
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.isUsingDomainSocket:()Z
            ifeq 20
            getstatic io.vertx.mysqlclient.SslMode.DISABLED:Lio/vertx/mysqlclient/SslMode;
            goto 21
      StackMap locals:
      StackMap stack: io.vertx.mysqlclient.impl.MySQLConnectionFactory
        20: aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getSslMode:()Lio/vertx/mysqlclient/SslMode;
      StackMap locals: io.vertx.mysqlclient.impl.MySQLConnectionFactory io.vertx.sqlclient.SqlConnectOptions io.vertx.mysqlclient.MySQLConnectOptions io.vertx.mysqlclient.impl.MySQLCollation
      StackMap stack: io.vertx.mysqlclient.impl.MySQLConnectionFactory io.vertx.mysqlclient.SslMode
        21: putfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.sslMode:Lio/vertx/mysqlclient/SslMode;
        22: .line 74
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getAuthenticationPlugin:()Lio/vertx/mysqlclient/MySQLAuthenticationPlugin;
            putfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.authenticationPlugin:Lio/vertx/mysqlclient/MySQLAuthenticationPlugin;
        23: .line 77
            aconst_null
            astore 4 /* serverRsaPublicKey */
        start local 4 // io.vertx.core.buffer.Buffer serverRsaPublicKey
        24: .line 78
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getServerRsaPublicKeyValue:()Lio/vertx/core/buffer/Buffer;
            ifnull 27
        25: .line 79
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getServerRsaPublicKeyValue:()Lio/vertx/core/buffer/Buffer;
            astore 4 /* serverRsaPublicKey */
        26: .line 80
            goto 29
        27: .line 81
      StackMap locals: io.vertx.core.buffer.Buffer
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getServerRsaPublicKeyPath:()Ljava/lang/String;
            ifnull 29
        28: .line 82
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.context:Lio/vertx/core/impl/ContextInternal;
            invokeinterface io.vertx.core.impl.ContextInternal.owner:()Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.fileSystem:()Lio/vertx/core/file/FileSystem;
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getServerRsaPublicKeyPath:()Ljava/lang/String;
            invokeinterface io.vertx.core.file.FileSystem.readFileBlocking:(Ljava/lang/String;)Lio/vertx/core/buffer/Buffer;
            astore 4 /* serverRsaPublicKey */
        29: .line 85
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* serverRsaPublicKey */
            putfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.serverRsaPublicKey:Lio/vertx/core/buffer/Buffer;
        30: .line 86
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.vertx.mysqlclient.impl.MySQLConnectionFactory.initCapabilitiesFlags:()I
            putfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.initialCapabilitiesFlags:I
        31: .line 89
            invokestatic io.vertx.mysqlclient.impl.MySQLConnectionFactory.$SWITCH_TABLE$io$vertx$mysqlclient$SslMode:()[I
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.sslMode:Lio/vertx/mysqlclient/SslMode;
            invokevirtual io.vertx.mysqlclient.SslMode.ordinal:()I
            iaload
            tableswitch { // 4 - 5
                    4: 35
                    5: 32
              default: 38
          }
        32: .line 91
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getHostnameVerificationAlgorithm:()Ljava/lang/String;
            astore 5 /* hostnameVerificationAlgorithm */
        start local 5 // java.lang.String hostnameVerificationAlgorithm
        33: .line 92
            aload 5 /* hostnameVerificationAlgorithm */
            ifnull 34
            aload 5 /* hostnameVerificationAlgorithm */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 35
        34: .line 93
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Host verification algorithm must be specified under VERIFY_IDENTITY ssl-mode."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String hostnameVerificationAlgorithm
        35: .line 96
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.mysqlclient.MySQLConnectOptions.getTrustOptions:()Lio/vertx/core/net/TrustOptions;
            astore 6 /* trustOptions */
        start local 6 // io.vertx.core.net.TrustOptions trustOptions
        36: .line 97
            aload 6 /* trustOptions */
            ifnonnull 38
        37: .line 98
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Trust options must be specified under "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.sslMode:Lio/vertx/mysqlclient/SslMode;
            invokevirtual io.vertx.mysqlclient.SslMode.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ssl-mode."
            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
        end local 6 // io.vertx.core.net.TrustOptions trustOptions
        38: .line 102
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.vertx.core.buffer.Buffer serverRsaPublicKey
        end local 3 // io.vertx.mysqlclient.impl.MySQLCollation collation
        end local 2 // io.vertx.mysqlclient.MySQLConnectOptions options
        end local 1 // io.vertx.sqlclient.SqlConnectOptions connectOptions
        end local 0 // io.vertx.mysqlclient.impl.MySQLConnectionFactory this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   39     0                           this  Lio/vertx/mysqlclient/impl/MySQLConnectionFactory;
            0   39     1                 connectOptions  Lio/vertx/sqlclient/SqlConnectOptions;
            3   39     2                        options  Lio/vertx/mysqlclient/MySQLConnectOptions;
            5    7     3                      collation  Lio/vertx/mysqlclient/impl/MySQLCollation;
           10   11     3                      collation  Lio/vertx/mysqlclient/impl/MySQLCollation;
           12   39     3                      collation  Lio/vertx/mysqlclient/impl/MySQLCollation;
            8   17     4                        charset  Ljava/lang/String;
           13   17     5              characterEncoding  Ljava/lang/String;
           24   39     4             serverRsaPublicKey  Lio/vertx/core/buffer/Buffer;
           33   35     5  hostnameVerificationAlgorithm  Ljava/lang/String;
           36   38     6                   trustOptions  Lio/vertx/core/net/TrustOptions;
    MethodParameters:
                Name  Flags
      connectOptions  

  protected void configureNetClientOptions(io.vertx.core.net.NetClientOptions);
    descriptor: (Lio/vertx/core/net/NetClientOptions;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.mysqlclient.impl.MySQLConnectionFactory this
        start local 1 // io.vertx.core.net.NetClientOptions netClientOptions
         0: .line 106
            aload 1 /* netClientOptions */
            iconst_0
            invokevirtual io.vertx.core.net.NetClientOptions.setSsl:(Z)Lio/vertx/core/net/NetClientOptions;
            pop
         1: .line 107
            return
        end local 1 // io.vertx.core.net.NetClientOptions netClientOptions
        end local 0 // io.vertx.mysqlclient.impl.MySQLConnectionFactory this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lio/vertx/mysqlclient/impl/MySQLConnectionFactory;
            0    2     1  netClientOptions  Lio/vertx/core/net/NetClientOptions;
    MethodParameters:
                  Name  Flags
      netClientOptions  

  protected void doConnectInternal(io.vertx.core.Promise<io.vertx.sqlclient.impl.Connection>);
    descriptor: (Lio/vertx/core/Promise;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.mysqlclient.impl.MySQLConnectionFactory this
        start local 1 // io.vertx.core.Promise promise
         0: .line 111
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.netClient:Lio/vertx/core/net/NetClient;
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.socketAddress:Lio/vertx/core/net/SocketAddress;
            invokeinterface io.vertx.core.net.NetClient.connect:(Lio/vertx/core/net/SocketAddress;)Lio/vertx/core/Future;
            astore 2 /* fut */
        start local 2 // io.vertx.core.Future fut
         1: .line 112
            aload 2 /* fut */
            aload 0 /* this */
            aload 1 /* promise */
            invokedynamic handle(Lio/vertx/mysqlclient/impl/MySQLConnectionFactory;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/mysqlclient/impl/MySQLConnectionFactory.lambda$0(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
         2: .line 122
            return
        end local 2 // io.vertx.core.Future fut
        end local 1 // io.vertx.core.Promise promise
        end local 0 // io.vertx.mysqlclient.impl.MySQLConnectionFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/mysqlclient/impl/MySQLConnectionFactory;
            0    3     1  promise  Lio/vertx/core/Promise<Lio/vertx/sqlclient/impl/Connection;>;
            1    3     2      fut  Lio/vertx/core/Future<Lio/vertx/core/net/NetSocket;>;
    Signature: (Lio/vertx/core/Promise<Lio/vertx/sqlclient/impl/Connection;>;)V
    MethodParameters:
         Name  Flags
      promise  

  private int initCapabilitiesFlags();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.mysqlclient.impl.MySQLConnectionFactory this
         0: .line 125
            ldc 3121797
            istore 1 /* capabilitiesFlags */
        start local 1 // int capabilitiesFlags
         1: .line 126
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.database:Ljava/lang/String;
            ifnull 3
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.database:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 3
         2: .line 127
            iload 1 /* capabilitiesFlags */
            bipush 8
            ior
            istore 1 /* capabilitiesFlags */
         3: .line 129
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.properties:Ljava/util/Map;
            ifnull 5
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.properties:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 5
         4: .line 130
            iload 1 /* capabilitiesFlags */
            ldc 1048576
            ior
            istore 1 /* capabilitiesFlags */
         5: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.useAffectedRows:Z
            ifne 7
         6: .line 133
            iload 1 /* capabilitiesFlags */
            iconst_2
            ior
            istore 1 /* capabilitiesFlags */
         7: .line 136
      StackMap locals:
      StackMap stack:
            iload 1 /* capabilitiesFlags */
            ireturn
        end local 1 // int capabilitiesFlags
        end local 0 // io.vertx.mysqlclient.impl.MySQLConnectionFactory this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0               this  Lio/vertx/mysqlclient/impl/MySQLConnectionFactory;
            1    8     1  capabilitiesFlags  I

  static int[] $SWITCH_TABLE$io$vertx$mysqlclient$SslMode();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 32
            getstatic io.vertx.mysqlclient.impl.MySQLConnectionFactory.$SWITCH_TABLE$io$vertx$mysqlclient$SslMode:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.vertx.mysqlclient.SslMode.values:()[Lio/vertx/mysqlclient/SslMode;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.vertx.mysqlclient.SslMode.DISABLED:Lio/vertx/mysqlclient/SslMode;
            invokevirtual io.vertx.mysqlclient.SslMode.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.vertx.mysqlclient.SslMode.PREFERRED:Lio/vertx/mysqlclient/SslMode;
            invokevirtual io.vertx.mysqlclient.SslMode.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.vertx.mysqlclient.SslMode.REQUIRED:Lio/vertx/mysqlclient/SslMode;
            invokevirtual io.vertx.mysqlclient.SslMode.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic io.vertx.mysqlclient.SslMode.VERIFY_CA:Lio/vertx/mysqlclient/SslMode;
            invokevirtual io.vertx.mysqlclient.SslMode.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic io.vertx.mysqlclient.SslMode.VERIFY_IDENTITY:Lio/vertx/mysqlclient/SslMode;
            invokevirtual io.vertx.mysqlclient.SslMode.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic io.vertx.mysqlclient.impl.MySQLConnectionFactory.$SWITCH_TABLE$io$vertx$mysqlclient$SslMode:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError

  private void lambda$0(io.vertx.core.Promise, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=12, locals=5, args_size=3
        start local 0 // io.vertx.mysqlclient.impl.MySQLConnectionFactory this
        start local 2 // io.vertx.core.AsyncResult ar
         0: .line 113
            aload 2 /* ar */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 6
         1: .line 114
            aload 2 /* ar */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.net.NetSocket
            astore 3 /* so */
        start local 3 // io.vertx.core.net.NetSocket so
         2: .line 115
            new io.vertx.mysqlclient.impl.MySQLSocketConnection
            dup
            aload 3 /* so */
            checkcast io.vertx.core.net.impl.NetSocketInternal
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.cachePreparedStatements:Z
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.preparedStatementCacheSize:I
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.preparedStatementCacheSqlFilter:Ljava/util/function/Predicate;
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.context:Lio/vertx/core/impl/ContextInternal;
            invokespecial io.vertx.mysqlclient.impl.MySQLSocketConnection.<init>:(Lio/vertx/core/net/impl/NetSocketInternal;ZILjava/util/function/Predicate;Lio/vertx/core/impl/ContextInternal;)V
            astore 4 /* conn */
        start local 4 // io.vertx.mysqlclient.impl.MySQLSocketConnection conn
         3: .line 116
            aload 4 /* conn */
            invokevirtual io.vertx.mysqlclient.impl.MySQLSocketConnection.init:()V
         4: .line 117
            aload 4 /* conn */
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.username:Ljava/lang/String;
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.password:Ljava/lang/String;
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.database:Ljava/lang/String;
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.collation:Lio/vertx/mysqlclient/impl/MySQLCollation;
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.serverRsaPublicKey:Lio/vertx/core/buffer/Buffer;
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.properties:Ljava/util/Map;
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.sslMode:Lio/vertx/mysqlclient/SslMode;
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.initialCapabilitiesFlags:I
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.charsetEncoding:Ljava/nio/charset/Charset;
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.MySQLConnectionFactory.authenticationPlugin:Lio/vertx/mysqlclient/MySQLAuthenticationPlugin;
            aload 1
            invokevirtual io.vertx.mysqlclient.impl.MySQLSocketConnection.sendStartupMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/mysqlclient/impl/MySQLCollation;Lio/vertx/core/buffer/Buffer;Ljava/util/Map;Lio/vertx/mysqlclient/SslMode;ILjava/nio/charset/Charset;Lio/vertx/mysqlclient/MySQLAuthenticationPlugin;Lio/vertx/core/Promise;)V
        end local 4 // io.vertx.mysqlclient.impl.MySQLSocketConnection conn
        end local 3 // io.vertx.core.net.NetSocket so
         5: .line 118
            goto 7
         6: .line 119
      StackMap locals:
      StackMap stack:
            aload 1
            aload 2 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
         7: .line 121
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.AsyncResult ar
        end local 0 // io.vertx.mysqlclient.impl.MySQLConnectionFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/vertx/mysqlclient/impl/MySQLConnectionFactory;
            0    8     2    ar  Lio/vertx/core/AsyncResult<Lio/vertx/core/net/NetSocket;>;
            2    5     3    so  Lio/vertx/core/net/NetSocket;
            3    5     4  conn  Lio/vertx/mysqlclient/impl/MySQLSocketConnection;
}
SourceFile: "MySQLConnectionFactory.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles