final class io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverterAndValidator extends io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverter
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverterAndValidator
  super_class: io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverter
{
  static final io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverterAndValidator INSTANCE;
    descriptor: Lio/netty/handler/codec/http/DefaultHttpHeaders$HeaderValueConverterAndValidator;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 434
            new io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverterAndValidator
            dup
            invokespecial io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverterAndValidator.<init>:()V
            putstatic io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverterAndValidator.INSTANCE:Lio/netty/handler/codec/http/DefaultHttpHeaders$HeaderValueConverterAndValidator;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverterAndValidator this
         0: .line 433
            aload 0 /* this */
            invokespecial io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverter.<init>:()V
            return
        end local 0 // io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverterAndValidator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/codec/http/DefaultHttpHeaders$HeaderValueConverterAndValidator;

  public java.lang.CharSequence convertObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/CharSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverterAndValidator this
        start local 1 // java.lang.Object value
         0: .line 438
            aload 0 /* this */
            aload 1 /* value */
            invokespecial io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverter.convertObject:(Ljava/lang/Object;)Ljava/lang/CharSequence;
            astore 2 /* seq */
        start local 2 // java.lang.CharSequence seq
         1: .line 439
            iconst_0
            istore 3 /* state */
        start local 3 // int state
         2: .line 441
            iconst_0
            istore 4 /* index */
        start local 4 // int index
         3: goto 6
         4: .line 442
      StackMap locals: java.lang.CharSequence int int
      StackMap stack:
            aload 2 /* seq */
            iload 3 /* state */
            aload 2 /* seq */
            iload 4 /* index */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            invokestatic io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverterAndValidator.validateValueChar:(Ljava/lang/CharSequence;IC)I
            istore 3 /* state */
         5: .line 441
            iinc 4 /* index */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* index */
            aload 2 /* seq */
            invokeinterface java.lang.CharSequence.length:()I
            if_icmplt 4
        end local 4 // int index
         7: .line 445
            iload 3 /* state */
            ifeq 9
         8: .line 446
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "a header value must not end with '\\r' or '\\n':"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 448
      StackMap locals:
      StackMap stack:
            aload 2 /* seq */
            areturn
        end local 3 // int state
        end local 2 // java.lang.CharSequence seq
        end local 1 // java.lang.Object value
        end local 0 // io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverterAndValidator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lio/netty/handler/codec/http/DefaultHttpHeaders$HeaderValueConverterAndValidator;
            0   10     1  value  Ljava/lang/Object;
            1   10     2    seq  Ljava/lang/CharSequence;
            2   10     3  state  I
            3    7     4  index  I
    MethodParameters:
       Name  Flags
      value  

  private static int validateValueChar(java.lang.CharSequence, int, char);
    descriptor: (Ljava/lang/CharSequence;IC)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.CharSequence seq
        start local 1 // int state
        start local 2 // char character
         0: .line 458
            iload 2 /* character */
            bipush -16
            iand
            ifne 5
         1: .line 460
            iload 2 /* character */
            lookupswitch { // 3
                    0: 2
                   11: 3
                   12: 4
              default: 5
          }
         2: .line 462
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "a header value contains a prohibited character '\u0000': "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 464
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "a header value contains a prohibited character '\\v': "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 466
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "a header value contains a prohibited character '\\f': "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 471
      StackMap locals:
      StackMap stack:
            iload 1 /* state */
            tableswitch { // 0 - 2
                    0: 6
                    1: 10
                    2: 13
              default: 16
          }
         6: .line 473
      StackMap locals:
      StackMap stack:
            iload 2 /* character */
            tableswitch { // 10 - 13
                   10: 8
                   11: 9
                   12: 9
                   13: 7
              default: 9
          }
         7: .line 475
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         8: .line 477
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
         9: .line 479
      StackMap locals:
      StackMap stack:
            goto 16
        10: .line 481
      StackMap locals:
      StackMap stack:
            iload 2 /* character */
            tableswitch { // 10 - 10
                   10: 11
              default: 12
          }
        11: .line 483
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
        12: .line 485
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "only '\\n' is allowed after '\\r': "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 488
      StackMap locals:
      StackMap stack:
            iload 2 /* character */
            lookupswitch { // 2
                    9: 14
                   32: 14
              default: 15
          }
        14: .line 491
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        15: .line 493
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "only ' ' and '\\t' are allowed after '\\n': "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 496
      StackMap locals:
      StackMap stack:
            iload 1 /* state */
            ireturn
        end local 2 // char character
        end local 1 // int state
        end local 0 // java.lang.CharSequence seq
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0        seq  Ljava/lang/CharSequence;
            0   17     1      state  I
            0   17     2  character  C
    MethodParameters:
           Name  Flags
      seq        
      state      
      character  
}
SourceFile: "DefaultHttpHeaders.java"
NestHost: io.netty.handler.codec.http.DefaultHttpHeaders
InnerClasses:
  private HeaderValueConverter = io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverter of io.netty.handler.codec.http.DefaultHttpHeaders
  private final HeaderValueConverterAndValidator = io.netty.handler.codec.http.DefaultHttpHeaders$HeaderValueConverterAndValidator of io.netty.handler.codec.http.DefaultHttpHeaders