public final class org.apache.tomcat.util.buf.HexUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.tomcat.util.buf.HexUtils
  super_class: java.lang.Object
{
  private static final org.apache.tomcat.util.res.StringManager sm;
    descriptor: Lorg/apache/tomcat/util/res/StringManager;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] DEC;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final byte[] HEX;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final char[] hex;
    descriptor: [C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 30
            ldc Lorg/apache/tomcat/util/buf/HexUtils;
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
            putstatic org.apache.tomcat.util.buf.HexUtils.sm:Lorg/apache/tomcat/util/res/StringManager;
         1: .line 37
            bipush 55
            newarray 10
            dup
            iconst_1
         2: .line 38
            iconst_1
            iastore
            dup
            iconst_2
            iconst_2
            iastore
            dup
            iconst_3
            iconst_3
            iastore
            dup
            iconst_4
            iconst_4
            iastore
            dup
            iconst_5
            iconst_5
            iastore
            dup
            bipush 6
            bipush 6
            iastore
            dup
            bipush 7
            bipush 7
            iastore
            dup
            bipush 8
            bipush 8
            iastore
            dup
            bipush 9
            bipush 9
            iastore
            dup
            bipush 10
            iconst_m1
            iastore
            dup
            bipush 11
            iconst_m1
            iastore
            dup
            bipush 12
            iconst_m1
            iastore
            dup
            bipush 13
            iconst_m1
            iastore
            dup
            bipush 14
            iconst_m1
            iastore
            dup
            bipush 15
            iconst_m1
            iastore
            dup
            bipush 16
         3: .line 39
            iconst_m1
            iastore
            dup
            bipush 17
            bipush 10
            iastore
            dup
            bipush 18
            bipush 11
            iastore
            dup
            bipush 19
            bipush 12
            iastore
            dup
            bipush 20
            bipush 13
            iastore
            dup
            bipush 21
            bipush 14
            iastore
            dup
            bipush 22
            bipush 15
            iastore
            dup
            bipush 23
            iconst_m1
            iastore
            dup
            bipush 24
            iconst_m1
            iastore
            dup
            bipush 25
            iconst_m1
            iastore
            dup
            bipush 26
            iconst_m1
            iastore
            dup
            bipush 27
            iconst_m1
            iastore
            dup
            bipush 28
            iconst_m1
            iastore
            dup
            bipush 29
            iconst_m1
            iastore
            dup
            bipush 30
            iconst_m1
            iastore
            dup
            bipush 31
            iconst_m1
            iastore
            dup
            bipush 32
         4: .line 40
            iconst_m1
            iastore
            dup
            bipush 33
            iconst_m1
            iastore
            dup
            bipush 34
            iconst_m1
            iastore
            dup
            bipush 35
            iconst_m1
            iastore
            dup
            bipush 36
            iconst_m1
            iastore
            dup
            bipush 37
            iconst_m1
            iastore
            dup
            bipush 38
            iconst_m1
            iastore
            dup
            bipush 39
            iconst_m1
            iastore
            dup
            bipush 40
            iconst_m1
            iastore
            dup
            bipush 41
            iconst_m1
            iastore
            dup
            bipush 42
            iconst_m1
            iastore
            dup
            bipush 43
            iconst_m1
            iastore
            dup
            bipush 44
            iconst_m1
            iastore
            dup
            bipush 45
            iconst_m1
            iastore
            dup
            bipush 46
            iconst_m1
            iastore
            dup
            bipush 47
            iconst_m1
            iastore
            dup
            bipush 48
         5: .line 41
            iconst_m1
            iastore
            dup
            bipush 49
            bipush 10
            iastore
            dup
            bipush 50
            bipush 11
            iastore
            dup
            bipush 51
            bipush 12
            iastore
            dup
            bipush 52
            bipush 13
            iastore
            dup
            bipush 53
            bipush 14
            iastore
            dup
            bipush 54
            bipush 15
            iastore
         6: .line 37
            putstatic org.apache.tomcat.util.buf.HexUtils.DEC:[I
         7: .line 49
            bipush 16
            newarray 8
            dup
            iconst_0
            bipush 48
            bastore
            dup
            iconst_1
            bipush 49
            bastore
            dup
            iconst_2
            bipush 50
            bastore
            dup
            iconst_3
            bipush 51
            bastore
            dup
            iconst_4
            bipush 52
            bastore
            dup
            iconst_5
            bipush 53
            bastore
            dup
            bipush 6
         8: .line 50
            bipush 54
            bastore
            dup
            bipush 7
            bipush 55
            bastore
            dup
            bipush 8
            bipush 56
            bastore
            dup
            bipush 9
            bipush 57
            bastore
            dup
            bipush 10
            bipush 97
            bastore
            dup
            bipush 11
            bipush 98
            bastore
            dup
            bipush 12
         9: .line 51
            bipush 99
            bastore
            dup
            bipush 13
            bipush 100
            bastore
            dup
            bipush 14
            bipush 101
            bastore
            dup
            bipush 15
            bipush 102
            bastore
        10: .line 48
            putstatic org.apache.tomcat.util.buf.HexUtils.HEX:[B
        11: .line 57
            ldc "0123456789abcdef"
            invokevirtual java.lang.String.toCharArray:()[C
            putstatic org.apache.tomcat.util.buf.HexUtils.hex:[C
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.buf.HexUtils this
         0: .line 28
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.tomcat.util.buf.HexUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/buf/HexUtils;

  public static int getDec(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int index
         0: .line 65
            getstatic org.apache.tomcat.util.buf.HexUtils.DEC:[I
            iload 0 /* index */
            bipush 48
            isub
            iaload
         1: ireturn
         2: .line 66
      StackMap locals:
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
            pop
         3: .line 67
            iconst_m1
            ireturn
        end local 0 // int index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  index  I
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
       Name  Flags
      index  

  public static byte getHex(int);
    descriptor: (I)B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int index
         0: .line 73
            getstatic org.apache.tomcat.util.buf.HexUtils.HEX:[B
            iload 0 /* index */
            baload
            ireturn
        end local 0 // int index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  index  I
    MethodParameters:
       Name  Flags
      index  

  public static java.lang.String toHexString(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // byte[] bytes
         0: .line 78
            aload 0 /* bytes */
            ifnonnull 2
         1: .line 79
            aconst_null
            areturn
         2: .line 82
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* bytes */
            arraylength
            iconst_1
            ishl
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         3: .line 84
            aload 0 /* bytes */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: byte[] java.lang.StringBuilder top int int byte[]
      StackMap stack:
         4: aload 5
            iload 3
            baload
            istore 2 /* aByte */
        start local 2 // byte aByte
         5: .line 85
            aload 1 /* sb */
            getstatic org.apache.tomcat.util.buf.HexUtils.hex:[C
            iload 2 /* aByte */
            sipush 240
            iand
            iconst_4
            ishr
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         6: .line 86
            getstatic org.apache.tomcat.util.buf.HexUtils.hex:[C
            iload 2 /* aByte */
            bipush 15
            iand
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 2 // byte aByte
         7: .line 84
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 4
         9: .line 90
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0  bytes  [B
            3   10     1     sb  Ljava/lang/StringBuilder;
            5    7     2  aByte  B
    MethodParameters:
       Name  Flags
      bytes  

  public static byte[] fromHexString(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.String input
         0: .line 95
            aload 0 /* input */
            ifnonnull 2
         1: .line 96
            aconst_null
            areturn
         2: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            invokevirtual java.lang.String.length:()I
            iconst_1
            iand
            iconst_1
            if_icmpne 4
         3: .line 101
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.tomcat.util.buf.HexUtils.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "hexUtils.fromHex.oddDigits"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 1 /* inputChars */
        start local 1 // char[] inputChars
         5: .line 105
            aload 0 /* input */
            invokevirtual java.lang.String.length:()I
            iconst_1
            ishr
            newarray 8
            astore 2 /* result */
        start local 2 // byte[] result
         6: .line 106
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 14
         8: .line 107
      StackMap locals: char[] byte[] int
      StackMap stack:
            aload 1 /* inputChars */
            iconst_2
            iload 3 /* i */
            imul
            caload
            invokestatic org.apache.tomcat.util.buf.HexUtils.getDec:(I)I
            istore 4 /* upperNibble */
        start local 4 // int upperNibble
         9: .line 108
            aload 1 /* inputChars */
            iconst_2
            iload 3 /* i */
            imul
            iconst_1
            iadd
            caload
            invokestatic org.apache.tomcat.util.buf.HexUtils.getDec:(I)I
            istore 5 /* lowerNibble */
        start local 5 // int lowerNibble
        10: .line 109
            iload 4 /* upperNibble */
            iflt 11
            iload 5 /* lowerNibble */
            ifge 12
        11: .line 111
      StackMap locals: int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.tomcat.util.buf.HexUtils.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "hexUtils.fromHex.nonHex"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 113
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            iload 3 /* i */
            iload 4 /* upperNibble */
            iconst_4
            ishl
            iload 5 /* lowerNibble */
            iadd
            i2b
            bastore
        end local 5 // int lowerNibble
        end local 4 // int upperNibble
        13: .line 106
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 3 /* i */
            aload 2 /* result */
            arraylength
            if_icmplt 8
        end local 3 // int i
        15: .line 115
            aload 2 /* result */
            areturn
        end local 2 // byte[] result
        end local 1 // char[] inputChars
        end local 0 // java.lang.String input
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0        input  Ljava/lang/String;
            5   16     1   inputChars  [C
            6   16     2       result  [B
            7   15     3            i  I
            9   13     4  upperNibble  I
           10   13     5  lowerNibble  I
    MethodParameters:
       Name  Flags
      input  
}
SourceFile: "HexUtils.java"