public class io.vertx.pgclient.impl.PgConnectionUriParser
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.pgclient.impl.PgConnectionUriParser
  super_class: java.lang.Object
{
  private static final java.lang.String SCHEME_DESIGNATOR_REGEX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "postgre(s|sql)://"

  private static final java.lang.String USER_INFO_REGEX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "((?<userinfo>[a-zA-Z0-9\\-._~%!]+(:[a-zA-Z0-9\\-._~%!]+)?)@)?"

  private static final java.lang.String NET_LOCATION_REGEX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "(?<netloc>[0-9.]+|\\[[a-zA-Z0-9:]+]|[a-zA-Z0-9\\-._~%]+)?"

  private static final java.lang.String PORT_REGEX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "(:(?<port>\\d+))?"

  private static final java.lang.String DATABASE_REGEX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "(/(?<database>[a-zA-Z0-9\\-._~%!]+))?"

  private static final java.lang.String PARAMS_REGEX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "(\\?(?<params>.*))?"

  private static final java.lang.String FULL_URI_REGEX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "^postgre(s|sql)://((?<userinfo>[a-zA-Z0-9\\-._~%!]+(:[a-zA-Z0-9\\-._~%!]+)?)@)?(?<netloc>[0-9.]+|\\[[a-zA-Z0-9:]+]|[a-zA-Z0-9\\-._~%]+)?(:(?<port>\\d+))?(/(?<database>[a-zA-Z0-9\\-._~%!]+))?(\\?(?<params>.*))?$"

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.pgclient.impl.PgConnectionUriParser this
         0: .line 38
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.vertx.pgclient.impl.PgConnectionUriParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/pgclient/impl/PgConnectionUriParser;

  public static io.vertx.core.json.JsonObject parse(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.String connectionUri
         0: .line 58
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            astore 1 /* configuration */
        start local 1 // io.vertx.core.json.JsonObject configuration
         1: .line 59
            aload 0 /* connectionUri */
            aload 1 /* configuration */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.doParse:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
         2: .line 60
            aload 1 /* configuration */
         3: areturn
        end local 1 // io.vertx.core.json.JsonObject configuration
         4: .line 61
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         5: .line 62
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot parse invalid connection URI: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* connectionUri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // java.lang.String connectionUri
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0  connectionUri  Ljava/lang/String;
            1    4     1  configuration  Lio/vertx/core/json/JsonObject;
            5    6     1              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Exception
    MethodParameters:
               Name  Flags
      connectionUri  

  private static void doParse(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.String connectionUri
        start local 1 // io.vertx.core.json.JsonObject configuration
         0: .line 68
            ldc "^postgre(s|sql)://((?<userinfo>[a-zA-Z0-9\\-._~%!]+(:[a-zA-Z0-9\\-._~%!]+)?)@)?(?<netloc>[0-9.]+|\\[[a-zA-Z0-9:]+]|[a-zA-Z0-9\\-._~%]+)?(:(?<port>\\d+))?(/(?<database>[a-zA-Z0-9\\-._~%!]+))?(\\?(?<params>.*))?$"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            astore 2 /* pattern */
        start local 2 // java.util.regex.Pattern pattern
         1: .line 69
            aload 2 /* pattern */
            aload 0 /* connectionUri */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 3 /* matcher */
        start local 3 // java.util.regex.Matcher matcher
         2: .line 71
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 9
         3: .line 73
            aload 3 /* matcher */
            ldc "userinfo"
            invokevirtual java.util.regex.Matcher.group:(Ljava/lang/String;)Ljava/lang/String;
            aload 1 /* configuration */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.parseUserAndPassword:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
         4: .line 76
            aload 3 /* matcher */
            ldc "netloc"
            invokevirtual java.util.regex.Matcher.group:(Ljava/lang/String;)Ljava/lang/String;
            aload 1 /* configuration */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.parseNetLocation:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
         5: .line 79
            aload 3 /* matcher */
            ldc "port"
            invokevirtual java.util.regex.Matcher.group:(Ljava/lang/String;)Ljava/lang/String;
            aload 1 /* configuration */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.parsePort:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
         6: .line 82
            aload 3 /* matcher */
            ldc "database"
            invokevirtual java.util.regex.Matcher.group:(Ljava/lang/String;)Ljava/lang/String;
            aload 1 /* configuration */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.parseDatabaseName:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
         7: .line 85
            aload 3 /* matcher */
            ldc "params"
            invokevirtual java.util.regex.Matcher.group:(Ljava/lang/String;)Ljava/lang/String;
            aload 1 /* configuration */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.parseParameters:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
         8: .line 87
            goto 10
         9: .line 88
      StackMap locals: java.util.regex.Pattern java.util.regex.Matcher
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Wrong syntax of connection URI"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 90
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.regex.Matcher matcher
        end local 2 // java.util.regex.Pattern pattern
        end local 1 // io.vertx.core.json.JsonObject configuration
        end local 0 // java.lang.String connectionUri
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0  connectionUri  Ljava/lang/String;
            0   11     1  configuration  Lio/vertx/core/json/JsonObject;
            1   11     2        pattern  Ljava/util/regex/Pattern;
            2   11     3        matcher  Ljava/util/regex/Matcher;
    MethodParameters:
               Name  Flags
      connectionUri  
      configuration  

  private static void parseUserAndPassword(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.String userInfo
        start local 1 // io.vertx.core.json.JsonObject configuration
         0: .line 93
            aload 0 /* userInfo */
            ifnull 1
            aload 0 /* userInfo */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 94
      StackMap locals:
      StackMap stack:
            return
         2: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* userInfo */
            ldc ":"
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.occurExactlyOnce:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 11
         3: .line 97
            aload 0 /* userInfo */
            ldc ":"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 2 /* index */
        start local 2 // int index
         4: .line 98
            aload 0 /* userInfo */
            iconst_0
            iload 2 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* user */
        start local 3 // java.lang.String user
         5: .line 99
            aload 3 /* user */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
         6: .line 100
            new java.lang.IllegalArgumentException
            dup
            ldc "Can not only specify the password without a concrete user"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 102
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 0 /* userInfo */
            iload 2 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* password */
        start local 4 // java.lang.String password
         8: .line 103
            aload 1 /* configuration */
            ldc "user"
            aload 3 /* user */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.decodeUrl:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
         9: .line 104
            aload 1 /* configuration */
            ldc "password"
            aload 4 /* password */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.decodeUrl:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        end local 4 // java.lang.String password
        end local 3 // java.lang.String user
        end local 2 // int index
        10: .line 105
            goto 15
      StackMap locals:
      StackMap stack:
        11: aload 0 /* userInfo */
            ldc ":"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 14
        12: .line 106
            aload 1 /* configuration */
            ldc "user"
            aload 0 /* userInfo */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.decodeUrl:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        13: .line 107
            goto 15
        14: .line 108
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Can not use multiple delimiters to delimit user and password"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 110
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.json.JsonObject configuration
        end local 0 // java.lang.String userInfo
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0       userInfo  Ljava/lang/String;
            0   16     1  configuration  Lio/vertx/core/json/JsonObject;
            4   10     2          index  I
            5   10     3           user  Ljava/lang/String;
            8   10     4       password  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      userInfo       
      configuration  

  private static void parseNetLocation(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String hostInfo
        start local 1 // io.vertx.core.json.JsonObject configuration
         0: .line 113
            aload 0 /* hostInfo */
            ifnull 1
            aload 0 /* hostInfo */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 114
      StackMap locals:
      StackMap stack:
            return
         2: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* hostInfo */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.decodeUrl:(Ljava/lang/String;)Ljava/lang/String;
            aload 1 /* configuration */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.parseNetLocationValue:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
         3: .line 117
            return
        end local 1 // io.vertx.core.json.JsonObject configuration
        end local 0 // java.lang.String hostInfo
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0       hostInfo  Ljava/lang/String;
            0    4     1  configuration  Lio/vertx/core/json/JsonObject;
    MethodParameters:
               Name  Flags
      hostInfo       
      configuration  

  private static void parsePort(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String portInfo
        start local 1 // io.vertx.core.json.JsonObject configuration
         0: .line 120
            aload 0 /* portInfo */
            ifnull 1
            aload 0 /* portInfo */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 121
      StackMap locals:
      StackMap stack:
            return
         2: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* portInfo */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.decodeUrl:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 2 /* port */
        start local 2 // int port
         3: .line 126
            goto 6
        end local 2 // int port
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
         4: pop
         5: .line 127
            new java.lang.IllegalArgumentException
            dup
            ldc "The port must be a valid integer"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 2 // int port
         6: .line 129
      StackMap locals: int
      StackMap stack:
            iload 2 /* port */
            ldc 65535
            if_icmpgt 7
            iload 2 /* port */
            ifgt 8
         7: .line 130
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "The port can only range in 1-65535"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 132
      StackMap locals:
      StackMap stack:
            aload 1 /* configuration */
            ldc "port"
            iload 2 /* port */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
         9: .line 133
            return
        end local 2 // int port
        end local 1 // io.vertx.core.json.JsonObject configuration
        end local 0 // java.lang.String portInfo
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0       portInfo  Ljava/lang/String;
            0   10     1  configuration  Lio/vertx/core/json/JsonObject;
            3    4     2           port  I
            6   10     2           port  I
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NumberFormatException
    MethodParameters:
               Name  Flags
      portInfo       
      configuration  

  private static void parseDatabaseName(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String databaseInfo
        start local 1 // io.vertx.core.json.JsonObject configuration
         0: .line 136
            aload 0 /* databaseInfo */
            ifnull 1
            aload 0 /* databaseInfo */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 137
      StackMap locals:
      StackMap stack:
            return
         2: .line 139
      StackMap locals:
      StackMap stack:
            aload 1 /* configuration */
            ldc "database"
            aload 0 /* databaseInfo */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.decodeUrl:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
         3: .line 140
            return
        end local 1 // io.vertx.core.json.JsonObject configuration
        end local 0 // java.lang.String databaseInfo
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0   databaseInfo  Ljava/lang/String;
            0    4     1  configuration  Lio/vertx/core/json/JsonObject;
    MethodParameters:
               Name  Flags
      databaseInfo   
      configuration  

  private static void parseParameters(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=11, args_size=2
        start local 0 // java.lang.String parametersInfo
        start local 1 // io.vertx.core.json.JsonObject configuration
         0: .line 143
            aload 0 /* parametersInfo */
            ifnull 1
            aload 0 /* parametersInfo */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 144
      StackMap locals:
      StackMap stack:
            return
         2: .line 146
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* properties */
        start local 2 // java.util.Map properties
         3: .line 147
            aload 0 /* parametersInfo */
            ldc "&"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 45
      StackMap locals: java.lang.String io.vertx.core.json.JsonObject java.util.Map top int int java.lang.String[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* parameterPair */
        start local 3 // java.lang.String parameterPair
         5: .line 148
            aload 3 /* parameterPair */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
         6: .line 149
            goto 44
         7: .line 151
      StackMap locals: java.lang.String io.vertx.core.json.JsonObject java.util.Map java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 3 /* parameterPair */
            ldc "="
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 7 /* indexOfDelimiter */
        start local 7 // int indexOfDelimiter
         8: .line 152
            iload 7 /* indexOfDelimiter */
            ifge 10
         9: .line 153
            new java.lang.IllegalArgumentException
            dup
            ldc "Missing delimiter '=' of parameters \"%s\" in the part \"%s\""
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* parametersInfo */
            aastore
            dup
            iconst_1
            aload 3 /* parameterPair */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 155
      StackMap locals: int
      StackMap stack:
            aload 3 /* parameterPair */
            iconst_0
            iload 7 /* indexOfDelimiter */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 8 /* key */
        start local 8 // java.lang.String key
        11: .line 156
            aload 3 /* parameterPair */
            iload 7 /* indexOfDelimiter */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.decodeUrl:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* value */
        start local 9 // java.lang.String value
        12: .line 157
            aload 8 /* key */
            dup
            astore 10
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 10
          -1915809361: 13
          -1338173431: 14
           -539361188: 15
           -300188263: 16
               589850: 17
              3208616: 18
              3446913: 19
              3599307: 20
           1216985755: 21
           1828527063: 22
              default: 43
          }
      StackMap locals: java.lang.String java.lang.String java.lang.String
      StackMap stack:
        13: aload 10
            ldc "sslmode"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
            goto 43
      StackMap locals:
      StackMap stack:
        14: aload 10
            ldc "dbname"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 33
            goto 43
      StackMap locals:
      StackMap stack:
        15: aload 10
            ldc "search_path"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 41
            goto 43
      StackMap locals:
      StackMap stack:
        16: aload 10
            ldc "hostaddr"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 27
            goto 43
      StackMap locals:
      StackMap stack:
        17: aload 10
            ldc "application_name"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 37
            goto 43
      StackMap locals:
      StackMap stack:
        18: aload 10
            ldc "host"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            goto 43
      StackMap locals:
      StackMap stack:
        19: aload 10
            ldc "port"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
            goto 43
      StackMap locals:
      StackMap stack:
        20: aload 10
            ldc "user"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 29
            goto 43
      StackMap locals:
      StackMap stack:
        21: aload 10
            ldc "password"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
            goto 43
      StackMap locals:
      StackMap stack:
        22: aload 10
            ldc "fallback_application_name"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 39
            goto 43
        23: .line 159
      StackMap locals:
      StackMap stack:
            aload 9 /* value */
            aload 1 /* configuration */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.parsePort:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
        24: .line 160
            goto 44
        25: .line 162
      StackMap locals:
      StackMap stack:
            aload 9 /* value */
            aload 1 /* configuration */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.parseNetLocationValue:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
        26: .line 163
            goto 44
        27: .line 165
      StackMap locals:
      StackMap stack:
            aload 1 /* configuration */
            ldc "host"
            aload 9 /* value */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        28: .line 166
            goto 44
        29: .line 168
      StackMap locals:
      StackMap stack:
            aload 1 /* configuration */
            ldc "user"
            aload 9 /* value */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        30: .line 169
            goto 44
        31: .line 171
      StackMap locals:
      StackMap stack:
            aload 1 /* configuration */
            ldc "password"
            aload 9 /* value */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        32: .line 172
            goto 44
        33: .line 174
      StackMap locals:
      StackMap stack:
            aload 1 /* configuration */
            ldc "database"
            aload 9 /* value */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        34: .line 175
            goto 44
        35: .line 177
      StackMap locals:
      StackMap stack:
            aload 1 /* configuration */
            ldc "sslMode"
            aload 9 /* value */
            invokestatic io.vertx.pgclient.SslMode.of:(Ljava/lang/String;)Lio/vertx/pgclient/SslMode;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        36: .line 178
            goto 44
        37: .line 180
      StackMap locals:
      StackMap stack:
            aload 2 /* properties */
            ldc "application_name"
            aload 9 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        38: .line 181
            goto 44
        39: .line 183
      StackMap locals:
      StackMap stack:
            aload 2 /* properties */
            ldc "fallback_application_name"
            aload 9 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        40: .line 184
            goto 44
        41: .line 186
      StackMap locals:
      StackMap stack:
            aload 2 /* properties */
            ldc "search_path"
            aload 9 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        42: .line 187
            goto 44
        43: .line 189
      StackMap locals:
      StackMap stack:
            aload 1 /* configuration */
            aload 8 /* key */
            aload 9 /* value */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        end local 9 // java.lang.String value
        end local 8 // java.lang.String key
        end local 7 // int indexOfDelimiter
        end local 3 // java.lang.String parameterPair
        44: .line 147
      StackMap locals: java.lang.String io.vertx.core.json.JsonObject java.util.Map top int int java.lang.String[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        45: iload 4
            iload 5
            if_icmplt 4
        46: .line 194
            aload 2 /* properties */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 48
        47: .line 195
            aload 1 /* configuration */
            ldc "properties"
            aload 2 /* properties */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        48: .line 197
      StackMap locals: java.lang.String io.vertx.core.json.JsonObject java.util.Map
      StackMap stack:
            return
        end local 2 // java.util.Map properties
        end local 1 // io.vertx.core.json.JsonObject configuration
        end local 0 // java.lang.String parametersInfo
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   49     0    parametersInfo  Ljava/lang/String;
            0   49     1     configuration  Lio/vertx/core/json/JsonObject;
            3   49     2        properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            5   44     3     parameterPair  Ljava/lang/String;
            8   44     7  indexOfDelimiter  I
           11   44     8               key  Ljava/lang/String;
           12   44     9             value  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      parametersInfo  
      configuration   

  private static void parseNetLocationValue(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.lang.String hostValue
        start local 1 // io.vertx.core.json.JsonObject configuration
         0: .line 200
            aload 0 /* hostValue */
            invokestatic io.vertx.pgclient.impl.PgConnectionUriParser.isRegardedAsIpv6Address:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 201
            aload 1 /* configuration */
            ldc "host"
            aload 0 /* hostValue */
            iconst_1
            aload 0 /* hostValue */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
         2: .line 202
            goto 4
         3: .line 203
      StackMap locals:
      StackMap stack:
            aload 1 /* configuration */
            ldc "host"
            aload 0 /* hostValue */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
         4: .line 205
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.json.JsonObject configuration
        end local 0 // java.lang.String hostValue
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0      hostValue  Ljava/lang/String;
            0    5     1  configuration  Lio/vertx/core/json/JsonObject;
    MethodParameters:
               Name  Flags
      hostValue      
      configuration  

  private static boolean isRegardedAsIpv6Address(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String hostAddress
         0: .line 208
            aload 0 /* hostAddress */
            ldc "["
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 1
            aload 0 /* hostAddress */
            ldc "]"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.String hostAddress
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0  hostAddress  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      hostAddress  

  private static java.lang.String decodeUrl(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String url
         0: .line 213
            aload 0 /* url */
            ldc "UTF-8"
            invokestatic java.net.URLDecoder.decode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
         1: areturn
         2: .line 214
      StackMap locals:
      StackMap stack: java.io.UnsupportedEncodingException
            pop
         3: .line 215
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection uri contains unknown characters that can not be resolved."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   url  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.UnsupportedEncodingException
    MethodParameters:
      Name  Flags
      url   

  private static boolean occurExactlyOnce(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String uri
        start local 1 // java.lang.String character
         0: .line 220
            aload 0 /* uri */
            aload 1 /* character */
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 1
            aload 0 /* uri */
            aload 1 /* character */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            aload 0 /* uri */
            aload 1 /* character */
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.String character
        end local 0 // java.lang.String uri
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0        uri  Ljava/lang/String;
            0    2     1  character  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      uri        
      character  
}
SourceFile: "PgConnectionUriParser.java"