final class io.micronaut.http.uri.QueryStringDecoder
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: io.micronaut.http.uri.QueryStringDecoder
  super_class: java.lang.Object
{
  private static final int DEFAULT_MAX_PARAMS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  private final java.nio.charset.Charset charset;
    descriptor: Ljava/nio/charset/Charset;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String uri;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private java.lang.String path;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, java.util.List<java.lang.String>> params;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;

  void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
        start local 1 // java.lang.String uri
         0: .line 77
            aload 0 /* this */
            aload 1 /* uri */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial io.micronaut.http.uri.QueryStringDecoder.<init>:(Ljava/lang/String;Ljava/nio/charset/Charset;)V
         1: .line 78
            return
        end local 1 // java.lang.String uri
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/micronaut/http/uri/QueryStringDecoder;
            0    2     1   uri  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      uri   

  void <init>(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
        start local 1 // java.lang.String uri
        start local 2 // boolean hasPath
         0: .line 88
            aload 0 /* this */
            aload 1 /* uri */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            iload 2 /* hasPath */
            invokespecial io.micronaut.http.uri.QueryStringDecoder.<init>:(Ljava/lang/String;Ljava/nio/charset/Charset;Z)V
         1: .line 89
            return
        end local 2 // boolean hasPath
        end local 1 // java.lang.String uri
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/micronaut/http/uri/QueryStringDecoder;
            0    2     1      uri  Ljava/lang/String;
            0    2     2  hasPath  Z
    MethodParameters:
         Name  Flags
      uri      
      hasPath  

  void <init>(java.lang.String, java.nio.charset.Charset);
    descriptor: (Ljava/lang/String;Ljava/nio/charset/Charset;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
        start local 1 // java.lang.String uri
        start local 2 // java.nio.charset.Charset charset
         0: .line 99
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* charset */
            iconst_1
            invokespecial io.micronaut.http.uri.QueryStringDecoder.<init>:(Ljava/lang/String;Ljava/nio/charset/Charset;Z)V
         1: .line 100
            return
        end local 2 // java.nio.charset.Charset charset
        end local 1 // java.lang.String uri
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/micronaut/http/uri/QueryStringDecoder;
            0    2     1      uri  Ljava/lang/String;
            0    2     2  charset  Ljava/nio/charset/Charset;
    MethodParameters:
         Name  Flags
      uri      
      charset  

  void <init>(java.lang.String, java.nio.charset.Charset, boolean);
    descriptor: (Ljava/lang/String;Ljava/nio/charset/Charset;Z)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
        start local 1 // java.lang.String uri
        start local 2 // java.nio.charset.Charset charset
        start local 3 // boolean hasPath
         0: .line 111
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* charset */
            iload 3 /* hasPath */
            sipush 1024
            invokespecial io.micronaut.http.uri.QueryStringDecoder.<init>:(Ljava/lang/String;Ljava/nio/charset/Charset;ZI)V
         1: .line 112
            return
        end local 3 // boolean hasPath
        end local 2 // java.nio.charset.Charset charset
        end local 1 // java.lang.String uri
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/micronaut/http/uri/QueryStringDecoder;
            0    2     1      uri  Ljava/lang/String;
            0    2     2  charset  Ljava/nio/charset/Charset;
            0    2     3  hasPath  Z
    MethodParameters:
         Name  Flags
      uri      
      charset  
      hasPath  

  void <init>(java.lang.String, java.nio.charset.Charset, boolean, int);
    descriptor: (Ljava/lang/String;Ljava/nio/charset/Charset;ZI)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
        start local 1 // java.lang.String uri
        start local 2 // java.nio.charset.Charset charset
        start local 3 // boolean hasPath
        start local 4 // int maxParams
         0: .line 123
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 124
            aload 0 /* this */
            aload 1 /* uri */
            ldc "uri"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield io.micronaut.http.uri.QueryStringDecoder.uri:Ljava/lang/String;
         2: .line 125
            aload 0 /* this */
            aload 2 /* charset */
            ldc "charset"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.nio.charset.Charset
            putfield io.micronaut.http.uri.QueryStringDecoder.charset:Ljava/nio/charset/Charset;
         3: .line 126
            aload 0 /* this */
            iload 4 /* maxParams */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            ldc "maxParams"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            putfield io.micronaut.http.uri.QueryStringDecoder.maxParams:I
         4: .line 129
            aload 0 /* this */
            iload 3 /* hasPath */
            ifeq 5
            iconst_m1
            goto 6
      StackMap locals: io.micronaut.http.uri.QueryStringDecoder java.lang.String java.nio.charset.Charset int int
      StackMap stack: io.micronaut.http.uri.QueryStringDecoder
         5: iconst_0
      StackMap locals: io.micronaut.http.uri.QueryStringDecoder java.lang.String java.nio.charset.Charset int int
      StackMap stack: io.micronaut.http.uri.QueryStringDecoder int
         6: putfield io.micronaut.http.uri.QueryStringDecoder.pathEndIdx:I
         7: .line 130
            return
        end local 4 // int maxParams
        end local 3 // boolean hasPath
        end local 2 // java.nio.charset.Charset charset
        end local 1 // java.lang.String uri
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lio/micronaut/http/uri/QueryStringDecoder;
            0    8     1        uri  Ljava/lang/String;
            0    8     2    charset  Ljava/nio/charset/Charset;
            0    8     3    hasPath  Z
            0    8     4  maxParams  I
    MethodParameters:
           Name  Flags
      uri        
      charset    
      hasPath    
      maxParams  

  void <init>(java.net.URI);
    descriptor: (Ljava/net/URI;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
        start local 1 // java.net.URI uri
         0: .line 139
            aload 0 /* this */
            aload 1 /* uri */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial io.micronaut.http.uri.QueryStringDecoder.<init>:(Ljava/net/URI;Ljava/nio/charset/Charset;)V
         1: .line 140
            return
        end local 1 // java.net.URI uri
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/micronaut/http/uri/QueryStringDecoder;
            0    2     1   uri  Ljava/net/URI;
    MethodParameters:
      Name  Flags
      uri   

  void <init>(java.net.URI, java.nio.charset.Charset);
    descriptor: (Ljava/net/URI;Ljava/nio/charset/Charset;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
        start local 1 // java.net.URI uri
        start local 2 // java.nio.charset.Charset charset
         0: .line 150
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* charset */
            sipush 1024
            invokespecial io.micronaut.http.uri.QueryStringDecoder.<init>:(Ljava/net/URI;Ljava/nio/charset/Charset;I)V
         1: .line 151
            return
        end local 2 // java.nio.charset.Charset charset
        end local 1 // java.net.URI uri
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/micronaut/http/uri/QueryStringDecoder;
            0    2     1      uri  Ljava/net/URI;
            0    2     2  charset  Ljava/nio/charset/Charset;
    MethodParameters:
         Name  Flags
      uri      
      charset  

  void <init>(java.net.URI, java.nio.charset.Charset, int);
    descriptor: (Ljava/net/URI;Ljava/nio/charset/Charset;I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
        start local 1 // java.net.URI uri
        start local 2 // java.nio.charset.Charset charset
        start local 3 // int maxParams
         0: .line 161
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 162
            aload 1 /* uri */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            astore 4 /* rawPath */
        start local 4 // java.lang.String rawPath
         2: .line 163
            aload 4 /* rawPath */
            ifnonnull 4
         3: .line 164
            ldc ""
            astore 4 /* rawPath */
         4: .line 166
      StackMap locals: io.micronaut.http.uri.QueryStringDecoder java.net.URI java.nio.charset.Charset int java.lang.String
      StackMap stack:
            aload 1 /* uri */
            invokevirtual java.net.URI.getRawQuery:()Ljava/lang/String;
            astore 5 /* rawQuery */
        start local 5 // java.lang.String rawQuery
         5: .line 168
            aload 0 /* this */
            aload 5 /* rawQuery */
            ifnonnull 6
            aload 4 /* rawPath */
            goto 7
      StackMap locals: io.micronaut.http.uri.QueryStringDecoder java.net.URI java.nio.charset.Charset int java.lang.String java.lang.String
      StackMap stack: io.micronaut.http.uri.QueryStringDecoder
         6: new java.lang.StringBuilder
            dup
            aload 4 /* rawPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 63
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 5 /* rawQuery */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals: io.micronaut.http.uri.QueryStringDecoder java.net.URI java.nio.charset.Charset int java.lang.String java.lang.String
      StackMap stack: io.micronaut.http.uri.QueryStringDecoder java.lang.String
         7: putfield io.micronaut.http.uri.QueryStringDecoder.uri:Ljava/lang/String;
         8: .line 169
            aload 0 /* this */
            aload 2 /* charset */
            ldc "charset"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.nio.charset.Charset
            putfield io.micronaut.http.uri.QueryStringDecoder.charset:Ljava/nio/charset/Charset;
         9: .line 170
            aload 0 /* this */
            ldc "maxParams"
            iload 3 /* maxParams */
            invokestatic io.micronaut.core.util.ArgumentUtils.requirePositive:(Ljava/lang/String;I)I
            putfield io.micronaut.http.uri.QueryStringDecoder.maxParams:I
        10: .line 171
            aload 0 /* this */
            aload 4 /* rawPath */
            invokevirtual java.lang.String.length:()I
            putfield io.micronaut.http.uri.QueryStringDecoder.pathEndIdx:I
        11: .line 172
            return
        end local 5 // java.lang.String rawQuery
        end local 4 // java.lang.String rawPath
        end local 3 // int maxParams
        end local 2 // java.nio.charset.Charset charset
        end local 1 // java.net.URI uri
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lio/micronaut/http/uri/QueryStringDecoder;
            0   12     1        uri  Ljava/net/URI;
            0   12     2    charset  Ljava/nio/charset/Charset;
            0   12     3  maxParams  I
            2   12     4    rawPath  Ljava/lang/String;
            5   12     5   rawQuery  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      uri        
      charset    
      maxParams  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
         0: .line 176
            aload 0 /* this */
            invokevirtual io.micronaut.http.uri.QueryStringDecoder.uri:()Ljava/lang/String;
            areturn
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/micronaut/http/uri/QueryStringDecoder;

  public java.lang.String uri();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
         0: .line 183
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.uri:Ljava/lang/String;
            areturn
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/micronaut/http/uri/QueryStringDecoder;

  public java.lang.String path();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
         0: .line 190
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.path:Ljava/lang/String;
            ifnonnull 2
         1: .line 191
            aload 0 /* this */
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.uri:Ljava/lang/String;
            iconst_0
            aload 0 /* this */
            invokevirtual io.micronaut.http.uri.QueryStringDecoder.pathEndIdx:()I
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.charset:Ljava/nio/charset/Charset;
            iconst_1
            invokestatic io.micronaut.http.uri.QueryStringDecoder.decodeComponent:(Ljava/lang/String;IILjava/nio/charset/Charset;Z)Ljava/lang/String;
            putfield io.micronaut.http.uri.QueryStringDecoder.path:Ljava/lang/String;
         2: .line 193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.path:Ljava/lang/String;
            areturn
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/micronaut/http/uri/QueryStringDecoder;

  public java.util.Map<java.lang.String, java.util.List<java.lang.String>> parameters();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
         0: .line 200
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.params:Ljava/util/Map;
            ifnonnull 2
         1: .line 201
            aload 0 /* this */
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.uri:Ljava/lang/String;
            aload 0 /* this */
            invokevirtual io.micronaut.http.uri.QueryStringDecoder.pathEndIdx:()I
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.charset:Ljava/nio/charset/Charset;
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.maxParams:I
            invokestatic io.micronaut.http.uri.QueryStringDecoder.decodeParams:(Ljava/lang/String;ILjava/nio/charset/Charset;I)Ljava/util/Map;
            putfield io.micronaut.http.uri.QueryStringDecoder.params:Ljava/util/Map;
         2: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.params:Ljava/util/Map;
            areturn
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/micronaut/http/uri/QueryStringDecoder;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;

  public java.lang.String rawPath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
         0: .line 210
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.uri:Ljava/lang/String;
            iconst_0
            aload 0 /* this */
            invokevirtual io.micronaut.http.uri.QueryStringDecoder.pathEndIdx:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/micronaut/http/uri/QueryStringDecoder;

  public java.lang.String rawQuery();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
         0: .line 217
            aload 0 /* this */
            invokevirtual io.micronaut.http.uri.QueryStringDecoder.pathEndIdx:()I
            iconst_1
            iadd
            istore 1 /* start */
        start local 1 // int start
         1: .line 218
            iload 1 /* start */
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.uri:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 2
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.uri:Ljava/lang/String;
            iload 1 /* start */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            goto 3
      StackMap locals: int
      StackMap stack:
         2: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 1 // int start
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lio/micronaut/http/uri/QueryStringDecoder;
            1    4     1  start  I

  private int pathEndIdx();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.micronaut.http.uri.QueryStringDecoder this
         0: .line 222
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.pathEndIdx:I
            iconst_m1
            if_icmpne 2
         1: .line 223
            aload 0 /* this */
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.uri:Ljava/lang/String;
            invokestatic io.micronaut.http.uri.QueryStringDecoder.findPathEndIndex:(Ljava/lang/String;)I
            putfield io.micronaut.http.uri.QueryStringDecoder.pathEndIdx:I
         2: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.micronaut.http.uri.QueryStringDecoder.pathEndIdx:I
            ireturn
        end local 0 // io.micronaut.http.uri.QueryStringDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/micronaut/http/uri/QueryStringDecoder;

  private static java.util.Map<java.lang.String, java.util.List<java.lang.String>> decodeParams(java.lang.String, int, java.nio.charset.Charset, int);
    descriptor: (Ljava/lang/String;ILjava/nio/charset/Charset;I)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // java.lang.String s
        start local 1 // int from
        start local 2 // java.nio.charset.Charset charset
        start local 3 // int paramsLimit
         0: .line 229
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            istore 4 /* len */
        start local 4 // int len
         1: .line 230
            iload 1 /* from */
            iload 4 /* len */
            if_icmplt 3
         2: .line 231
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            areturn
         3: .line 233
      StackMap locals: int
      StackMap stack:
            aload 0 /* s */
            iload 1 /* from */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 63
            if_icmpne 5
         4: .line 234
            iinc 1 /* from */ 1
         5: .line 236
      StackMap locals:
      StackMap stack:
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 5 /* params */
        start local 5 // java.util.Map params
         6: .line 237
            iload 1 /* from */
            istore 6 /* nameStart */
        start local 6 // int nameStart
         7: .line 238
            iconst_m1
            istore 7 /* valueStart */
        start local 7 // int valueStart
         8: .line 241
            iload 1 /* from */
            istore 8 /* i */
        start local 8 // int i
         9: goto 25
        10: .line 242
      StackMap locals: java.lang.String int java.nio.charset.Charset int int java.util.Map int int int
      StackMap stack:
            aload 0 /* s */
            iload 8 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            lookupswitch { // 4
                   35: 23
                   38: 17
                   59: 17
                   61: 11
              default: 24
          }
        11: .line 244
      StackMap locals:
      StackMap stack:
            iload 6 /* nameStart */
            iload 8 /* i */
            if_icmpne 14
        12: .line 245
            iload 8 /* i */
            iconst_1
            iadd
            istore 6 /* nameStart */
        13: .line 246
            goto 24
      StackMap locals:
      StackMap stack:
        14: iload 7 /* valueStart */
            iload 6 /* nameStart */
            if_icmpge 24
        15: .line 247
            iload 8 /* i */
            iconst_1
            iadd
            istore 7 /* valueStart */
        16: .line 249
            goto 24
        17: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            iload 6 /* nameStart */
            iload 7 /* valueStart */
            iload 8 /* i */
            aload 5 /* params */
            aload 2 /* charset */
            invokestatic io.micronaut.http.uri.QueryStringDecoder.addParam:(Ljava/lang/String;IIILjava/util/Map;Ljava/nio/charset/Charset;)Z
            ifeq 21
        18: .line 253
            iinc 3 /* paramsLimit */ -1
        19: .line 254
            iload 3 /* paramsLimit */
            ifne 21
        20: .line 255
            aload 5 /* params */
            areturn
        21: .line 258
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            iconst_1
            iadd
            istore 6 /* nameStart */
        22: .line 259
            goto 24
        23: .line 261
      StackMap locals:
      StackMap stack:
            goto 26
        24: .line 241
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 8 /* i */
            iload 4 /* len */
            if_icmplt 10
        26: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            iload 6 /* nameStart */
            iload 7 /* valueStart */
            iload 8 /* i */
            aload 5 /* params */
            aload 2 /* charset */
            invokestatic io.micronaut.http.uri.QueryStringDecoder.addParam:(Ljava/lang/String;IIILjava/util/Map;Ljava/nio/charset/Charset;)Z
            pop
        27: .line 267
            aload 5 /* params */
            areturn
        end local 8 // int i
        end local 7 // int valueStart
        end local 6 // int nameStart
        end local 5 // java.util.Map params
        end local 4 // int len
        end local 3 // int paramsLimit
        end local 2 // java.nio.charset.Charset charset
        end local 1 // int from
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   28     0            s  Ljava/lang/String;
            0   28     1         from  I
            0   28     2      charset  Ljava/nio/charset/Charset;
            0   28     3  paramsLimit  I
            1   28     4          len  I
            6   28     5       params  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            7   28     6    nameStart  I
            8   28     7   valueStart  I
            9   28     8            i  I
    Signature: (Ljava/lang/String;ILjava/nio/charset/Charset;I)Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
             Name  Flags
      s            
      from         
      charset      
      paramsLimit  

  public static java.lang.String decodeComponent(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 282
            aload 0 /* s */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokestatic io.micronaut.http.uri.QueryStringDecoder.decodeComponent:(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     final

  private static java.lang.String decodeComponent(java.lang.String, java.nio.charset.Charset);
    descriptor: (Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.String s
        start local 1 // java.nio.charset.Charset charset
         0: .line 308
            aload 0 /* s */
            ifnonnull 2
         1: .line 309
            ldc ""
            areturn
         2: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            iconst_0
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            aload 1 /* charset */
            iconst_0
            invokestatic io.micronaut.http.uri.QueryStringDecoder.decodeComponent:(Ljava/lang/String;IILjava/nio/charset/Charset;Z)Ljava/lang/String;
            areturn
        end local 1 // java.nio.charset.Charset charset
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0        s  Ljava/lang/String;
            0    3     1  charset  Ljava/nio/charset/Charset;
    MethodParameters:
         Name  Flags
      s        final
      charset  final

  private static boolean addParam(java.lang.String, int, int, int, java.util.Map<java.lang.String, java.util.List<java.lang.String>>, java.nio.charset.Charset);
    descriptor: (Ljava/lang/String;IIILjava/util/Map;Ljava/nio/charset/Charset;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=6
        start local 0 // java.lang.String s
        start local 1 // int nameStart
        start local 2 // int valueStart
        start local 3 // int valueEnd
        start local 4 // java.util.Map params
        start local 5 // java.nio.charset.Charset charset
         0: .line 316
            iload 1 /* nameStart */
            iload 3 /* valueEnd */
            if_icmplt 2
         1: .line 317
            iconst_0
            ireturn
         2: .line 319
      StackMap locals:
      StackMap stack:
            iload 2 /* valueStart */
            iload 1 /* nameStart */
            if_icmpgt 4
         3: .line 320
            iload 3 /* valueEnd */
            iconst_1
            iadd
            istore 2 /* valueStart */
         4: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            iload 1 /* nameStart */
            iload 2 /* valueStart */
            iconst_1
            isub
            aload 5 /* charset */
            iconst_0
            invokestatic io.micronaut.http.uri.QueryStringDecoder.decodeComponent:(Ljava/lang/String;IILjava/nio/charset/Charset;Z)Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         5: .line 323
            aload 0 /* s */
            iload 2 /* valueStart */
            iload 3 /* valueEnd */
            aload 5 /* charset */
            iconst_0
            invokestatic io.micronaut.http.uri.QueryStringDecoder.decodeComponent:(Ljava/lang/String;IILjava/nio/charset/Charset;Z)Ljava/lang/String;
            astore 7 /* value */
        start local 7 // java.lang.String value
         6: .line 324
            aload 4 /* params */
            aload 6 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 8 /* values */
        start local 8 // java.util.List values
         7: .line 325
            aload 8 /* values */
            ifnonnull 10
         8: .line 326
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 8 /* values */
         9: .line 327
            aload 4 /* params */
            aload 6 /* name */
            aload 8 /* values */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 329
      StackMap locals: java.lang.String java.lang.String java.util.List
      StackMap stack:
            aload 8 /* values */
            aload 7 /* value */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 330
            iconst_1
            ireturn
        end local 8 // java.util.List values
        end local 7 // java.lang.String value
        end local 6 // java.lang.String name
        end local 5 // java.nio.charset.Charset charset
        end local 4 // java.util.Map params
        end local 3 // int valueEnd
        end local 2 // int valueStart
        end local 1 // int nameStart
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0           s  Ljava/lang/String;
            0   12     1   nameStart  I
            0   12     2  valueStart  I
            0   12     3    valueEnd  I
            0   12     4      params  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            0   12     5     charset  Ljava/nio/charset/Charset;
            5   12     6        name  Ljava/lang/String;
            6   12     7       value  Ljava/lang/String;
            7   12     8      values  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;IIILjava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;Ljava/nio/charset/Charset;)Z
    MethodParameters:
            Name  Flags
      s           
      nameStart   
      valueStart  
      valueEnd    
      params      
      charset     

  private static java.lang.String decodeComponent(java.lang.String, int, int, java.nio.charset.Charset, boolean);
    descriptor: (Ljava/lang/String;IILjava/nio/charset/Charset;Z)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=16, args_size=5
        start local 0 // java.lang.String s
        start local 1 // int from
        start local 2 // int toExcluded
        start local 3 // java.nio.charset.Charset charset
        start local 4 // boolean isPath
         0: .line 334
            iload 2 /* toExcluded */
            iload 1 /* from */
            isub
            istore 5 /* len */
        start local 5 // int len
         1: .line 335
            iload 5 /* len */
            ifgt 3
         2: .line 336
            ldc ""
            areturn
         3: .line 338
      StackMap locals: int
      StackMap stack:
            iconst_m1
            istore 6 /* firstEscaped */
        start local 6 // int firstEscaped
         4: .line 339
            iload 1 /* from */
            istore 7 /* i */
        start local 7 // int i
         5: goto 11
         6: .line 340
      StackMap locals: int int
      StackMap stack:
            aload 0 /* s */
            iload 7 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 8 /* c */
        start local 8 // char c
         7: .line 341
            iload 8 /* c */
            bipush 37
            if_icmpeq 8
            iload 8 /* c */
            bipush 43
            if_icmpne 10
            iload 4 /* isPath */
            ifne 10
         8: .line 342
      StackMap locals: int
      StackMap stack:
            iload 7 /* i */
            istore 6 /* firstEscaped */
         9: .line 343
            goto 12
        end local 8 // char c
        10: .line 339
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 7 /* i */
            iload 2 /* toExcluded */
            if_icmplt 6
        end local 7 // int i
        12: .line 346
      StackMap locals:
      StackMap stack:
            iload 6 /* firstEscaped */
            iconst_m1
            if_icmpne 14
        13: .line 347
            aload 0 /* s */
            iload 1 /* from */
            iload 2 /* toExcluded */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        14: .line 350
      StackMap locals:
      StackMap stack:
            aload 3 /* charset */
            invokevirtual java.nio.charset.Charset.newDecoder:()Ljava/nio/charset/CharsetDecoder;
            astore 7 /* decoder */
        start local 7 // java.nio.charset.CharsetDecoder decoder
        15: .line 353
            iload 2 /* toExcluded */
            iload 6 /* firstEscaped */
            isub
            iconst_3
            idiv
            istore 8 /* decodedCapacity */
        start local 8 // int decodedCapacity
        16: .line 354
            iload 8 /* decodedCapacity */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 9 /* byteBuf */
        start local 9 // java.nio.ByteBuffer byteBuf
        17: .line 355
            iload 8 /* decodedCapacity */
            invokestatic java.nio.CharBuffer.allocate:(I)Ljava/nio/CharBuffer;
            astore 10 /* charBuf */
        start local 10 // java.nio.CharBuffer charBuf
        18: .line 357
            new java.lang.StringBuilder
            dup
            iload 5 /* len */
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 11 /* strBuf */
        start local 11 // java.lang.StringBuilder strBuf
        19: .line 358
            aload 11 /* strBuf */
            aload 0 /* s */
            iload 1 /* from */
            iload 6 /* firstEscaped */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
            pop
        20: .line 360
            iload 6 /* firstEscaped */
            istore 12 /* i */
        start local 12 // int i
        21: goto 49
        22: .line 361
      StackMap locals: java.lang.String int int java.nio.charset.Charset int int int java.nio.charset.CharsetDecoder int java.nio.ByteBuffer java.nio.CharBuffer java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* s */
            iload 12 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 13 /* c */
        start local 13 // char c
        23: .line 362
            iload 13 /* c */
            bipush 37
            if_icmpeq 29
        24: .line 363
            aload 11 /* strBuf */
            iload 13 /* c */
            bipush 43
            if_icmpne 25
            iload 4 /* isPath */
            ifeq 26
      StackMap locals: java.lang.String int int java.nio.charset.Charset int int int java.nio.charset.CharsetDecoder int java.nio.ByteBuffer java.nio.CharBuffer java.lang.StringBuilder int int
      StackMap stack: java.lang.StringBuilder
        25: iload 13 /* c */
            goto 27
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        26: bipush 32
      StackMap locals: java.lang.String int int java.nio.charset.Charset int int int java.nio.charset.CharsetDecoder int java.nio.ByteBuffer java.nio.CharBuffer java.lang.StringBuilder int int
      StackMap stack: java.lang.StringBuilder int
        27: invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        28: .line 364
            goto 48
        29: .line 367
      StackMap locals:
      StackMap stack:
            aload 9 /* byteBuf */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        30: .line 369
      StackMap locals:
      StackMap stack:
            iload 12 /* i */
            iconst_3
            iadd
            iload 2 /* toExcluded */
            if_icmple 32
        31: .line 370
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unterminated escape sequence at index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 12 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " of: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* s */
            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
        32: .line 372
      StackMap locals:
      StackMap stack:
            aload 9 /* byteBuf */
            aload 0 /* s */
            iload 12 /* i */
            iconst_1
            iadd
            invokestatic io.micronaut.http.uri.QueryStringDecoder.decodeHexByte:(Ljava/lang/CharSequence;I)B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        33: .line 373
            iinc 12 /* i */ 3
        34: .line 374
            iload 12 /* i */
            iload 2 /* toExcluded */
            if_icmpge 35
            aload 0 /* s */
            iload 12 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 37
            if_icmpeq 30
        35: .line 375
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ -1
        36: .line 377
            aload 9 /* byteBuf */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        37: .line 378
            aload 10 /* charBuf */
            invokevirtual java.nio.CharBuffer.clear:()Ljava/nio/Buffer;
            pop
        38: .line 379
            aload 7 /* decoder */
            invokevirtual java.nio.charset.CharsetDecoder.reset:()Ljava/nio/charset/CharsetDecoder;
            aload 9 /* byteBuf */
            aload 10 /* charBuf */
            iconst_1
            invokevirtual java.nio.charset.CharsetDecoder.decode:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;
            astore 14 /* result */
        start local 14 // java.nio.charset.CoderResult result
        39: .line 381
            aload 14 /* result */
            invokevirtual java.nio.charset.CoderResult.isUnderflow:()Z
            ifne 41
        40: .line 382
            aload 14 /* result */
            invokevirtual java.nio.charset.CoderResult.throwException:()V
        41: .line 384
      StackMap locals: java.nio.charset.CoderResult
      StackMap stack:
            aload 7 /* decoder */
            aload 10 /* charBuf */
            invokevirtual java.nio.charset.CharsetDecoder.flush:(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
            astore 14 /* result */
        42: .line 385
            aload 14 /* result */
            invokevirtual java.nio.charset.CoderResult.isUnderflow:()Z
            ifne 47
        43: .line 386
            aload 14 /* result */
            invokevirtual java.nio.charset.CoderResult.throwException:()V
        44: .line 388
            goto 47
      StackMap locals:
      StackMap stack: java.nio.charset.CharacterCodingException
        45: astore 15 /* ex */
        start local 15 // java.nio.charset.CharacterCodingException ex
        46: .line 389
            new java.lang.IllegalStateException
            dup
            aload 15 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 15 // java.nio.charset.CharacterCodingException ex
        47: .line 391
      StackMap locals:
      StackMap stack:
            aload 11 /* strBuf */
            aload 10 /* charBuf */
            invokevirtual java.nio.CharBuffer.flip:()Ljava/nio/Buffer;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        end local 14 // java.nio.charset.CoderResult result
        end local 13 // char c
        48: .line 360
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        49: iload 12 /* i */
            iload 2 /* toExcluded */
            if_icmplt 22
        end local 12 // int i
        50: .line 393
            aload 11 /* strBuf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 11 // java.lang.StringBuilder strBuf
        end local 10 // java.nio.CharBuffer charBuf
        end local 9 // java.nio.ByteBuffer byteBuf
        end local 8 // int decodedCapacity
        end local 7 // java.nio.charset.CharsetDecoder decoder
        end local 6 // int firstEscaped
        end local 5 // int len
        end local 4 // boolean isPath
        end local 3 // java.nio.charset.Charset charset
        end local 2 // int toExcluded
        end local 1 // int from
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   51     0                s  Ljava/lang/String;
            0   51     1             from  I
            0   51     2       toExcluded  I
            0   51     3          charset  Ljava/nio/charset/Charset;
            0   51     4           isPath  Z
            1   51     5              len  I
            4   51     6     firstEscaped  I
            5   12     7                i  I
            7   10     8                c  C
           15   51     7          decoder  Ljava/nio/charset/CharsetDecoder;
           16   51     8  decodedCapacity  I
           17   51     9          byteBuf  Ljava/nio/ByteBuffer;
           18   51    10          charBuf  Ljava/nio/CharBuffer;
           19   51    11           strBuf  Ljava/lang/StringBuilder;
           21   50    12                i  I
           23   48    13                c  C
           39   48    14           result  Ljava/nio/charset/CoderResult;
           46   47    15               ex  Ljava/nio/charset/CharacterCodingException;
      Exception table:
        from    to  target  type
          39    44      45  Class java.nio.charset.CharacterCodingException
    MethodParameters:
            Name  Flags
      s           
      from        
      toExcluded  
      charset     
      isPath      

  private static int findPathEndIndex(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.String uri
         0: .line 397
            aload 0 /* uri */
            invokevirtual java.lang.String.length:()I
            istore 1 /* len */
        start local 1 // int len
         1: .line 398
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 399
      StackMap locals: int int
      StackMap stack:
            aload 0 /* uri */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* c */
        start local 3 // char c
         4: .line 400
            iload 3 /* c */
            bipush 63
            if_icmpeq 5
            iload 3 /* c */
            bipush 35
            if_icmpne 6
         5: .line 401
      StackMap locals: int
      StackMap stack:
            iload 2 /* i */
            ireturn
        end local 3 // char c
         6: .line 398
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            iload 1 /* len */
            if_icmplt 3
        end local 2 // int i
         8: .line 404
            iload 1 /* len */
            ireturn
        end local 1 // int len
        end local 0 // java.lang.String uri
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0   uri  Ljava/lang/String;
            1    9     1   len  I
            2    8     2     i  I
            4    6     3     c  C
    MethodParameters:
      Name  Flags
      uri   

  private static byte decodeHexByte(java.lang.CharSequence, int);
    descriptor: (Ljava/lang/CharSequence;I)B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=4, args_size=2
        start local 0 // java.lang.CharSequence s
        start local 1 // int pos
         0: .line 408
            aload 0 /* s */
            iload 1 /* pos */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            invokestatic io.micronaut.http.uri.QueryStringDecoder.decodeHexNibble:(C)I
            istore 2 /* hi */
        start local 2 // int hi
         1: .line 409
            aload 0 /* s */
            iload 1 /* pos */
            iconst_1
            iadd
            invokeinterface java.lang.CharSequence.charAt:(I)C
            invokestatic io.micronaut.http.uri.QueryStringDecoder.decodeHexNibble:(C)I
            istore 3 /* lo */
        start local 3 // int lo
         2: .line 410
            iload 2 /* hi */
            iconst_m1
            if_icmpeq 3
            iload 3 /* lo */
            iconst_m1
            if_icmpne 6
         3: .line 411
      StackMap locals: int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         4: .line 412
            ldc "invalid hex byte '%s' at index %d of '%s'"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* s */
            iload 1 /* pos */
            iload 1 /* pos */
            iconst_2
            iadd
            invokeinterface java.lang.CharSequence.subSequence:(II)Ljava/lang/CharSequence;
            aastore
            dup
            iconst_1
            iload 1 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 0 /* s */
            aastore
         5: .line 411
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 414
      StackMap locals:
      StackMap stack:
            iload 2 /* hi */
            iconst_4
            ishl
            iload 3 /* lo */
            iadd
            i2b
            ireturn
        end local 3 // int lo
        end local 2 // int hi
        end local 1 // int pos
        end local 0 // java.lang.CharSequence s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     s  Ljava/lang/CharSequence;
            0    7     1   pos  I
            1    7     2    hi  I
            2    7     3    lo  I
    MethodParameters:
      Name  Flags
      s     
      pos   

  private static int decodeHexNibble(char);
    descriptor: (C)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 420
            iload 0 /* c */
            bipush 48
            if_icmplt 2
            iload 0 /* c */
            bipush 57
            if_icmpgt 2
         1: .line 421
            iload 0 /* c */
            bipush 48
            isub
            ireturn
         2: .line 423
      StackMap locals:
      StackMap stack:
            iload 0 /* c */
            bipush 65
            if_icmplt 4
            iload 0 /* c */
            bipush 70
            if_icmpgt 4
         3: .line 424
            iload 0 /* c */
            bipush 55
            isub
            ireturn
         4: .line 426
      StackMap locals:
      StackMap stack:
            iload 0 /* c */
            bipush 97
            if_icmplt 6
            iload 0 /* c */
            bipush 102
            if_icmpgt 6
         5: .line 427
            iload 0 /* c */
            bipush 87
            isub
            ireturn
         6: .line 429
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     c  C
    MethodParameters:
      Name  Flags
      c     final
}
SourceFile: "QueryStringDecoder.java"
    RuntimeVisibleAnnotations: 
      io.micronaut.core.annotation.Internal()