public final class it.unimi.dsi.fastutil.chars.CharArrays
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: it.unimi.dsi.fastutil.chars.CharArrays
  super_class: java.lang.Object
{
  public static final char[] EMPTY_ARRAY;
    descriptor: [C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final char[] DEFAULT_EMPTY_ARRAY;
    descriptor: [C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final int QUICKSORT_NO_REC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final int PARALLEL_QUICKSORT_NO_FORK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  private static final int QUICKSORT_MEDIAN_OF_9;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  private static final int MERGESORT_NO_REC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final int DIGIT_BITS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int DIGIT_MASK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 255

  private static final int DIGITS_PER_ELEMENT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int RADIXSORT_NO_REC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  private static final int PARALLEL_RADIXSORT_NO_FORK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  static final int RADIX_SORT_MIN_THRESHOLD;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4000

  protected static final it.unimi.dsi.fastutil.chars.CharArrays$Segment POISON_PILL;
    descriptor: Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  public static final it.unimi.dsi.fastutil.Hash$Strategy<char[]> HASH_STRATEGY;
    descriptor: Lit/unimi/dsi/fastutil/Hash$Strategy;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lit/unimi/dsi/fastutil/Hash$Strategy<[C>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 103
            iconst_0
            newarray 5
            putstatic it.unimi.dsi.fastutil.chars.CharArrays.EMPTY_ARRAY:[C
         1: .line 112
            iconst_0
            newarray 5
            putstatic it.unimi.dsi.fastutil.chars.CharArrays.DEFAULT_EMPTY_ARRAY:[C
         2: .line 2115
            new it.unimi.dsi.fastutil.chars.CharArrays$Segment
            dup
            iconst_m1
            iconst_m1
            iconst_m1
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$Segment.<init>:(III)V
            putstatic it.unimi.dsi.fastutil.chars.CharArrays.POISON_PILL:Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;
         3: .line 3193
            new it.unimi.dsi.fastutil.chars.CharArrays$ArrayHashStrategy
            dup
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$ArrayHashStrategy.<init>:()V
            putstatic it.unimi.dsi.fastutil.chars.CharArrays.HASH_STRATEGY:Lit/unimi/dsi/fastutil/Hash$Strategy;
            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 // it.unimi.dsi.fastutil.chars.CharArrays this
         0: .line 100
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 101
            return
        end local 0 // it.unimi.dsi.fastutil.chars.CharArrays this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lit/unimi/dsi/fastutil/chars/CharArrays;

  public static char[] forceCapacity(char[], int, int);
    descriptor: ([CII)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // char[] array
        start local 1 // int length
        start local 2 // int preserve
         0: .line 128
            iload 1 /* length */
            newarray 5
            astore 3 /* t */
        start local 3 // char[] t
         1: .line 129
            aload 0 /* array */
            iconst_0
            aload 3 /* t */
            iconst_0
            iload 2 /* preserve */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 130
            aload 3 /* t */
            areturn
        end local 3 // char[] t
        end local 2 // int preserve
        end local 1 // int length
        end local 0 // char[] array
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0     array  [C
            0    3     1    length  I
            0    3     2  preserve  I
            1    3     3         t  [C
    MethodParameters:
          Name  Flags
      array     final
      length    final
      preserve  final

  public static char[] ensureCapacity(char[], int);
    descriptor: ([CI)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // char[] array
        start local 1 // int length
         0: .line 148
            aload 0 /* array */
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.ensureCapacity:([CII)[C
            areturn
        end local 1 // int length
        end local 0 // char[] array
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0   array  [C
            0    1     1  length  I
    MethodParameters:
        Name  Flags
      array   final
      length  final

  public static char[] ensureCapacity(char[], int, int);
    descriptor: ([CII)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // char[] array
        start local 1 // int length
        start local 2 // int preserve
         0: .line 166
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            if_icmple 1
            aload 0 /* array */
            iload 1 /* length */
            iload 2 /* preserve */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.forceCapacity:([CII)[C
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* array */
      StackMap locals:
      StackMap stack: char[]
         2: areturn
        end local 2 // int preserve
        end local 1 // int length
        end local 0 // char[] array
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0     array  [C
            0    3     1    length  I
            0    3     2  preserve  I
    MethodParameters:
          Name  Flags
      array     final
      length    final
      preserve  final

  public static char[] grow(char[], int);
    descriptor: ([CI)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // char[] array
        start local 1 // int length
         0: .line 187
            aload 0 /* array */
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.grow:([CII)[C
            areturn
        end local 1 // int length
        end local 0 // char[] array
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0   array  [C
            0    1     1  length  I
    MethodParameters:
        Name  Flags
      array   final
      length  final

  public static char[] grow(char[], int, int);
    descriptor: ([CII)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // char[] array
        start local 1 // int length
        start local 2 // int preserve
         0: .line 211
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            if_icmple 6
         1: .line 213
            aload 0 /* array */
            arraylength
            i2l
            aload 0 /* array */
            arraylength
            iconst_1
            ishr
            i2l
            ladd
            ldc 2147483639
            invokestatic java.lang.Math.min:(JJ)J
            iload 1 /* length */
            i2l
            invokestatic java.lang.Math.max:(JJ)J
            l2i
         2: .line 212
            istore 3 /* newLength */
        start local 3 // int newLength
         3: .line 214
            iload 3 /* newLength */
            newarray 5
            astore 4 /* t */
        start local 4 // char[] t
         4: .line 215
            aload 0 /* array */
            iconst_0
            aload 4 /* t */
            iconst_0
            iload 2 /* preserve */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 216
            aload 4 /* t */
            areturn
        end local 4 // char[] t
        end local 3 // int newLength
         6: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* array */
            areturn
        end local 2 // int preserve
        end local 1 // int length
        end local 0 // char[] array
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0      array  [C
            0    7     1     length  I
            0    7     2   preserve  I
            3    6     3  newLength  I
            4    6     4          t  [C
    MethodParameters:
          Name  Flags
      array     final
      length    final
      preserve  final

  public static char[] trim(char[], int);
    descriptor: ([CI)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // char[] array
        start local 1 // int length
         0: .line 233
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            if_icmplt 2
         1: .line 234
            aload 0 /* array */
            areturn
         2: .line 235
      StackMap locals:
      StackMap stack:
            iload 1 /* length */
            ifne 3
            getstatic it.unimi.dsi.fastutil.chars.CharArrays.EMPTY_ARRAY:[C
            goto 4
      StackMap locals:
      StackMap stack:
         3: iload 1 /* length */
            newarray 5
      StackMap locals:
      StackMap stack: char[]
         4: astore 2 /* t */
        start local 2 // char[] t
         5: .line 236
            aload 0 /* array */
            iconst_0
            aload 2 /* t */
            iconst_0
            iload 1 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 237
            aload 2 /* t */
            areturn
        end local 2 // char[] t
        end local 1 // int length
        end local 0 // char[] array
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0   array  [C
            0    7     1  length  I
            5    7     2       t  [C
    MethodParameters:
        Name  Flags
      array   final
      length  final

  public static char[] setLength(char[], int);
    descriptor: ([CI)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // char[] array
        start local 1 // int length
         0: .line 255
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            if_icmpne 2
         1: .line 256
            aload 0 /* array */
            areturn
         2: .line 257
      StackMap locals:
      StackMap stack:
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            if_icmpge 4
         3: .line 258
            aload 0 /* array */
            iload 1 /* length */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.trim:([CI)[C
            areturn
         4: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* array */
            iload 1 /* length */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.ensureCapacity:([CI)[C
            areturn
        end local 1 // int length
        end local 0 // char[] array
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0   array  [C
            0    5     1  length  I
    MethodParameters:
        Name  Flags
      array   final
      length  final

  public static char[] copy(char[], int, int);
    descriptor: ([CII)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // char[] array
        start local 1 // int offset
        start local 2 // int length
         0: .line 274
            aload 0 /* array */
            iload 1 /* offset */
            iload 2 /* length */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.ensureOffsetLength:([CII)V
         1: .line 275
            iload 2 /* length */
            ifne 2
            getstatic it.unimi.dsi.fastutil.chars.CharArrays.EMPTY_ARRAY:[C
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 2 /* length */
            newarray 5
      StackMap locals:
      StackMap stack: char[]
         3: astore 3 /* a */
        start local 3 // char[] a
         4: .line 276
            aload 0 /* array */
            iload 1 /* offset */
            aload 3 /* a */
            iconst_0
            iload 2 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 277
            aload 3 /* a */
            areturn
        end local 3 // char[] a
        end local 2 // int length
        end local 1 // int offset
        end local 0 // char[] array
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0   array  [C
            0    6     1  offset  I
            0    6     2  length  I
            4    6     3       a  [C
    MethodParameters:
        Name  Flags
      array   final
      offset  final
      length  final

  public static char[] copy(char[]);
    descriptor: ([C)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // char[] array
         0: .line 287
            aload 0 /* array */
            invokevirtual char[].clone:()Ljava/lang/Object;
            checkcast char[]
            areturn
        end local 0 // char[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  array  [C
    MethodParameters:
       Name  Flags
      array  final

  public static void fill(char[], char);
    descriptor: ([CC)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // char[] array
        start local 1 // char value
         0: .line 300
            aload 0 /* array */
            arraylength
            istore 2 /* i */
        start local 2 // int i
         1: .line 301
            goto 3
         2: .line 302
      StackMap locals: int
      StackMap stack:
            aload 0 /* array */
            iload 2 /* i */
            iload 1 /* value */
            castore
         3: .line 301
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iinc 2 /* i */ -1
            ifne 2
         4: .line 303
            return
        end local 2 // int i
        end local 1 // char value
        end local 0 // char[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  array  [C
            0    5     1  value  C
            1    5     2      i  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      array  final
      value  final

  public static void fill(char[], int, int, char);
    descriptor: ([CIIC)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // char[] array
        start local 1 // int from
        start local 2 // int to
        start local 3 // char value
         0: .line 320
            aload 0 /* array */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.ensureFromTo:([CII)V
         1: .line 321
            iload 1 /* from */
            ifne 6
         2: .line 322
            goto 4
         3: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* array */
            iload 2 /* to */
            iload 3 /* value */
            castore
         4: .line 322
      StackMap locals:
      StackMap stack:
            iload 2 /* to */
            iinc 2 /* to */ -1
            ifne 3
         5: .line 323
            goto 11
         6: .line 325
      StackMap locals:
      StackMap stack:
            iload 1 /* from */
            istore 4 /* i */
        start local 4 // int i
         7: goto 10
         8: .line 326
      StackMap locals: int
      StackMap stack:
            aload 0 /* array */
            iload 4 /* i */
            iload 3 /* value */
            castore
         9: .line 325
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            iload 2 /* to */
            if_icmplt 8
        end local 4 // int i
        11: .line 327
      StackMap locals:
      StackMap stack:
            return
        end local 3 // char value
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0  array  [C
            0   12     1   from  I
            0   12     2     to  I
            0   12     3  value  C
            7   11     4      i  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      array  final
      from   final
      to     
      value  final

  public static boolean equals(char[], char[]);
    descriptor: ([C[C)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // char[] a1
        start local 1 // char[] a2
         0: .line 342
            aload 0 /* a1 */
            arraylength
            istore 2 /* i */
        start local 2 // int i
         1: .line 343
            iload 2 /* i */
            aload 1 /* a2 */
            arraylength
            if_icmpeq 5
         2: .line 344
            iconst_0
            ireturn
         3: .line 346
      StackMap locals: int
      StackMap stack:
            aload 0 /* a1 */
            iload 2 /* i */
            caload
            aload 1 /* a2 */
            iload 2 /* i */
            caload
            if_icmpeq 5
         4: .line 347
            iconst_0
            ireturn
         5: .line 345
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iinc 2 /* i */ -1
            ifne 3
         6: .line 348
            iconst_1
            ireturn
        end local 2 // int i
        end local 1 // char[] a2
        end local 0 // char[] a1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0    a1  [C
            0    7     1    a2  [C
            1    7     2     i  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      a1    final
      a2    final

  public static void ensureFromTo(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 370
            aload 0 /* a */
            arraylength
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.Arrays.ensureFromTo:(III)V
         1: .line 371
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
            0    2     1  from  I
            0    2     2    to  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void ensureOffsetLength(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // char[] a
        start local 1 // int offset
        start local 2 // int length
         0: .line 391
            aload 0 /* a */
            arraylength
            iload 1 /* offset */
            iload 2 /* length */
            invokestatic it.unimi.dsi.fastutil.Arrays.ensureOffsetLength:(III)V
         1: .line 392
            return
        end local 2 // int length
        end local 1 // int offset
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0       a  [C
            0    2     1  offset  I
            0    2     2  length  I
    MethodParameters:
        Name  Flags
      a       final
      offset  final
      length  final

  public static void ensureSameLength(char[], char[]);
    descriptor: ([C[C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // char[] a
        start local 1 // char[] b
         0: .line 404
            aload 0 /* a */
            arraylength
            aload 1 /* b */
            arraylength
            if_icmpeq 2
         1: .line 405
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Array size mismatch: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* a */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* b */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 406
      StackMap locals:
      StackMap stack:
            return
        end local 1 // char[] b
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  [C
            0    3     1     b  [C
    MethodParameters:
      Name  Flags
      a     final
      b     final

  public static void swap(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // char[] x
        start local 1 // int a
        start local 2 // int b
         0: .line 422
            aload 0 /* x */
            iload 1 /* a */
            caload
            istore 3 /* t */
        start local 3 // char t
         1: .line 423
            aload 0 /* x */
            iload 1 /* a */
            aload 0 /* x */
            iload 2 /* b */
            caload
            castore
         2: .line 424
            aload 0 /* x */
            iload 2 /* b */
            iload 3 /* t */
            castore
         3: .line 425
            return
        end local 3 // char t
        end local 2 // int b
        end local 1 // int a
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     x  [C
            0    4     1     a  I
            0    4     2     b  I
            1    4     3     t  C
    MethodParameters:
      Name  Flags
      x     final
      a     final
      b     final

  public static void swap(char[], int, int, int);
    descriptor: ([CIII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // char[] x
        start local 1 // int a
        start local 2 // int b
        start local 3 // int n
         0: .line 440
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         1: goto 4
         2: .line 441
      StackMap locals: int
      StackMap stack:
            aload 0 /* x */
            iload 1 /* a */
            iload 2 /* b */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([CII)V
         3: .line 440
            iinc 4 /* i */ 1
            iinc 1 /* a */ 1
            iinc 2 /* b */ 1
      StackMap locals:
      StackMap stack:
         4: iload 4 /* i */
            iload 3 /* n */
            if_icmplt 2
        end local 4 // int i
         5: .line 442
            return
        end local 3 // int n
        end local 2 // int b
        end local 1 // int a
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     x  [C
            0    6     1     a  I
            0    6     2     b  I
            0    6     3     n  I
            1    5     4     i  I
    MethodParameters:
      Name  Flags
      x     final
      a     
      b     
      n     final

  private static int med3(char[], int, int, int, it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CIIILit/unimi/dsi/fastutil/chars/CharComparator;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // char[] x
        start local 1 // int a
        start local 2 // int b
        start local 3 // int c
        start local 4 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 444
            aload 4 /* comp */
            aload 0 /* x */
            iload 1 /* a */
            caload
            aload 0 /* x */
            iload 2 /* b */
            caload
            invokeinterface it.unimi.dsi.fastutil.chars.CharComparator.compare:(CC)I
            istore 5 /* ab */
        start local 5 // int ab
         1: .line 445
            aload 4 /* comp */
            aload 0 /* x */
            iload 1 /* a */
            caload
            aload 0 /* x */
            iload 3 /* c */
            caload
            invokeinterface it.unimi.dsi.fastutil.chars.CharComparator.compare:(CC)I
            istore 6 /* ac */
        start local 6 // int ac
         2: .line 446
            aload 4 /* comp */
            aload 0 /* x */
            iload 2 /* b */
            caload
            aload 0 /* x */
            iload 3 /* c */
            caload
            invokeinterface it.unimi.dsi.fastutil.chars.CharComparator.compare:(CC)I
            istore 7 /* bc */
        start local 7 // int bc
         3: .line 447
            iload 5 /* ab */
            ifge 6
            iload 7 /* bc */
            ifge 4
            iload 2 /* b */
            goto 9
      StackMap locals: int int int
      StackMap stack:
         4: iload 6 /* ac */
            ifge 5
            iload 3 /* c */
            goto 9
      StackMap locals:
      StackMap stack:
         5: iload 1 /* a */
            goto 9
      StackMap locals:
      StackMap stack:
         6: iload 7 /* bc */
            ifle 7
            iload 2 /* b */
            goto 9
      StackMap locals:
      StackMap stack:
         7: iload 6 /* ac */
            ifle 8
            iload 3 /* c */
            goto 9
      StackMap locals:
      StackMap stack:
         8: iload 1 /* a */
      StackMap locals:
      StackMap stack: int
         9: ireturn
        end local 7 // int bc
        end local 6 // int ac
        end local 5 // int ab
        end local 4 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 3 // int c
        end local 2 // int b
        end local 1 // int a
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0     x  [C
            0   10     1     a  I
            0   10     2     b  I
            0   10     3     c  I
            0   10     4  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
            1   10     5    ab  I
            2   10     6    ac  I
            3   10     7    bc  I
    MethodParameters:
      Name  Flags
      x     final
      a     final
      b     final
      c     final
      comp  

  private static void selectionSort(char[], int, int, it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 450
            iload 1 /* from */
            istore 4 /* i */
        start local 4 // int i
         1: goto 14
         2: .line 451
      StackMap locals: int
      StackMap stack:
            iload 4 /* i */
            istore 5 /* m */
        start local 5 // int m
         3: .line 452
            iload 4 /* i */
            iconst_1
            iadd
            istore 6 /* j */
        start local 6 // int j
         4: goto 8
         5: .line 453
      StackMap locals: int int
      StackMap stack:
            aload 3 /* comp */
            aload 0 /* a */
            iload 6 /* j */
            caload
            aload 0 /* a */
            iload 5 /* m */
            caload
            invokeinterface it.unimi.dsi.fastutil.chars.CharComparator.compare:(CC)I
            ifge 7
         6: .line 454
            iload 6 /* j */
            istore 5 /* m */
         7: .line 452
      StackMap locals:
      StackMap stack:
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* j */
            iload 2 /* to */
            if_icmplt 5
        end local 6 // int j
         9: .line 455
            iload 5 /* m */
            iload 4 /* i */
            if_icmpeq 13
        10: .line 456
            aload 0 /* a */
            iload 4 /* i */
            caload
            istore 6 /* u */
        start local 6 // char u
        11: .line 457
            aload 0 /* a */
            iload 4 /* i */
            aload 0 /* a */
            iload 5 /* m */
            caload
            castore
        12: .line 458
            aload 0 /* a */
            iload 5 /* m */
            iload 6 /* u */
            castore
        end local 6 // char u
        end local 5 // int m
        13: .line 450
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            iload 2 /* to */
            iconst_1
            isub
            if_icmplt 2
        end local 4 // int i
        15: .line 461
            return
        end local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0     a  [C
            0   16     1  from  I
            0   16     2    to  I
            0   16     3  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
            1   15     4     i  I
            3   13     5     m  I
            4    9     6     j  I
           11   13     6     u  C
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      comp  final

  private static void insertionSort(char[], int, int, it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 463
            iload 1 /* from */
            istore 4 /* i */
        start local 4 // int i
         1: goto 13
         2: .line 464
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 4 /* i */
            caload
            istore 5 /* t */
        start local 5 // char t
         3: .line 465
            iload 4 /* i */
            istore 6 /* j */
        start local 6 // int j
         4: .line 466
            aload 0 /* a */
            iload 6 /* j */
            iconst_1
            isub
            caload
            istore 7 /* u */
        start local 7 // char u
         5: goto 11
         6: .line 467
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* a */
            iload 6 /* j */
            iload 7 /* u */
            castore
         7: .line 468
            iload 1 /* from */
            iload 6 /* j */
            iconst_1
            isub
            if_icmpne 10
         8: .line 469
            iinc 6 /* j */ -1
         9: .line 470
            goto 12
        10: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iinc 6 /* j */ -1
            iload 6 /* j */
            iconst_1
            isub
            caload
            istore 7 /* u */
      StackMap locals:
      StackMap stack:
        11: aload 3 /* comp */
            iload 5 /* t */
            iload 7 /* u */
            invokeinterface it.unimi.dsi.fastutil.chars.CharComparator.compare:(CC)I
            iflt 6
        end local 7 // char u
        12: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 6 /* j */
            iload 5 /* t */
            castore
        end local 6 // int j
        end local 5 // char t
        13: .line 463
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
            iload 4 /* i */
            iload 2 /* to */
            if_icmplt 2
        end local 4 // int i
        14: .line 475
            return
        end local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0     a  [C
            0   15     1  from  I
            0   15     2    to  I
            0   15     3  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
            1   14     4     i  I
            3   13     5     t  C
            4   13     6     j  I
            5   12     7     u  C
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      comp  final

  public static void quickSort(char[], int, int, it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=4
        start local 0 // char[] x
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 501
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 503
            iload 4 /* len */
            bipush 16
            if_icmpge 4
         2: .line 504
            aload 0 /* x */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.selectionSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
         3: .line 505
            return
         4: .line 508
      StackMap locals: int
      StackMap stack:
            iload 1 /* from */
            iload 4 /* len */
            iconst_2
            idiv
            iadd
            istore 5 /* m */
        start local 5 // int m
         5: .line 509
            iload 1 /* from */
            istore 6 /* l */
        start local 6 // int l
         6: .line 510
            iload 2 /* to */
            iconst_1
            isub
            istore 7 /* n */
        start local 7 // int n
         7: .line 511
            iload 4 /* len */
            sipush 128
            if_icmple 12
         8: .line 512
            iload 4 /* len */
            bipush 8
            idiv
            istore 8 /* s */
        start local 8 // int s
         9: .line 513
            aload 0 /* x */
            iload 6 /* l */
            iload 6 /* l */
            iload 8 /* s */
            iadd
            iload 6 /* l */
            iconst_2
            iload 8 /* s */
            imul
            iadd
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3:([CIIILit/unimi/dsi/fastutil/chars/CharComparator;)I
            istore 6 /* l */
        10: .line 514
            aload 0 /* x */
            iload 5 /* m */
            iload 8 /* s */
            isub
            iload 5 /* m */
            iload 5 /* m */
            iload 8 /* s */
            iadd
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3:([CIIILit/unimi/dsi/fastutil/chars/CharComparator;)I
            istore 5 /* m */
        11: .line 515
            aload 0 /* x */
            iload 7 /* n */
            iconst_2
            iload 8 /* s */
            imul
            isub
            iload 7 /* n */
            iload 8 /* s */
            isub
            iload 7 /* n */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3:([CIIILit/unimi/dsi/fastutil/chars/CharComparator;)I
            istore 7 /* n */
        end local 8 // int s
        12: .line 517
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* x */
            iload 6 /* l */
            iload 5 /* m */
            iload 7 /* n */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3:([CIIILit/unimi/dsi/fastutil/chars/CharComparator;)I
            istore 5 /* m */
        13: .line 518
            aload 0 /* x */
            iload 5 /* m */
            caload
            istore 8 /* v */
        start local 8 // char v
        14: .line 520
            iload 1 /* from */
            istore 9 /* a */
        start local 9 // int a
        15: iload 9 /* a */
            istore 10 /* b */
        start local 10 // int b
        16: iload 2 /* to */
            iconst_1
            isub
            istore 11 /* c */
        start local 11 // int c
        17: iload 11 /* c */
            istore 12 /* d */
        start local 12 // int d
        18: .line 523
            goto 22
        start local 13 // int comparison
        19: .line 524
      StackMap locals: char[] int int it.unimi.dsi.fastutil.chars.CharComparator int int int int int int int int int int
      StackMap stack:
            iload 13 /* comparison */
            ifne 21
        20: .line 525
            aload 0 /* x */
            iload 9 /* a */
            iinc 9 /* a */ 1
            iload 10 /* b */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([CII)V
        21: .line 526
      StackMap locals:
      StackMap stack:
            iinc 10 /* b */ 1
        end local 13 // int comparison
        22: .line 523
      StackMap locals:
      StackMap stack:
            iload 10 /* b */
            iload 11 /* c */
            if_icmpgt 28
            aload 3 /* comp */
            aload 0 /* x */
            iload 10 /* b */
            caload
            iload 8 /* v */
            invokeinterface it.unimi.dsi.fastutil.chars.CharComparator.compare:(CC)I
            dup
            istore 13 /* comparison */
        start local 13 // int comparison
        23: ifle 19
        end local 13 // int comparison
        24: .line 528
            goto 28
        start local 13 // int comparison
        25: .line 529
      StackMap locals: int
      StackMap stack:
            iload 13 /* comparison */
            ifne 27
        26: .line 530
            aload 0 /* x */
            iload 11 /* c */
            iload 12 /* d */
            iinc 12 /* d */ -1
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([CII)V
        27: .line 531
      StackMap locals:
      StackMap stack:
            iinc 11 /* c */ -1
        end local 13 // int comparison
        28: .line 528
      StackMap locals:
      StackMap stack:
            iload 11 /* c */
            iload 10 /* b */
            if_icmplt 30
            aload 3 /* comp */
            aload 0 /* x */
            iload 11 /* c */
            caload
            iload 8 /* v */
            invokeinterface it.unimi.dsi.fastutil.chars.CharComparator.compare:(CC)I
            dup
            istore 13 /* comparison */
        start local 13 // int comparison
        29: ifge 25
        end local 13 // int comparison
        30: .line 533
      StackMap locals:
      StackMap stack:
            iload 10 /* b */
            iload 11 /* c */
            if_icmple 32
        31: .line 534
            goto 34
        32: .line 535
      StackMap locals:
      StackMap stack:
            aload 0 /* x */
            iload 10 /* b */
            iinc 10 /* b */ 1
            iload 11 /* c */
            iinc 11 /* c */ -1
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([CII)V
        33: .line 521
            goto 22
        34: .line 539
      StackMap locals:
      StackMap stack:
            iload 9 /* a */
            iload 1 /* from */
            isub
            iload 10 /* b */
            iload 9 /* a */
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 13 /* s */
        start local 13 // int s
        35: .line 540
            aload 0 /* x */
            iload 1 /* from */
            iload 10 /* b */
            iload 13 /* s */
            isub
            iload 13 /* s */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([CIII)V
        36: .line 541
            iload 12 /* d */
            iload 11 /* c */
            isub
            iload 2 /* to */
            iload 12 /* d */
            isub
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 13 /* s */
        37: .line 542
            aload 0 /* x */
            iload 10 /* b */
            iload 2 /* to */
            iload 13 /* s */
            isub
            iload 13 /* s */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([CIII)V
        38: .line 544
            iload 10 /* b */
            iload 9 /* a */
            isub
            dup
            istore 13 /* s */
            iconst_1
            if_icmple 40
        39: .line 545
            aload 0 /* x */
            iload 1 /* from */
            iload 1 /* from */
            iload 13 /* s */
            iadd
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
        40: .line 546
      StackMap locals: int
      StackMap stack:
            iload 12 /* d */
            iload 11 /* c */
            isub
            dup
            istore 13 /* s */
            iconst_1
            if_icmple 42
        41: .line 547
            aload 0 /* x */
            iload 2 /* to */
            iload 13 /* s */
            isub
            iload 2 /* to */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
        42: .line 548
      StackMap locals:
      StackMap stack:
            return
        end local 13 // int s
        end local 12 // int d
        end local 11 // int c
        end local 10 // int b
        end local 9 // int a
        end local 8 // char v
        end local 7 // int n
        end local 6 // int l
        end local 5 // int m
        end local 4 // int len
        end local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0           x  [C
            0   43     1        from  I
            0   43     2          to  I
            0   43     3        comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
            1   43     4         len  I
            5   43     5           m  I
            6   43     6           l  I
            7   43     7           n  I
            9   12     8           s  I
           14   43     8           v  C
           15   43     9           a  I
           16   43    10           b  I
           17   43    11           c  I
           18   43    12           d  I
           19   22    13  comparison  I
           23   24    13  comparison  I
           25   28    13  comparison  I
           29   30    13  comparison  I
           35   43    13           s  I
    MethodParameters:
      Name  Flags
      x     final
      from  final
      to    final
      comp  final

  public static void quickSort(char[], it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CLit/unimi/dsi/fastutil/chars/CharComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // char[] x
        start local 1 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 570
            aload 0 /* x */
            iconst_0
            aload 0 /* x */
            arraylength
            aload 1 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
         1: .line 571
            return
        end local 1 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  [C
            0    2     1  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
    MethodParameters:
      Name  Flags
      x     final
      comp  final

  public static void parallelQuickSort(char[], int, int, it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // char[] x
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 661
            iload 2 /* to */
            iload 1 /* from */
            isub
            sipush 8192
            if_icmpge 2
         1: .line 662
            aload 0 /* x */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
            goto 5
         2: .line 664
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.ForkJoinPool
            dup
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            invokespecial java.util.concurrent.ForkJoinPool.<init>:(I)V
            astore 4 /* pool */
        start local 4 // java.util.concurrent.ForkJoinPool pool
         3: .line 665
            aload 4 /* pool */
            new it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSortComp
            dup
            aload 0 /* x */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSortComp.<init>:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
            invokevirtual java.util.concurrent.ForkJoinPool.invoke:(Ljava/util/concurrent/ForkJoinTask;)Ljava/lang/Object;
            pop
         4: .line 666
            aload 4 /* pool */
            invokevirtual java.util.concurrent.ForkJoinPool.shutdown:()V
        end local 4 // java.util.concurrent.ForkJoinPool pool
         5: .line 668
      StackMap locals:
      StackMap stack:
            return
        end local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     x  [C
            0    6     1  from  I
            0    6     2    to  I
            0    6     3  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
            3    5     4  pool  Ljava/util/concurrent/ForkJoinPool;
    MethodParameters:
      Name  Flags
      x     final
      from  final
      to    final
      comp  final

  public static void parallelQuickSort(char[], it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CLit/unimi/dsi/fastutil/chars/CharComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // char[] x
        start local 1 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 688
            aload 0 /* x */
            iconst_0
            aload 0 /* x */
            arraylength
            aload 1 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.parallelQuickSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
         1: .line 689
            return
        end local 1 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  [C
            0    2     1  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
    MethodParameters:
      Name  Flags
      x     final
      comp  final

  private static int med3(char[], int, int, int);
    descriptor: ([CIII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // char[] x
        start local 1 // int a
        start local 2 // int b
        start local 3 // int c
         0: .line 692
            aload 0 /* x */
            iload 1 /* a */
            caload
            aload 0 /* x */
            iload 2 /* b */
            caload
            invokestatic java.lang.Character.compare:(CC)I
            istore 4 /* ab */
        start local 4 // int ab
         1: .line 693
            aload 0 /* x */
            iload 1 /* a */
            caload
            aload 0 /* x */
            iload 3 /* c */
            caload
            invokestatic java.lang.Character.compare:(CC)I
            istore 5 /* ac */
        start local 5 // int ac
         2: .line 694
            aload 0 /* x */
            iload 2 /* b */
            caload
            aload 0 /* x */
            iload 3 /* c */
            caload
            invokestatic java.lang.Character.compare:(CC)I
            istore 6 /* bc */
        start local 6 // int bc
         3: .line 695
            iload 4 /* ab */
            ifge 6
            iload 6 /* bc */
            ifge 4
            iload 2 /* b */
            goto 9
      StackMap locals: int int int
      StackMap stack:
         4: iload 5 /* ac */
            ifge 5
            iload 3 /* c */
            goto 9
      StackMap locals:
      StackMap stack:
         5: iload 1 /* a */
            goto 9
      StackMap locals:
      StackMap stack:
         6: iload 6 /* bc */
            ifle 7
            iload 2 /* b */
            goto 9
      StackMap locals:
      StackMap stack:
         7: iload 5 /* ac */
            ifle 8
            iload 3 /* c */
            goto 9
      StackMap locals:
      StackMap stack:
         8: iload 1 /* a */
      StackMap locals:
      StackMap stack: int
         9: ireturn
        end local 6 // int bc
        end local 5 // int ac
        end local 4 // int ab
        end local 3 // int c
        end local 2 // int b
        end local 1 // int a
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0     x  [C
            0   10     1     a  I
            0   10     2     b  I
            0   10     3     c  I
            1   10     4    ab  I
            2   10     5    ac  I
            3   10     6    bc  I
    MethodParameters:
      Name  Flags
      x     final
      a     final
      b     final
      c     final

  private static void selectionSort(char[], int, int);
    descriptor: ([CII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 699
            iload 1 /* from */
            istore 3 /* i */
        start local 3 // int i
         1: goto 14
         2: .line 700
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            istore 4 /* m */
        start local 4 // int m
         3: .line 701
            iload 3 /* i */
            iconst_1
            iadd
            istore 5 /* j */
        start local 5 // int j
         4: goto 8
         5: .line 702
      StackMap locals: int int
      StackMap stack:
            aload 0 /* a */
            iload 5 /* j */
            caload
            aload 0 /* a */
            iload 4 /* m */
            caload
            if_icmpge 7
         6: .line 703
            iload 5 /* j */
            istore 4 /* m */
         7: .line 701
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* j */
            iload 2 /* to */
            if_icmplt 5
        end local 5 // int j
         9: .line 704
            iload 4 /* m */
            iload 3 /* i */
            if_icmpeq 13
        10: .line 705
            aload 0 /* a */
            iload 3 /* i */
            caload
            istore 5 /* u */
        start local 5 // char u
        11: .line 706
            aload 0 /* a */
            iload 3 /* i */
            aload 0 /* a */
            iload 4 /* m */
            caload
            castore
        12: .line 707
            aload 0 /* a */
            iload 4 /* m */
            iload 5 /* u */
            castore
        end local 5 // char u
        end local 4 // int m
        13: .line 699
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 3 /* i */
            iload 2 /* to */
            iconst_1
            isub
            if_icmplt 2
        end local 3 // int i
        15: .line 710
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0     a  [C
            0   16     1  from  I
            0   16     2    to  I
            1   15     3     i  I
            3   13     4     m  I
            4    9     5     j  I
           11   13     5     u  C
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  private static void insertionSort(char[], int, int);
    descriptor: ([CII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 713
            iload 1 /* from */
            istore 3 /* i */
        start local 3 // int i
         1: goto 13
         2: .line 714
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 3 /* i */
            caload
            istore 4 /* t */
        start local 4 // char t
         3: .line 715
            iload 3 /* i */
            istore 5 /* j */
        start local 5 // int j
         4: .line 716
            aload 0 /* a */
            iload 5 /* j */
            iconst_1
            isub
            caload
            istore 6 /* u */
        start local 6 // char u
         5: goto 11
         6: .line 717
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* a */
            iload 5 /* j */
            iload 6 /* u */
            castore
         7: .line 718
            iload 1 /* from */
            iload 5 /* j */
            iconst_1
            isub
            if_icmpne 10
         8: .line 719
            iinc 5 /* j */ -1
         9: .line 720
            goto 12
        10: .line 716
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iinc 5 /* j */ -1
            iload 5 /* j */
            iconst_1
            isub
            caload
            istore 6 /* u */
      StackMap locals:
      StackMap stack:
        11: iload 4 /* t */
            iload 6 /* u */
            if_icmplt 6
        end local 6 // char u
        12: .line 723
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 5 /* j */
            iload 4 /* t */
            castore
        end local 5 // int j
        end local 4 // char t
        13: .line 713
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
            iload 3 /* i */
            iload 2 /* to */
            if_icmplt 2
        end local 3 // int i
        14: .line 725
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0     a  [C
            0   15     1  from  I
            0   15     2    to  I
            1   14     3     i  I
            3   13     4     t  C
            4   13     5     j  I
            5   12     6     u  C
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void quickSort(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=13, args_size=3
        start local 0 // char[] x
        start local 1 // int from
        start local 2 // int to
         0: .line 749
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 3 /* len */
        start local 3 // int len
         1: .line 751
            iload 3 /* len */
            bipush 16
            if_icmpge 4
         2: .line 752
            aload 0 /* x */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.selectionSort:([CII)V
         3: .line 753
            return
         4: .line 756
      StackMap locals: int
      StackMap stack:
            iload 1 /* from */
            iload 3 /* len */
            iconst_2
            idiv
            iadd
            istore 4 /* m */
        start local 4 // int m
         5: .line 757
            iload 1 /* from */
            istore 5 /* l */
        start local 5 // int l
         6: .line 758
            iload 2 /* to */
            iconst_1
            isub
            istore 6 /* n */
        start local 6 // int n
         7: .line 759
            iload 3 /* len */
            sipush 128
            if_icmple 12
         8: .line 760
            iload 3 /* len */
            bipush 8
            idiv
            istore 7 /* s */
        start local 7 // int s
         9: .line 761
            aload 0 /* x */
            iload 5 /* l */
            iload 5 /* l */
            iload 7 /* s */
            iadd
            iload 5 /* l */
            iconst_2
            iload 7 /* s */
            imul
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3:([CIII)I
            istore 5 /* l */
        10: .line 762
            aload 0 /* x */
            iload 4 /* m */
            iload 7 /* s */
            isub
            iload 4 /* m */
            iload 4 /* m */
            iload 7 /* s */
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3:([CIII)I
            istore 4 /* m */
        11: .line 763
            aload 0 /* x */
            iload 6 /* n */
            iconst_2
            iload 7 /* s */
            imul
            isub
            iload 6 /* n */
            iload 7 /* s */
            isub
            iload 6 /* n */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3:([CIII)I
            istore 6 /* n */
        end local 7 // int s
        12: .line 765
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* x */
            iload 5 /* l */
            iload 4 /* m */
            iload 6 /* n */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3:([CIII)I
            istore 4 /* m */
        13: .line 766
            aload 0 /* x */
            iload 4 /* m */
            caload
            istore 7 /* v */
        start local 7 // char v
        14: .line 768
            iload 1 /* from */
            istore 8 /* a */
        start local 8 // int a
        15: iload 8 /* a */
            istore 9 /* b */
        start local 9 // int b
        16: iload 2 /* to */
            iconst_1
            isub
            istore 10 /* c */
        start local 10 // int c
        17: iload 10 /* c */
            istore 11 /* d */
        start local 11 // int d
        18: .line 771
            goto 22
        start local 12 // int comparison
        19: .line 772
      StackMap locals: char[] int int int int int int int int int int int int
      StackMap stack:
            iload 12 /* comparison */
            ifne 21
        20: .line 773
            aload 0 /* x */
            iload 8 /* a */
            iinc 8 /* a */ 1
            iload 9 /* b */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([CII)V
        21: .line 774
      StackMap locals:
      StackMap stack:
            iinc 9 /* b */ 1
        end local 12 // int comparison
        22: .line 771
      StackMap locals:
      StackMap stack:
            iload 9 /* b */
            iload 10 /* c */
            if_icmpgt 28
            aload 0 /* x */
            iload 9 /* b */
            caload
            iload 7 /* v */
            invokestatic java.lang.Character.compare:(CC)I
            dup
            istore 12 /* comparison */
        start local 12 // int comparison
        23: ifle 19
        end local 12 // int comparison
        24: .line 776
            goto 28
        start local 12 // int comparison
        25: .line 777
      StackMap locals: int
      StackMap stack:
            iload 12 /* comparison */
            ifne 27
        26: .line 778
            aload 0 /* x */
            iload 10 /* c */
            iload 11 /* d */
            iinc 11 /* d */ -1
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([CII)V
        27: .line 779
      StackMap locals:
      StackMap stack:
            iinc 10 /* c */ -1
        end local 12 // int comparison
        28: .line 776
      StackMap locals:
      StackMap stack:
            iload 10 /* c */
            iload 9 /* b */
            if_icmplt 30
            aload 0 /* x */
            iload 10 /* c */
            caload
            iload 7 /* v */
            invokestatic java.lang.Character.compare:(CC)I
            dup
            istore 12 /* comparison */
        start local 12 // int comparison
        29: ifge 25
        end local 12 // int comparison
        30: .line 781
      StackMap locals:
      StackMap stack:
            iload 9 /* b */
            iload 10 /* c */
            if_icmple 32
        31: .line 782
            goto 34
        32: .line 783
      StackMap locals:
      StackMap stack:
            aload 0 /* x */
            iload 9 /* b */
            iinc 9 /* b */ 1
            iload 10 /* c */
            iinc 10 /* c */ -1
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([CII)V
        33: .line 769
            goto 22
        34: .line 787
      StackMap locals:
      StackMap stack:
            iload 8 /* a */
            iload 1 /* from */
            isub
            iload 9 /* b */
            iload 8 /* a */
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 12 /* s */
        start local 12 // int s
        35: .line 788
            aload 0 /* x */
            iload 1 /* from */
            iload 9 /* b */
            iload 12 /* s */
            isub
            iload 12 /* s */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([CIII)V
        36: .line 789
            iload 11 /* d */
            iload 10 /* c */
            isub
            iload 2 /* to */
            iload 11 /* d */
            isub
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 12 /* s */
        37: .line 790
            aload 0 /* x */
            iload 9 /* b */
            iload 2 /* to */
            iload 12 /* s */
            isub
            iload 12 /* s */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([CIII)V
        38: .line 792
            iload 9 /* b */
            iload 8 /* a */
            isub
            dup
            istore 12 /* s */
            iconst_1
            if_icmple 40
        39: .line 793
            aload 0 /* x */
            iload 1 /* from */
            iload 1 /* from */
            iload 12 /* s */
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CII)V
        40: .line 794
      StackMap locals: int
      StackMap stack:
            iload 11 /* d */
            iload 10 /* c */
            isub
            dup
            istore 12 /* s */
            iconst_1
            if_icmple 42
        41: .line 795
            aload 0 /* x */
            iload 2 /* to */
            iload 12 /* s */
            isub
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CII)V
        42: .line 796
      StackMap locals:
      StackMap stack:
            return
        end local 12 // int s
        end local 11 // int d
        end local 10 // int c
        end local 9 // int b
        end local 8 // int a
        end local 7 // char v
        end local 6 // int n
        end local 5 // int l
        end local 4 // int m
        end local 3 // int len
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0           x  [C
            0   43     1        from  I
            0   43     2          to  I
            1   43     3         len  I
            5   43     4           m  I
            6   43     5           l  I
            7   43     6           n  I
            9   12     7           s  I
           14   43     7           v  C
           15   43     8           a  I
           16   43     9           b  I
           17   43    10           c  I
           18   43    11           d  I
           19   22    12  comparison  I
           23   24    12  comparison  I
           25   28    12  comparison  I
           29   30    12  comparison  I
           35   43    12           s  I
    MethodParameters:
      Name  Flags
      x     final
      from  final
      to    final

  public static void quickSort(char[]);
    descriptor: ([C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // char[] x
         0: .line 815
            aload 0 /* x */
            iconst_0
            aload 0 /* x */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CII)V
         1: .line 816
            return
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  [C
    MethodParameters:
      Name  Flags
      x     final

  public static void parallelQuickSort(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // char[] x
        start local 1 // int from
        start local 2 // int to
         0: .line 902
            iload 2 /* to */
            iload 1 /* from */
            isub
            sipush 8192
            if_icmpge 2
         1: .line 903
            aload 0 /* x */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CII)V
            goto 5
         2: .line 905
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.ForkJoinPool
            dup
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            invokespecial java.util.concurrent.ForkJoinPool.<init>:(I)V
            astore 3 /* pool */
        start local 3 // java.util.concurrent.ForkJoinPool pool
         3: .line 906
            aload 3 /* pool */
            new it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSort
            dup
            aload 0 /* x */
            iload 1 /* from */
            iload 2 /* to */
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSort.<init>:([CII)V
            invokevirtual java.util.concurrent.ForkJoinPool.invoke:(Ljava/util/concurrent/ForkJoinTask;)Ljava/lang/Object;
            pop
         4: .line 907
            aload 3 /* pool */
            invokevirtual java.util.concurrent.ForkJoinPool.shutdown:()V
        end local 3 // java.util.concurrent.ForkJoinPool pool
         5: .line 909
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     x  [C
            0    6     1  from  I
            0    6     2    to  I
            3    5     3  pool  Ljava/util/concurrent/ForkJoinPool;
    MethodParameters:
      Name  Flags
      x     final
      from  final
      to    final

  public static void parallelQuickSort(char[]);
    descriptor: ([C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // char[] x
         0: .line 928
            aload 0 /* x */
            iconst_0
            aload 0 /* x */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.parallelQuickSort:([CII)V
         1: .line 929
            return
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  [C
    MethodParameters:
      Name  Flags
      x     final

  private static int med3Indirect(int[], char[], int, int, int);
    descriptor: ([I[CIII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=11, args_size=5
        start local 0 // int[] perm
        start local 1 // char[] x
        start local 2 // int a
        start local 3 // int b
        start local 4 // int c
         0: .line 932
            aload 1 /* x */
            aload 0 /* perm */
            iload 2 /* a */
            iaload
            caload
            istore 5 /* aa */
        start local 5 // char aa
         1: .line 933
            aload 1 /* x */
            aload 0 /* perm */
            iload 3 /* b */
            iaload
            caload
            istore 6 /* bb */
        start local 6 // char bb
         2: .line 934
            aload 1 /* x */
            aload 0 /* perm */
            iload 4 /* c */
            iaload
            caload
            istore 7 /* cc */
        start local 7 // char cc
         3: .line 935
            iload 5 /* aa */
            iload 6 /* bb */
            invokestatic java.lang.Character.compare:(CC)I
            istore 8 /* ab */
        start local 8 // int ab
         4: .line 936
            iload 5 /* aa */
            iload 7 /* cc */
            invokestatic java.lang.Character.compare:(CC)I
            istore 9 /* ac */
        start local 9 // int ac
         5: .line 937
            iload 6 /* bb */
            iload 7 /* cc */
            invokestatic java.lang.Character.compare:(CC)I
            istore 10 /* bc */
        start local 10 // int bc
         6: .line 938
            iload 8 /* ab */
            ifge 9
            iload 10 /* bc */
            ifge 7
            iload 3 /* b */
            goto 12
      StackMap locals: int[] char[] int int int int int int int int int
      StackMap stack:
         7: iload 9 /* ac */
            ifge 8
            iload 4 /* c */
            goto 12
      StackMap locals:
      StackMap stack:
         8: iload 2 /* a */
            goto 12
      StackMap locals:
      StackMap stack:
         9: iload 10 /* bc */
            ifle 10
            iload 3 /* b */
            goto 12
      StackMap locals:
      StackMap stack:
        10: iload 9 /* ac */
            ifle 11
            iload 4 /* c */
            goto 12
      StackMap locals:
      StackMap stack:
        11: iload 2 /* a */
      StackMap locals:
      StackMap stack: int
        12: ireturn
        end local 10 // int bc
        end local 9 // int ac
        end local 8 // int ab
        end local 7 // char cc
        end local 6 // char bb
        end local 5 // char aa
        end local 4 // int c
        end local 3 // int b
        end local 2 // int a
        end local 1 // char[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  perm  [I
            0   13     1     x  [C
            0   13     2     a  I
            0   13     3     b  I
            0   13     4     c  I
            1   13     5    aa  C
            2   13     6    bb  C
            3   13     7    cc  C
            4   13     8    ab  I
            5   13     9    ac  I
            6   13    10    bc  I
    MethodParameters:
      Name  Flags
      perm  final
      x     final
      a     final
      b     final
      c     final

  private static void insertionSortIndirect(int[], char[], int, int);
    descriptor: ([I[CII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // int[] perm
        start local 1 // char[] a
        start local 2 // int from
        start local 3 // int to
         0: .line 942
            iload 2 /* from */
            istore 4 /* i */
        start local 4 // int i
         1: goto 13
         2: .line 943
      StackMap locals: int
      StackMap stack:
            aload 0 /* perm */
            iload 4 /* i */
            iaload
            istore 5 /* t */
        start local 5 // int t
         3: .line 944
            iload 4 /* i */
            istore 6 /* j */
        start local 6 // int j
         4: .line 945
            aload 0 /* perm */
            iload 6 /* j */
            iconst_1
            isub
            iaload
            istore 7 /* u */
        start local 7 // int u
         5: goto 11
         6: .line 946
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* perm */
            iload 6 /* j */
            iload 7 /* u */
            iastore
         7: .line 947
            iload 2 /* from */
            iload 6 /* j */
            iconst_1
            isub
            if_icmpne 10
         8: .line 948
            iinc 6 /* j */ -1
         9: .line 949
            goto 12
        10: .line 945
      StackMap locals:
      StackMap stack:
            aload 0 /* perm */
            iinc 6 /* j */ -1
            iload 6 /* j */
            iconst_1
            isub
            iaload
            istore 7 /* u */
      StackMap locals:
      StackMap stack:
        11: aload 1 /* a */
            iload 5 /* t */
            caload
            aload 1 /* a */
            iload 7 /* u */
            caload
            if_icmplt 6
        end local 7 // int u
        12: .line 952
      StackMap locals:
      StackMap stack:
            aload 0 /* perm */
            iload 6 /* j */
            iload 5 /* t */
            iastore
        end local 6 // int j
        end local 5 // int t
        13: .line 942
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
            iload 4 /* i */
            iload 3 /* to */
            if_icmplt 2
        end local 4 // int i
        14: .line 954
            return
        end local 3 // int to
        end local 2 // int from
        end local 1 // char[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  perm  [I
            0   15     1     a  [C
            0   15     2  from  I
            0   15     3    to  I
            1   14     4     i  I
            3   13     5     t  I
            4   13     6     j  I
            5   12     7     u  I
    MethodParameters:
      Name  Flags
      perm  final
      a     final
      from  final
      to    final

  public static void quickSortIndirect(int[], char[], int, int);
    descriptor: ([I[CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=14, args_size=4
        start local 0 // int[] perm
        start local 1 // char[] x
        start local 2 // int from
        start local 3 // int to
         0: .line 985
            iload 3 /* to */
            iload 2 /* from */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 987
            iload 4 /* len */
            bipush 16
            if_icmpge 4
         2: .line 988
            aload 0 /* perm */
            aload 1 /* x */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.insertionSortIndirect:([I[CII)V
         3: .line 989
            return
         4: .line 992
      StackMap locals: int
      StackMap stack:
            iload 2 /* from */
            iload 4 /* len */
            iconst_2
            idiv
            iadd
            istore 5 /* m */
        start local 5 // int m
         5: .line 993
            iload 2 /* from */
            istore 6 /* l */
        start local 6 // int l
         6: .line 994
            iload 3 /* to */
            iconst_1
            isub
            istore 7 /* n */
        start local 7 // int n
         7: .line 995
            iload 4 /* len */
            sipush 128
            if_icmple 12
         8: .line 996
            iload 4 /* len */
            bipush 8
            idiv
            istore 8 /* s */
        start local 8 // int s
         9: .line 997
            aload 0 /* perm */
            aload 1 /* x */
            iload 6 /* l */
            iload 6 /* l */
            iload 8 /* s */
            iadd
            iload 6 /* l */
            iconst_2
            iload 8 /* s */
            imul
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3Indirect:([I[CIII)I
            istore 6 /* l */
        10: .line 998
            aload 0 /* perm */
            aload 1 /* x */
            iload 5 /* m */
            iload 8 /* s */
            isub
            iload 5 /* m */
            iload 5 /* m */
            iload 8 /* s */
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3Indirect:([I[CIII)I
            istore 5 /* m */
        11: .line 999
            aload 0 /* perm */
            aload 1 /* x */
            iload 7 /* n */
            iconst_2
            iload 8 /* s */
            imul
            isub
            iload 7 /* n */
            iload 8 /* s */
            isub
            iload 7 /* n */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3Indirect:([I[CIII)I
            istore 7 /* n */
        end local 8 // int s
        12: .line 1001
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* perm */
            aload 1 /* x */
            iload 6 /* l */
            iload 5 /* m */
            iload 7 /* n */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3Indirect:([I[CIII)I
            istore 5 /* m */
        13: .line 1002
            aload 1 /* x */
            aload 0 /* perm */
            iload 5 /* m */
            iaload
            caload
            istore 8 /* v */
        start local 8 // char v
        14: .line 1004
            iload 2 /* from */
            istore 9 /* a */
        start local 9 // int a
        15: iload 9 /* a */
            istore 10 /* b */
        start local 10 // int b
        16: iload 3 /* to */
            iconst_1
            isub
            istore 11 /* c */
        start local 11 // int c
        17: iload 11 /* c */
            istore 12 /* d */
        start local 12 // int d
        18: .line 1007
            goto 22
        start local 13 // int comparison
        19: .line 1008
      StackMap locals: int[] char[] int int int int int int int int int int int int
      StackMap stack:
            iload 13 /* comparison */
            ifne 21
        20: .line 1009
            aload 0 /* perm */
            iload 9 /* a */
            iinc 9 /* a */ 1
            iload 10 /* b */
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.swap:([III)V
        21: .line 1010
      StackMap locals:
      StackMap stack:
            iinc 10 /* b */ 1
        end local 13 // int comparison
        22: .line 1007
      StackMap locals:
      StackMap stack:
            iload 10 /* b */
            iload 11 /* c */
            if_icmpgt 28
            aload 1 /* x */
            aload 0 /* perm */
            iload 10 /* b */
            iaload
            caload
            iload 8 /* v */
            invokestatic java.lang.Character.compare:(CC)I
            dup
            istore 13 /* comparison */
        start local 13 // int comparison
        23: ifle 19
        end local 13 // int comparison
        24: .line 1012
            goto 28
        start local 13 // int comparison
        25: .line 1013
      StackMap locals: int
      StackMap stack:
            iload 13 /* comparison */
            ifne 27
        26: .line 1014
            aload 0 /* perm */
            iload 11 /* c */
            iload 12 /* d */
            iinc 12 /* d */ -1
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.swap:([III)V
        27: .line 1015
      StackMap locals:
      StackMap stack:
            iinc 11 /* c */ -1
        end local 13 // int comparison
        28: .line 1012
      StackMap locals:
      StackMap stack:
            iload 11 /* c */
            iload 10 /* b */
            if_icmplt 30
            aload 1 /* x */
            aload 0 /* perm */
            iload 11 /* c */
            iaload
            caload
            iload 8 /* v */
            invokestatic java.lang.Character.compare:(CC)I
            dup
            istore 13 /* comparison */
        start local 13 // int comparison
        29: ifge 25
        end local 13 // int comparison
        30: .line 1017
      StackMap locals:
      StackMap stack:
            iload 10 /* b */
            iload 11 /* c */
            if_icmple 32
        31: .line 1018
            goto 34
        32: .line 1019
      StackMap locals:
      StackMap stack:
            aload 0 /* perm */
            iload 10 /* b */
            iinc 10 /* b */ 1
            iload 11 /* c */
            iinc 11 /* c */ -1
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.swap:([III)V
        33: .line 1005
            goto 22
        34: .line 1023
      StackMap locals:
      StackMap stack:
            iload 9 /* a */
            iload 2 /* from */
            isub
            iload 10 /* b */
            iload 9 /* a */
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 13 /* s */
        start local 13 // int s
        35: .line 1024
            aload 0 /* perm */
            iload 2 /* from */
            iload 10 /* b */
            iload 13 /* s */
            isub
            iload 13 /* s */
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.swap:([IIII)V
        36: .line 1025
            iload 12 /* d */
            iload 11 /* c */
            isub
            iload 3 /* to */
            iload 12 /* d */
            isub
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 13 /* s */
        37: .line 1026
            aload 0 /* perm */
            iload 10 /* b */
            iload 3 /* to */
            iload 13 /* s */
            isub
            iload 13 /* s */
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.swap:([IIII)V
        38: .line 1028
            iload 10 /* b */
            iload 9 /* a */
            isub
            dup
            istore 13 /* s */
            iconst_1
            if_icmple 40
        39: .line 1029
            aload 0 /* perm */
            aload 1 /* x */
            iload 2 /* from */
            iload 2 /* from */
            iload 13 /* s */
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSortIndirect:([I[CII)V
        40: .line 1030
      StackMap locals: int
      StackMap stack:
            iload 12 /* d */
            iload 11 /* c */
            isub
            dup
            istore 13 /* s */
            iconst_1
            if_icmple 42
        41: .line 1031
            aload 0 /* perm */
            aload 1 /* x */
            iload 3 /* to */
            iload 13 /* s */
            isub
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSortIndirect:([I[CII)V
        42: .line 1032
      StackMap locals:
      StackMap stack:
            return
        end local 13 // int s
        end local 12 // int d
        end local 11 // int c
        end local 10 // int b
        end local 9 // int a
        end local 8 // char v
        end local 7 // int n
        end local 6 // int l
        end local 5 // int m
        end local 4 // int len
        end local 3 // int to
        end local 2 // int from
        end local 1 // char[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0        perm  [I
            0   43     1           x  [C
            0   43     2        from  I
            0   43     3          to  I
            1   43     4         len  I
            5   43     5           m  I
            6   43     6           l  I
            7   43     7           n  I
            9   12     8           s  I
           14   43     8           v  C
           15   43     9           a  I
           16   43    10           b  I
           17   43    11           c  I
           18   43    12           d  I
           19   22    13  comparison  I
           23   24    13  comparison  I
           25   28    13  comparison  I
           29   30    13  comparison  I
           35   43    13           s  I
    MethodParameters:
      Name  Flags
      perm  final
      x     final
      from  final
      to    final

  public static void quickSortIndirect(int[], char[]);
    descriptor: ([I[C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int[] perm
        start local 1 // char[] x
         0: .line 1058
            aload 0 /* perm */
            aload 1 /* x */
            iconst_0
            aload 1 /* x */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSortIndirect:([I[CII)V
         1: .line 1059
            return
        end local 1 // char[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  perm  [I
            0    2     1     x  [C
    MethodParameters:
      Name  Flags
      perm  final
      x     final

  public static void parallelQuickSortIndirect(int[], char[], int, int);
    descriptor: ([I[CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // int[] perm
        start local 1 // char[] x
        start local 2 // int from
        start local 3 // int to
         0: .line 1155
            iload 3 /* to */
            iload 2 /* from */
            isub
            sipush 8192
            if_icmpge 2
         1: .line 1156
            aload 0 /* perm */
            aload 1 /* x */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSortIndirect:([I[CII)V
            goto 5
         2: .line 1158
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.ForkJoinPool
            dup
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            invokespecial java.util.concurrent.ForkJoinPool.<init>:(I)V
            astore 4 /* pool */
        start local 4 // java.util.concurrent.ForkJoinPool pool
         3: .line 1159
            aload 4 /* pool */
            new it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSortIndirect
            dup
            aload 0 /* perm */
            aload 1 /* x */
            iload 2 /* from */
            iload 3 /* to */
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSortIndirect.<init>:([I[CII)V
            invokevirtual java.util.concurrent.ForkJoinPool.invoke:(Ljava/util/concurrent/ForkJoinTask;)Ljava/lang/Object;
            pop
         4: .line 1160
            aload 4 /* pool */
            invokevirtual java.util.concurrent.ForkJoinPool.shutdown:()V
        end local 4 // java.util.concurrent.ForkJoinPool pool
         5: .line 1162
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int to
        end local 2 // int from
        end local 1 // char[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  perm  [I
            0    6     1     x  [C
            0    6     2  from  I
            0    6     3    to  I
            3    5     4  pool  Ljava/util/concurrent/ForkJoinPool;
    MethodParameters:
      Name  Flags
      perm  final
      x     final
      from  final
      to    final

  public static void parallelQuickSortIndirect(int[], char[]);
    descriptor: ([I[C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int[] perm
        start local 1 // char[] x
         0: .line 1188
            aload 0 /* perm */
            aload 1 /* x */
            iconst_0
            aload 1 /* x */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.parallelQuickSortIndirect:([I[CII)V
         1: .line 1189
            return
        end local 1 // char[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  perm  [I
            0    2     1     x  [C
    MethodParameters:
      Name  Flags
      perm  final
      x     final

  public static void stabilize(int[], char[], int, int);
    descriptor: ([I[CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // int[] perm
        start local 1 // char[] x
        start local 2 // int from
        start local 3 // int to
         0: .line 1221
            iload 2 /* from */
            istore 4 /* curr */
        start local 4 // int curr
         1: .line 1222
            iload 2 /* from */
            iconst_1
            iadd
            istore 5 /* i */
        start local 5 // int i
         2: goto 8
         3: .line 1223
      StackMap locals: int int
      StackMap stack:
            aload 1 /* x */
            aload 0 /* perm */
            iload 5 /* i */
            iaload
            caload
            aload 1 /* x */
            aload 0 /* perm */
            iload 4 /* curr */
            iaload
            caload
            if_icmpeq 7
         4: .line 1224
            iload 5 /* i */
            iload 4 /* curr */
            isub
            iconst_1
            if_icmple 6
         5: .line 1225
            aload 0 /* perm */
            iload 4 /* curr */
            iload 5 /* i */
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.parallelQuickSort:([III)V
         6: .line 1226
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            istore 4 /* curr */
         7: .line 1222
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            iload 3 /* to */
            if_icmplt 3
        end local 5 // int i
         9: .line 1229
            iload 3 /* to */
            iload 4 /* curr */
            isub
            iconst_1
            if_icmple 11
        10: .line 1230
            aload 0 /* perm */
            iload 4 /* curr */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.parallelQuickSort:([III)V
        11: .line 1231
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int curr
        end local 3 // int to
        end local 2 // int from
        end local 1 // char[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  perm  [I
            0   12     1     x  [C
            0   12     2  from  I
            0   12     3    to  I
            1   12     4  curr  I
            2    9     5     i  I
    MethodParameters:
      Name  Flags
      perm  final
      x     final
      from  final
      to    final

  public static void stabilize(int[], char[]);
    descriptor: ([I[C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int[] perm
        start local 1 // char[] x
         0: .line 1259
            aload 0 /* perm */
            aload 1 /* x */
            iconst_0
            aload 0 /* perm */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.stabilize:([I[CII)V
         1: .line 1260
            return
        end local 1 // char[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  perm  [I
            0    2     1     x  [C
    MethodParameters:
      Name  Flags
      perm  final
      x     final

  private static int med3(char[], char[], int, int, int);
    descriptor: ([C[CIII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=5
        start local 0 // char[] x
        start local 1 // char[] y
        start local 2 // int a
        start local 3 // int b
        start local 4 // int c
         0: .line 1264
            aload 0 /* x */
            iload 2 /* a */
            caload
            aload 0 /* x */
            iload 3 /* b */
            caload
            invokestatic java.lang.Character.compare:(CC)I
            dup
            istore 5 /* t */
        start local 5 // int t
         1: ifne 2
            aload 1 /* y */
            iload 2 /* a */
            caload
            aload 1 /* y */
            iload 3 /* b */
            caload
            invokestatic java.lang.Character.compare:(CC)I
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iload 5 /* t */
      StackMap locals:
      StackMap stack: int
         3: istore 6 /* ab */
        start local 6 // int ab
         4: .line 1265
            aload 0 /* x */
            iload 2 /* a */
            caload
            aload 0 /* x */
            iload 4 /* c */
            caload
            invokestatic java.lang.Character.compare:(CC)I
            dup
            istore 5 /* t */
            ifne 5
            aload 1 /* y */
            iload 2 /* a */
            caload
            aload 1 /* y */
            iload 4 /* c */
            caload
            invokestatic java.lang.Character.compare:(CC)I
            goto 6
      StackMap locals: int
      StackMap stack:
         5: iload 5 /* t */
      StackMap locals:
      StackMap stack: int
         6: istore 7 /* ac */
        start local 7 // int ac
         7: .line 1266
            aload 0 /* x */
            iload 3 /* b */
            caload
            aload 0 /* x */
            iload 4 /* c */
            caload
            invokestatic java.lang.Character.compare:(CC)I
            dup
            istore 5 /* t */
            ifne 8
            aload 1 /* y */
            iload 3 /* b */
            caload
            aload 1 /* y */
            iload 4 /* c */
            caload
            invokestatic java.lang.Character.compare:(CC)I
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iload 5 /* t */
      StackMap locals:
      StackMap stack: int
         9: istore 8 /* bc */
        start local 8 // int bc
        10: .line 1267
            iload 6 /* ab */
            ifge 13
            iload 8 /* bc */
            ifge 11
            iload 3 /* b */
            goto 16
      StackMap locals: int
      StackMap stack:
        11: iload 7 /* ac */
            ifge 12
            iload 4 /* c */
            goto 16
      StackMap locals:
      StackMap stack:
        12: iload 2 /* a */
            goto 16
      StackMap locals:
      StackMap stack:
        13: iload 8 /* bc */
            ifle 14
            iload 3 /* b */
            goto 16
      StackMap locals:
      StackMap stack:
        14: iload 7 /* ac */
            ifle 15
            iload 4 /* c */
            goto 16
      StackMap locals:
      StackMap stack:
        15: iload 2 /* a */
      StackMap locals:
      StackMap stack: int
        16: ireturn
        end local 8 // int bc
        end local 7 // int ac
        end local 6 // int ab
        end local 5 // int t
        end local 4 // int c
        end local 3 // int b
        end local 2 // int a
        end local 1 // char[] y
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0     x  [C
            0   17     1     y  [C
            0   17     2     a  I
            0   17     3     b  I
            0   17     4     c  I
            1   17     5     t  I
            4   17     6    ab  I
            7   17     7    ac  I
           10   17     8    bc  I
    MethodParameters:
      Name  Flags
      x     final
      y     final
      a     final
      b     final
      c     final

  private static void swap(char[], char[], int, int);
    descriptor: ([C[CII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // char[] x
        start local 1 // char[] y
        start local 2 // int a
        start local 3 // int b
         0: .line 1270
            aload 0 /* x */
            iload 2 /* a */
            caload
            istore 4 /* t */
        start local 4 // char t
         1: .line 1271
            aload 1 /* y */
            iload 2 /* a */
            caload
            istore 5 /* u */
        start local 5 // char u
         2: .line 1272
            aload 0 /* x */
            iload 2 /* a */
            aload 0 /* x */
            iload 3 /* b */
            caload
            castore
         3: .line 1273
            aload 1 /* y */
            iload 2 /* a */
            aload 1 /* y */
            iload 3 /* b */
            caload
            castore
         4: .line 1274
            aload 0 /* x */
            iload 3 /* b */
            iload 4 /* t */
            castore
         5: .line 1275
            aload 1 /* y */
            iload 3 /* b */
            iload 5 /* u */
            castore
         6: .line 1276
            return
        end local 5 // char u
        end local 4 // char t
        end local 3 // int b
        end local 2 // int a
        end local 1 // char[] y
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     x  [C
            0    7     1     y  [C
            0    7     2     a  I
            0    7     3     b  I
            1    7     4     t  C
            2    7     5     u  C
    MethodParameters:
      Name  Flags
      x     final
      y     final
      a     final
      b     final

  private static void swap(char[], char[], int, int, int);
    descriptor: ([C[CIII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // char[] x
        start local 1 // char[] y
        start local 2 // int a
        start local 3 // int b
        start local 4 // int n
         0: .line 1278
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         1: goto 4
         2: .line 1279
      StackMap locals: int
      StackMap stack:
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* a */
            iload 3 /* b */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([C[CII)V
         3: .line 1278
            iinc 5 /* i */ 1
            iinc 2 /* a */ 1
            iinc 3 /* b */ 1
      StackMap locals:
      StackMap stack:
         4: iload 5 /* i */
            iload 4 /* n */
            if_icmplt 2
        end local 5 // int i
         5: .line 1280
            return
        end local 4 // int n
        end local 3 // int b
        end local 2 // int a
        end local 1 // char[] y
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     x  [C
            0    6     1     y  [C
            0    6     2     a  I
            0    6     3     b  I
            0    6     4     n  I
            1    5     5     i  I
    MethodParameters:
      Name  Flags
      x     final
      y     final
      a     
      b     
      n     final

  private static void selectionSort(char[], char[], int, int);
    descriptor: ([C[CII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // char[] a
        start local 1 // char[] b
        start local 2 // int from
        start local 3 // int to
         0: .line 1283
            iload 2 /* from */
            istore 4 /* i */
        start local 4 // int i
         1: goto 18
         2: .line 1284
      StackMap locals: int
      StackMap stack:
            iload 4 /* i */
            istore 5 /* m */
        start local 5 // int m
         3: .line 1285
            iload 4 /* i */
            iconst_1
            iadd
            istore 7 /* j */
        start local 7 // int j
         4: goto 9
         5: .line 1286
      StackMap locals: char[] char[] int int int int top int
      StackMap stack:
            aload 0 /* a */
            iload 7 /* j */
            caload
            aload 0 /* a */
            iload 5 /* m */
            caload
            invokestatic java.lang.Character.compare:(CC)I
            dup
            istore 6 /* u */
        start local 6 // int u
         6: iflt 7
            iload 6 /* u */
            ifne 8
            aload 1 /* b */
            iload 7 /* j */
            caload
            aload 1 /* b */
            iload 5 /* m */
            caload
            if_icmpge 8
         7: .line 1287
      StackMap locals: char[] char[] int int int int int int
      StackMap stack:
            iload 7 /* j */
            istore 5 /* m */
         8: .line 1285
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
        end local 6 // int u
      StackMap locals: char[] char[] int int int int top int
      StackMap stack:
         9: iload 7 /* j */
            iload 3 /* to */
            if_icmplt 5
        end local 7 // int j
        10: .line 1288
            iload 5 /* m */
            iload 4 /* i */
            if_icmpeq 17
        11: .line 1289
            aload 0 /* a */
            iload 4 /* i */
            caload
            istore 7 /* t */
        start local 7 // char t
        12: .line 1290
            aload 0 /* a */
            iload 4 /* i */
            aload 0 /* a */
            iload 5 /* m */
            caload
            castore
        13: .line 1291
            aload 0 /* a */
            iload 5 /* m */
            iload 7 /* t */
            castore
        14: .line 1292
            aload 1 /* b */
            iload 4 /* i */
            caload
            istore 7 /* t */
        15: .line 1293
            aload 1 /* b */
            iload 4 /* i */
            aload 1 /* b */
            iload 5 /* m */
            caload
            castore
        16: .line 1294
            aload 1 /* b */
            iload 5 /* m */
            iload 7 /* t */
            castore
        end local 7 // char t
        end local 5 // int m
        17: .line 1283
      StackMap locals: char[] char[] int int int
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 4 /* i */
            iload 3 /* to */
            iconst_1
            isub
            if_icmplt 2
        end local 4 // int i
        19: .line 1297
            return
        end local 3 // int to
        end local 2 // int from
        end local 1 // char[] b
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0     a  [C
            0   20     1     b  [C
            0   20     2  from  I
            0   20     3    to  I
            1   19     4     i  I
            3   17     5     m  I
            6    9     6     u  I
            4   10     7     j  I
           12   17     7     t  C
    MethodParameters:
      Name  Flags
      a     final
      b     final
      from  final
      to    final

  public static void quickSort(char[], char[], int, int);
    descriptor: ([C[CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=16, args_size=4
        start local 0 // char[] x
        start local 1 // char[] y
        start local 2 // int from
        start local 3 // int to
         0: .line 1325
            iload 3 /* to */
            iload 2 /* from */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 1326
            iload 4 /* len */
            bipush 16
            if_icmpge 4
         2: .line 1327
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.selectionSort:([C[CII)V
         3: .line 1328
            return
         4: .line 1331
      StackMap locals: int
      StackMap stack:
            iload 2 /* from */
            iload 4 /* len */
            iconst_2
            idiv
            iadd
            istore 5 /* m */
        start local 5 // int m
         5: .line 1332
            iload 2 /* from */
            istore 6 /* l */
        start local 6 // int l
         6: .line 1333
            iload 3 /* to */
            iconst_1
            isub
            istore 7 /* n */
        start local 7 // int n
         7: .line 1334
            iload 4 /* len */
            sipush 128
            if_icmple 12
         8: .line 1335
            iload 4 /* len */
            bipush 8
            idiv
            istore 8 /* s */
        start local 8 // int s
         9: .line 1336
            aload 0 /* x */
            aload 1 /* y */
            iload 6 /* l */
            iload 6 /* l */
            iload 8 /* s */
            iadd
            iload 6 /* l */
            iconst_2
            iload 8 /* s */
            imul
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3:([C[CIII)I
            istore 6 /* l */
        10: .line 1337
            aload 0 /* x */
            aload 1 /* y */
            iload 5 /* m */
            iload 8 /* s */
            isub
            iload 5 /* m */
            iload 5 /* m */
            iload 8 /* s */
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3:([C[CIII)I
            istore 5 /* m */
        11: .line 1338
            aload 0 /* x */
            aload 1 /* y */
            iload 7 /* n */
            iconst_2
            iload 8 /* s */
            imul
            isub
            iload 7 /* n */
            iload 8 /* s */
            isub
            iload 7 /* n */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3:([C[CIII)I
            istore 7 /* n */
        end local 8 // int s
        12: .line 1340
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* x */
            aload 1 /* y */
            iload 6 /* l */
            iload 5 /* m */
            iload 7 /* n */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.med3:([C[CIII)I
            istore 5 /* m */
        13: .line 1341
            aload 0 /* x */
            iload 5 /* m */
            caload
            istore 8 /* v */
        start local 8 // char v
        14: aload 1 /* y */
            iload 5 /* m */
            caload
            istore 9 /* w */
        start local 9 // char w
        15: .line 1343
            iload 2 /* from */
            istore 10 /* a */
        start local 10 // int a
        16: iload 10 /* a */
            istore 11 /* b */
        start local 11 // int b
        17: iload 3 /* to */
            iconst_1
            isub
            istore 12 /* c */
        start local 12 // int c
        18: iload 12 /* c */
            istore 13 /* d */
        start local 13 // int d
        19: .line 1346
            goto 23
        start local 14 // int comparison
        start local 15 // int t
        20: .line 1349
      StackMap locals: char[] char[] int int int int int int int int int int int int int int
      StackMap stack:
            iload 14 /* comparison */
            ifne 22
        21: .line 1350
            aload 0 /* x */
            aload 1 /* y */
            iload 10 /* a */
            iinc 10 /* a */ 1
            iload 11 /* b */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([C[CII)V
        22: .line 1351
      StackMap locals:
      StackMap stack:
            iinc 11 /* b */ 1
        end local 15 // int t
        end local 14 // int comparison
        23: .line 1346
      StackMap locals:
      StackMap stack:
            iload 11 /* b */
            iload 12 /* c */
            if_icmpgt 33
            aload 0 /* x */
            iload 11 /* b */
            caload
            iload 8 /* v */
            invokestatic java.lang.Character.compare:(CC)I
            dup
            istore 15 /* t */
        start local 15 // int t
        24: ifne 26
        25: .line 1347
            aload 1 /* y */
            iload 11 /* b */
            caload
            iload 9 /* w */
            invokestatic java.lang.Character.compare:(CC)I
            goto 27
        26: .line 1348
      StackMap locals: char[] char[] int int int int int int int int int int int int top int
      StackMap stack:
            iload 15 /* t */
      StackMap locals:
      StackMap stack: int
        27: dup
            istore 14 /* comparison */
        start local 14 // int comparison
        28: .line 1346
            ifle 20
        end local 15 // int t
        end local 14 // int comparison
        29: .line 1353
            goto 33
        start local 14 // int comparison
        start local 15 // int t
        30: .line 1356
      StackMap locals: char[] char[] int int int int int int int int int int int int int int
      StackMap stack:
            iload 14 /* comparison */
            ifne 32
        31: .line 1357
            aload 0 /* x */
            aload 1 /* y */
            iload 12 /* c */
            iload 13 /* d */
            iinc 13 /* d */ -1
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([C[CII)V
        32: .line 1358
      StackMap locals:
      StackMap stack:
            iinc 12 /* c */ -1
        end local 15 // int t
        end local 14 // int comparison
        33: .line 1353
      StackMap locals:
      StackMap stack:
            iload 12 /* c */
            iload 11 /* b */
            if_icmplt 39
            aload 0 /* x */
            iload 12 /* c */
            caload
            iload 8 /* v */
            invokestatic java.lang.Character.compare:(CC)I
            dup
            istore 15 /* t */
        start local 15 // int t
        34: ifne 36
        35: .line 1354
            aload 1 /* y */
            iload 12 /* c */
            caload
            iload 9 /* w */
            invokestatic java.lang.Character.compare:(CC)I
            goto 37
        36: .line 1355
      StackMap locals: char[] char[] int int int int int int int int int int int int top int
      StackMap stack:
            iload 15 /* t */
      StackMap locals:
      StackMap stack: int
        37: dup
            istore 14 /* comparison */
        start local 14 // int comparison
        38: .line 1353
            ifge 30
        end local 15 // int t
        end local 14 // int comparison
        39: .line 1360
      StackMap locals: char[] char[] int int int int int int int int int int int int
      StackMap stack:
            iload 11 /* b */
            iload 12 /* c */
            if_icmple 41
        40: .line 1361
            goto 43
        41: .line 1362
      StackMap locals:
      StackMap stack:
            aload 0 /* x */
            aload 1 /* y */
            iload 11 /* b */
            iinc 11 /* b */ 1
            iload 12 /* c */
            iinc 12 /* c */ -1
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([C[CII)V
        42: .line 1344
            goto 23
        43: .line 1366
      StackMap locals:
      StackMap stack:
            iload 10 /* a */
            iload 2 /* from */
            isub
            iload 11 /* b */
            iload 10 /* a */
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 14 /* s */
        start local 14 // int s
        44: .line 1367
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* from */
            iload 11 /* b */
            iload 14 /* s */
            isub
            iload 14 /* s */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([C[CIII)V
        45: .line 1368
            iload 13 /* d */
            iload 12 /* c */
            isub
            iload 3 /* to */
            iload 13 /* d */
            isub
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 14 /* s */
        46: .line 1369
            aload 0 /* x */
            aload 1 /* y */
            iload 11 /* b */
            iload 3 /* to */
            iload 14 /* s */
            isub
            iload 14 /* s */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.swap:([C[CIII)V
        47: .line 1371
            iload 11 /* b */
            iload 10 /* a */
            isub
            dup
            istore 14 /* s */
            iconst_1
            if_icmple 49
        48: .line 1372
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* from */
            iload 2 /* from */
            iload 14 /* s */
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([C[CII)V
        49: .line 1373
      StackMap locals: int
      StackMap stack:
            iload 13 /* d */
            iload 12 /* c */
            isub
            dup
            istore 14 /* s */
            iconst_1
            if_icmple 51
        50: .line 1374
            aload 0 /* x */
            aload 1 /* y */
            iload 3 /* to */
            iload 14 /* s */
            isub
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([C[CII)V
        51: .line 1375
      StackMap locals:
      StackMap stack:
            return
        end local 14 // int s
        end local 13 // int d
        end local 12 // int c
        end local 11 // int b
        end local 10 // int a
        end local 9 // char w
        end local 8 // char v
        end local 7 // int n
        end local 6 // int l
        end local 5 // int m
        end local 4 // int len
        end local 3 // int to
        end local 2 // int from
        end local 1 // char[] y
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   52     0           x  [C
            0   52     1           y  [C
            0   52     2        from  I
            0   52     3          to  I
            1   52     4         len  I
            5   52     5           m  I
            6   52     6           l  I
            7   52     7           n  I
            9   12     8           s  I
           14   52     8           v  C
           15   52     9           w  C
           16   52    10           a  I
           17   52    11           b  I
           18   52    12           c  I
           19   52    13           d  I
           20   23    14  comparison  I
           28   29    14  comparison  I
           30   33    14  comparison  I
           38   39    14  comparison  I
           20   23    15           t  I
           24   29    15           t  I
           30   33    15           t  I
           34   39    15           t  I
           44   52    14           s  I
    MethodParameters:
      Name  Flags
      x     final
      y     final
      from  final
      to    final

  public static void quickSort(char[], char[]);
    descriptor: ([C[C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // char[] x
        start local 1 // char[] y
         0: .line 1398
            aload 0 /* x */
            aload 1 /* y */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.ensureSameLength:([C[C)V
         1: .line 1399
            aload 0 /* x */
            aload 1 /* y */
            iconst_0
            aload 0 /* x */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([C[CII)V
         2: .line 1400
            return
        end local 1 // char[] y
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     x  [C
            0    3     1     y  [C
    MethodParameters:
      Name  Flags
      x     final
      y     final

  public static void parallelQuickSort(char[], char[], int, int);
    descriptor: ([C[CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // char[] x
        start local 1 // char[] y
        start local 2 // int from
        start local 3 // int to
         0: .line 1501
            iload 3 /* to */
            iload 2 /* from */
            isub
            sipush 8192
            if_icmpge 2
         1: .line 1502
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([C[CII)V
         2: .line 1503
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.ForkJoinPool
            dup
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            invokespecial java.util.concurrent.ForkJoinPool.<init>:(I)V
            astore 4 /* pool */
        start local 4 // java.util.concurrent.ForkJoinPool pool
         3: .line 1504
            aload 4 /* pool */
            new it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSort2
            dup
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* from */
            iload 3 /* to */
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSort2.<init>:([C[CII)V
            invokevirtual java.util.concurrent.ForkJoinPool.invoke:(Ljava/util/concurrent/ForkJoinTask;)Ljava/lang/Object;
            pop
         4: .line 1505
            aload 4 /* pool */
            invokevirtual java.util.concurrent.ForkJoinPool.shutdown:()V
         5: .line 1506
            return
        end local 4 // java.util.concurrent.ForkJoinPool pool
        end local 3 // int to
        end local 2 // int from
        end local 1 // char[] y
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     x  [C
            0    6     1     y  [C
            0    6     2  from  I
            0    6     3    to  I
            3    6     4  pool  Ljava/util/concurrent/ForkJoinPool;
    MethodParameters:
      Name  Flags
      x     final
      y     final
      from  final
      to    final

  public static void parallelQuickSort(char[], char[]);
    descriptor: ([C[C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // char[] x
        start local 1 // char[] y
         0: .line 1533
            aload 0 /* x */
            aload 1 /* y */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.ensureSameLength:([C[C)V
         1: .line 1534
            aload 0 /* x */
            aload 1 /* y */
            iconst_0
            aload 0 /* x */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.parallelQuickSort:([C[CII)V
         2: .line 1535
            return
        end local 1 // char[] y
        end local 0 // char[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     x  [C
            0    3     1     y  [C
    MethodParameters:
      Name  Flags
      x     final
      y     final

  public static void unstableSort(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 1554
            iload 2 /* to */
            iload 1 /* from */
            isub
            sipush 4000
            if_icmplt 3
         1: .line 1555
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.radixSort:([CII)V
         2: .line 1556
            goto 4
         3: .line 1557
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CII)V
         4: .line 1559
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     a  [C
            0    5     1  from  I
            0    5     2    to  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void unstableSort(char[]);
    descriptor: ([C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // char[] a
         0: .line 1571
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.unstableSort:([CII)V
         1: .line 1572
            return
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
    MethodParameters:
      Name  Flags
      a     final

  public static void unstableSort(char[], int, int, it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 1590
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
         1: .line 1591
            return
        end local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
            0    2     1  from  I
            0    2     2    to  I
            0    2     3  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      comp  

  public static void unstableSort(char[], it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CLit/unimi/dsi/fastutil/chars/CharComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // char[] a
        start local 1 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 1604
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            aload 1 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.unstableSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
         1: .line 1605
            return
        end local 1 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
            0    2     1  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
    MethodParameters:
      Name  Flags
      a     final
      comp  

  public static void mergeSort(char[], int, int, char[]);
    descriptor: ([CII[C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // char[] supp
         0: .line 1628
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 1630
            iload 4 /* len */
            bipush 16
            if_icmpge 4
         2: .line 1631
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.insertionSort:([CII)V
         3: .line 1632
            return
         4: .line 1635
      StackMap locals: int
      StackMap stack:
            iload 1 /* from */
            iload 2 /* to */
            iadd
            iconst_1
            iushr
            istore 5 /* mid */
        start local 5 // int mid
         5: .line 1636
            aload 3 /* supp */
            iload 1 /* from */
            iload 5 /* mid */
            aload 0 /* a */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.mergeSort:([CII[C)V
         6: .line 1637
            aload 3 /* supp */
            iload 5 /* mid */
            iload 2 /* to */
            aload 0 /* a */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.mergeSort:([CII[C)V
         7: .line 1640
            aload 3 /* supp */
            iload 5 /* mid */
            iconst_1
            isub
            caload
            aload 3 /* supp */
            iload 5 /* mid */
            caload
            if_icmpgt 10
         8: .line 1641
            aload 3 /* supp */
            iload 1 /* from */
            aload 0 /* a */
            iload 1 /* from */
            iload 4 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 1642
            return
        10: .line 1645
      StackMap locals: int
      StackMap stack:
            iload 1 /* from */
            istore 6 /* i */
        start local 6 // int i
        11: iload 1 /* from */
            istore 7 /* p */
        start local 7 // int p
        12: iload 5 /* mid */
            istore 8 /* q */
        start local 8 // int q
        13: goto 18
        14: .line 1646
      StackMap locals: int int int
      StackMap stack:
            iload 8 /* q */
            iload 2 /* to */
            if_icmpge 15
            iload 7 /* p */
            iload 5 /* mid */
            if_icmpge 16
            aload 3 /* supp */
            iload 7 /* p */
            caload
            aload 3 /* supp */
            iload 8 /* q */
            caload
            if_icmpgt 16
        15: .line 1647
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 6 /* i */
            aload 3 /* supp */
            iload 7 /* p */
            iinc 7 /* p */ 1
            caload
            castore
            goto 17
        16: .line 1649
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 6 /* i */
            aload 3 /* supp */
            iload 8 /* q */
            iinc 8 /* q */ 1
            caload
            castore
        17: .line 1645
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 6 /* i */
            iload 2 /* to */
            if_icmplt 14
        end local 8 // int q
        end local 7 // int p
        end local 6 // int i
        19: .line 1651
            return
        end local 5 // int mid
        end local 4 // int len
        end local 3 // char[] supp
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0     a  [C
            0   20     1  from  I
            0   20     2    to  I
            0   20     3  supp  [C
            1   20     4   len  I
            5   20     5   mid  I
           11   19     6     i  I
           12   19     7     p  I
           13   19     8     q  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      supp  final

  public static void mergeSort(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 1669
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            aload 0 /* a */
            invokevirtual char[].clone:()Ljava/lang/Object;
            checkcast char[]
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.mergeSort:([CII[C)V
         1: .line 1670
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
            0    2     1  from  I
            0    2     2    to  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void mergeSort(char[]);
    descriptor: ([C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // char[] a
         0: .line 1683
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.mergeSort:([CII)V
         1: .line 1684
            return
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
    MethodParameters:
      Name  Flags
      a     final

  public static void mergeSort(char[], int, int, it.unimi.dsi.fastutil.chars.CharComparator, char[]);
    descriptor: ([CIILit/unimi/dsi/fastutil/chars/CharComparator;[C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
        start local 4 // char[] supp
         0: .line 1708
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 5 /* len */
        start local 5 // int len
         1: .line 1710
            iload 5 /* len */
            bipush 16
            if_icmpge 4
         2: .line 1711
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.insertionSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
         3: .line 1712
            return
         4: .line 1715
      StackMap locals: int
      StackMap stack:
            iload 1 /* from */
            iload 2 /* to */
            iadd
            iconst_1
            iushr
            istore 6 /* mid */
        start local 6 // int mid
         5: .line 1716
            aload 4 /* supp */
            iload 1 /* from */
            iload 6 /* mid */
            aload 3 /* comp */
            aload 0 /* a */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.mergeSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;[C)V
         6: .line 1717
            aload 4 /* supp */
            iload 6 /* mid */
            iload 2 /* to */
            aload 3 /* comp */
            aload 0 /* a */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.mergeSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;[C)V
         7: .line 1720
            aload 3 /* comp */
            aload 4 /* supp */
            iload 6 /* mid */
            iconst_1
            isub
            caload
            aload 4 /* supp */
            iload 6 /* mid */
            caload
            invokeinterface it.unimi.dsi.fastutil.chars.CharComparator.compare:(CC)I
            ifgt 10
         8: .line 1721
            aload 4 /* supp */
            iload 1 /* from */
            aload 0 /* a */
            iload 1 /* from */
            iload 5 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 1722
            return
        10: .line 1725
      StackMap locals: int
      StackMap stack:
            iload 1 /* from */
            istore 7 /* i */
        start local 7 // int i
        11: iload 1 /* from */
            istore 8 /* p */
        start local 8 // int p
        12: iload 6 /* mid */
            istore 9 /* q */
        start local 9 // int q
        13: goto 18
        14: .line 1726
      StackMap locals: int int int
      StackMap stack:
            iload 9 /* q */
            iload 2 /* to */
            if_icmpge 15
            iload 8 /* p */
            iload 6 /* mid */
            if_icmpge 16
            aload 3 /* comp */
            aload 4 /* supp */
            iload 8 /* p */
            caload
            aload 4 /* supp */
            iload 9 /* q */
            caload
            invokeinterface it.unimi.dsi.fastutil.chars.CharComparator.compare:(CC)I
            ifgt 16
        15: .line 1727
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 7 /* i */
            aload 4 /* supp */
            iload 8 /* p */
            iinc 8 /* p */ 1
            caload
            castore
            goto 17
        16: .line 1729
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 7 /* i */
            aload 4 /* supp */
            iload 9 /* q */
            iinc 9 /* q */ 1
            caload
            castore
        17: .line 1725
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 7 /* i */
            iload 2 /* to */
            if_icmplt 14
        end local 9 // int q
        end local 8 // int p
        end local 7 // int i
        19: .line 1731
            return
        end local 6 // int mid
        end local 5 // int len
        end local 4 // char[] supp
        end local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0     a  [C
            0   20     1  from  I
            0   20     2    to  I
            0   20     3  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
            0   20     4  supp  [C
            1   20     5   len  I
            5   20     6   mid  I
           11   19     7     i  I
           12   19     8     p  I
           13   19     9     q  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      comp  
      supp  final

  public static void mergeSort(char[], int, int, it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 1751
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            aload 0 /* a */
            invokevirtual char[].clone:()Ljava/lang/Object;
            checkcast char[]
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.mergeSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;[C)V
         1: .line 1752
            return
        end local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
            0    2     1  from  I
            0    2     2    to  I
            0    2     3  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      comp  

  public static void mergeSort(char[], it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CLit/unimi/dsi/fastutil/chars/CharComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // char[] a
        start local 1 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 1768
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            aload 1 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.mergeSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
         1: .line 1769
            return
        end local 1 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
            0    2     1  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
    MethodParameters:
      Name  Flags
      a     final
      comp  

  public static void stableSort(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 1793
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.unstableSort:([CII)V
         1: .line 1794
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
            0    2     1  from  I
            0    2     2    to  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void stableSort(char[]);
    descriptor: ([C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // char[] a
         0: .line 1811
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.stableSort:([CII)V
         1: .line 1812
            return
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
    MethodParameters:
      Name  Flags
      a     final

  public static void stableSort(char[], int, int, it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 1835
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.mergeSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
         1: .line 1836
            return
        end local 3 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
            0    2     1  from  I
            0    2     2    to  I
            0    2     3  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      comp  

  public static void stableSort(char[], it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CLit/unimi/dsi/fastutil/chars/CharComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // char[] a
        start local 1 // it.unimi.dsi.fastutil.chars.CharComparator comp
         0: .line 1855
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            aload 1 /* comp */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.stableSort:([CIILit/unimi/dsi/fastutil/chars/CharComparator;)V
         1: .line 1856
            return
        end local 1 // it.unimi.dsi.fastutil.chars.CharComparator comp
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
            0    2     1  comp  Lit/unimi/dsi/fastutil/chars/CharComparator;
    MethodParameters:
      Name  Flags
      a     final
      comp  

  public static int binarySearch(char[], int, int, char);
    descriptor: ([CIIC)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // char key
         0: .line 1884
            iinc 2 /* to */ -1
         1: .line 1885
            goto 9
         2: .line 1886
      StackMap locals:
      StackMap stack:
            iload 1 /* from */
            iload 2 /* to */
            iadd
            iconst_1
            iushr
            istore 5 /* mid */
        start local 5 // int mid
         3: .line 1887
            aload 0 /* a */
            iload 5 /* mid */
            caload
            istore 4 /* midVal */
        start local 4 // char midVal
         4: .line 1888
            iload 4 /* midVal */
            iload 3 /* key */
            if_icmpge 6
         5: .line 1889
            iload 5 /* mid */
            iconst_1
            iadd
            istore 1 /* from */
            goto 9
         6: .line 1890
      StackMap locals: int int
      StackMap stack:
            iload 4 /* midVal */
            iload 3 /* key */
            if_icmple 8
         7: .line 1891
            iload 5 /* mid */
            iconst_1
            isub
            istore 2 /* to */
            goto 9
         8: .line 1893
      StackMap locals:
      StackMap stack:
            iload 5 /* mid */
            ireturn
        end local 5 // int mid
        end local 4 // char midVal
         9: .line 1885
      StackMap locals:
      StackMap stack:
            iload 1 /* from */
            iload 2 /* to */
            if_icmple 2
        10: .line 1895
            iload 1 /* from */
            iconst_1
            iadd
            ineg
            ireturn
        end local 3 // char key
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0       a  [C
            0   11     1    from  I
            0   11     2      to  I
            0   11     3     key  C
            4    9     4  midVal  C
            3    9     5     mid  I
    MethodParameters:
      Name  Flags
      a     final
      from  
      to    
      key   final

  public static int binarySearch(char[], char);
    descriptor: ([CC)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // char[] a
        start local 1 // char key
         0: .line 1917
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            iload 1 /* key */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.binarySearch:([CIIC)I
            ireturn
        end local 1 // char key
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  [C
            0    1     1   key  C
    MethodParameters:
      Name  Flags
      a     final
      key   final

  public static int binarySearch(char[], int, int, char, it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CIICLit/unimi/dsi/fastutil/chars/CharComparator;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=5
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // char key
        start local 4 // it.unimi.dsi.fastutil.chars.CharComparator c
         0: .line 1947
            iinc 2 /* to */ -1
         1: .line 1948
            goto 10
         2: .line 1949
      StackMap locals:
      StackMap stack:
            iload 1 /* from */
            iload 2 /* to */
            iadd
            iconst_1
            iushr
            istore 6 /* mid */
        start local 6 // int mid
         3: .line 1950
            aload 0 /* a */
            iload 6 /* mid */
            caload
            istore 5 /* midVal */
        start local 5 // char midVal
         4: .line 1951
            aload 4 /* c */
            iload 5 /* midVal */
            iload 3 /* key */
            invokeinterface it.unimi.dsi.fastutil.chars.CharComparator.compare:(CC)I
            istore 7 /* cmp */
        start local 7 // int cmp
         5: .line 1952
            iload 7 /* cmp */
            ifge 7
         6: .line 1953
            iload 6 /* mid */
            iconst_1
            iadd
            istore 1 /* from */
            goto 10
         7: .line 1954
      StackMap locals: int int int
      StackMap stack:
            iload 7 /* cmp */
            ifle 9
         8: .line 1955
            iload 6 /* mid */
            iconst_1
            isub
            istore 2 /* to */
            goto 10
         9: .line 1957
      StackMap locals:
      StackMap stack:
            iload 6 /* mid */
            ireturn
        end local 7 // int cmp
        end local 6 // int mid
        end local 5 // char midVal
        10: .line 1948
      StackMap locals:
      StackMap stack:
            iload 1 /* from */
            iload 2 /* to */
            if_icmple 2
        11: .line 1959
            iload 1 /* from */
            iconst_1
            iadd
            ineg
            ireturn
        end local 4 // it.unimi.dsi.fastutil.chars.CharComparator c
        end local 3 // char key
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0       a  [C
            0   12     1    from  I
            0   12     2      to  I
            0   12     3     key  C
            0   12     4       c  Lit/unimi/dsi/fastutil/chars/CharComparator;
            4   10     5  midVal  C
            3   10     6     mid  I
            5   10     7     cmp  I
    MethodParameters:
      Name  Flags
      a     final
      from  
      to    
      key   final
      c     final

  public static int binarySearch(char[], char, it.unimi.dsi.fastutil.chars.CharComparator);
    descriptor: ([CCLit/unimi/dsi/fastutil/chars/CharComparator;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // char[] a
        start local 1 // char key
        start local 2 // it.unimi.dsi.fastutil.chars.CharComparator c
         0: .line 1984
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            iload 1 /* key */
            aload 2 /* c */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.binarySearch:([CIICLit/unimi/dsi/fastutil/chars/CharComparator;)I
            ireturn
        end local 2 // it.unimi.dsi.fastutil.chars.CharComparator c
        end local 1 // char key
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  [C
            0    1     1   key  C
            0    1     2     c  Lit/unimi/dsi/fastutil/chars/CharComparator;
    MethodParameters:
      Name  Flags
      a     final
      key   final
      c     final

  public static void radixSort(char[]);
    descriptor: ([C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // char[] a
         0: .line 2020
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.radixSort:([CII)V
         1: .line 2021
            return
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
    MethodParameters:
      Name  Flags
      a     final

  public static void radixSort(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=20, args_size=3
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 2043
            iload 2 /* to */
            iload 1 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2044
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CII)V
         2: .line 2045
            return
         3: .line 2049
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* stackPos */
        start local 3 // int stackPos
         4: .line 2050
            sipush 256
            newarray 10
            astore 4 /* offsetStack */
        start local 4 // int[] offsetStack
         5: .line 2051
            sipush 256
            newarray 10
            astore 5 /* lengthStack */
        start local 5 // int[] lengthStack
         6: .line 2052
            sipush 256
            newarray 10
            astore 6 /* levelStack */
        start local 6 // int[] levelStack
         7: .line 2053
            aload 4 /* offsetStack */
            iload 3 /* stackPos */
            iload 1 /* from */
            iastore
         8: .line 2054
            aload 5 /* lengthStack */
            iload 3 /* stackPos */
            iload 2 /* to */
            iload 1 /* from */
            isub
            iastore
         9: .line 2055
            aload 6 /* levelStack */
            iload 3 /* stackPos */
            iinc 3 /* stackPos */ 1
            iconst_0
            iastore
        10: .line 2056
            sipush 256
            newarray 10
            astore 7 /* count */
        start local 7 // int[] count
        11: .line 2057
            sipush 256
            newarray 10
            astore 8 /* pos */
        start local 8 // int[] pos
        12: .line 2058
            goto 53
        13: .line 2059
      StackMap locals: char[] int int int int[] int[] int[] int[] int[]
      StackMap stack:
            aload 4 /* offsetStack */
            iinc 3 /* stackPos */ -1
            iload 3 /* stackPos */
            iaload
            istore 9 /* first */
        start local 9 // int first
        14: .line 2060
            aload 5 /* lengthStack */
            iload 3 /* stackPos */
            iaload
            istore 10 /* length */
        start local 10 // int length
        15: .line 2061
            aload 6 /* levelStack */
            iload 3 /* stackPos */
            iaload
            istore 11 /* level */
        start local 11 // int level
        16: .line 2063
            iconst_1
            iload 11 /* level */
            iconst_2
            irem
            isub
            bipush 8
            imul
            istore 12 /* shift */
        start local 12 // int shift
        17: .line 2068
            iload 9 /* first */
            iload 10 /* length */
            iadd
            istore 13 /* i */
        start local 13 // int i
        18: goto 20
        19: .line 2069
      StackMap locals: char[] int int int int[] int[] int[] int[] int[] int int int int int
      StackMap stack:
            aload 7 /* count */
            aload 0 /* a */
            iload 13 /* i */
            caload
            iload 12 /* shift */
            iushr
            sipush 255
            iand
            dup2
            iaload
            iconst_1
            iadd
            iastore
        20: .line 2068
      StackMap locals:
      StackMap stack:
            iload 13 /* i */
            iinc 13 /* i */ -1
            iload 9 /* first */
            if_icmpne 19
        end local 13 // int i
        21: .line 2071
            iconst_m1
            istore 13 /* lastUsed */
        start local 13 // int lastUsed
        22: .line 2072
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        23: iload 9 /* first */
            istore 15 /* p */
        start local 15 // int p
        24: goto 29
        25: .line 2073
      StackMap locals: int int
      StackMap stack:
            aload 7 /* count */
            iload 14 /* i */
            iaload
            ifeq 27
        26: .line 2074
            iload 14 /* i */
            istore 13 /* lastUsed */
        27: .line 2075
      StackMap locals:
      StackMap stack:
            aload 8 /* pos */
            iload 14 /* i */
            iload 15 /* p */
            aload 7 /* count */
            iload 14 /* i */
            iaload
            iadd
            dup
            istore 15 /* p */
            iastore
        28: .line 2072
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 14 /* i */
            sipush 256
            if_icmplt 25
        end local 15 // int p
        end local 14 // int i
        30: .line 2077
            iload 9 /* first */
            iload 10 /* length */
            iadd
            aload 7 /* count */
            iload 13 /* lastUsed */
            iaload
            isub
            istore 14 /* end */
        start local 14 // int end
        31: .line 2079
            iload 9 /* first */
            istore 15 /* i */
        start local 15 // int i
        32: iconst_m1
            istore 16 /* c */
        start local 16 // int c
        33: goto 52
        34: .line 2080
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 15 /* i */
            caload
            istore 18 /* t */
        start local 18 // char t
        35: .line 2081
            iload 18 /* t */
            iload 12 /* shift */
            iushr
            sipush 255
            iand
            istore 16 /* c */
        36: .line 2082
            iload 15 /* i */
            iload 14 /* end */
            if_icmpge 45
        37: .line 2083
            goto 42
        start local 17 // int d
        38: .line 2084
      StackMap locals: int int
      StackMap stack:
            iload 18 /* t */
            istore 19 /* z */
        start local 19 // char z
        39: .line 2085
            aload 0 /* a */
            iload 17 /* d */
            caload
            istore 18 /* t */
        40: .line 2086
            aload 0 /* a */
            iload 17 /* d */
            iload 19 /* z */
            castore
        41: .line 2087
            iload 18 /* t */
            iload 12 /* shift */
            iushr
            sipush 255
            iand
            istore 16 /* c */
        end local 19 // char z
        end local 17 // int d
        42: .line 2083
      StackMap locals: char[] int int int int[] int[] int[] int[] int[] int int int int int int int int top int
      StackMap stack:
            aload 8 /* pos */
            iload 16 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 17 /* d */
        start local 17 // int d
        43: iload 15 /* i */
            if_icmpgt 38
        44: .line 2089
            aload 0 /* a */
            iload 15 /* i */
            iload 18 /* t */
            castore
        end local 17 // int d
        45: .line 2091
      StackMap locals:
      StackMap stack:
            iload 11 /* level */
            iconst_1
            if_icmpge 51
            aload 7 /* count */
            iload 16 /* c */
            iaload
            iconst_1
            if_icmple 51
        46: .line 2092
            aload 7 /* count */
            iload 16 /* c */
            iaload
            sipush 1024
            if_icmpge 48
        47: .line 2093
            aload 0 /* a */
            iload 15 /* i */
            iload 15 /* i */
            aload 7 /* count */
            iload 16 /* c */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CII)V
            goto 51
        48: .line 2095
      StackMap locals:
      StackMap stack:
            aload 4 /* offsetStack */
            iload 3 /* stackPos */
            iload 15 /* i */
            iastore
        49: .line 2096
            aload 5 /* lengthStack */
            iload 3 /* stackPos */
            aload 7 /* count */
            iload 16 /* c */
            iaload
            iastore
        50: .line 2097
            aload 6 /* levelStack */
            iload 3 /* stackPos */
            iinc 3 /* stackPos */ 1
            iload 11 /* level */
            iconst_1
            iadd
            iastore
        end local 18 // char t
        51: .line 2079
      StackMap locals: char[] int int int int[] int[] int[] int[] int[] int int int int int int int int
      StackMap stack:
            iload 15 /* i */
            aload 7 /* count */
            iload 16 /* c */
            iaload
            iadd
            istore 15 /* i */
            aload 7 /* count */
            iload 16 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        52: iload 15 /* i */
            iload 14 /* end */
            if_icmple 34
        end local 16 // int c
        end local 15 // int i
        end local 14 // int end
        end local 13 // int lastUsed
        end local 12 // int shift
        end local 11 // int level
        end local 10 // int length
        end local 9 // int first
        53: .line 2058
      StackMap locals: char[] int int int int[] int[] int[] int[] int[]
      StackMap stack:
            iload 3 /* stackPos */
            ifgt 13
        54: .line 2102
            return
        end local 8 // int[] pos
        end local 7 // int[] count
        end local 6 // int[] levelStack
        end local 5 // int[] lengthStack
        end local 4 // int[] offsetStack
        end local 3 // int stackPos
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   55     0            a  [C
            0   55     1         from  I
            0   55     2           to  I
            4   55     3     stackPos  I
            5   55     4  offsetStack  [I
            6   55     5  lengthStack  [I
            7   55     6   levelStack  [I
           11   55     7        count  [I
           12   55     8          pos  [I
           14   53     9        first  I
           15   53    10       length  I
           16   53    11        level  I
           17   53    12        shift  I
           18   21    13            i  I
           22   53    13     lastUsed  I
           23   30    14            i  I
           24   30    15            p  I
           31   53    14          end  I
           32   53    15            i  I
           33   53    16            c  I
           38   42    17            d  I
           43   45    17            d  I
           35   51    18            t  C
           39   42    19            z  C
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void parallelRadixSort(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 2136
            iload 2 /* to */
            iload 1 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2137
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CII)V
         2: .line 2138
            return
         3: .line 2141
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
            astore 3 /* queue */
        start local 3 // java.util.concurrent.LinkedBlockingQueue queue
         4: .line 2142
            aload 3 /* queue */
            new it.unimi.dsi.fastutil.chars.CharArrays$Segment
            dup
            iload 1 /* from */
            iload 2 /* to */
            iload 1 /* from */
            isub
            iconst_0
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
         5: .line 2143
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_1
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            astore 4 /* queueSize */
        start local 4 // java.util.concurrent.atomic.AtomicInteger queueSize
         6: .line 2144
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            istore 5 /* numberOfThreads */
        start local 5 // int numberOfThreads
         7: .line 2145
            iload 5 /* numberOfThreads */
         8: .line 2146
            invokestatic java.util.concurrent.Executors.defaultThreadFactory:()Ljava/util/concurrent/ThreadFactory;
         9: .line 2145
            invokestatic java.util.concurrent.Executors.newFixedThreadPool:(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
            astore 6 /* executorService */
        start local 6 // java.util.concurrent.ExecutorService executorService
        10: .line 2147
            new java.util.concurrent.ExecutorCompletionService
            dup
        11: .line 2148
            aload 6 /* executorService */
        12: .line 2147
            invokespecial java.util.concurrent.ExecutorCompletionService.<init>:(Ljava/util/concurrent/Executor;)V
            astore 7 /* executorCompletionService */
        start local 7 // java.util.concurrent.ExecutorCompletionService executorCompletionService
        13: .line 2149
            iload 5 /* numberOfThreads */
            istore 8 /* j */
        start local 8 // int j
        14: goto 16
        15: .line 2150
      StackMap locals: char[] int int java.util.concurrent.LinkedBlockingQueue java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorCompletionService int
      StackMap stack:
            aload 7 /* executorCompletionService */
            aload 4 /* queueSize */
            iload 5 /* numberOfThreads */
            aload 3 /* queue */
            aload 0 /* a */
            invokedynamic call(Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[C)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  it/unimi/dsi/fastutil/chars/CharArrays.lambda$0(Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[C)Ljava/lang/Void; (6)
                  ()Ljava/lang/Void;
            invokevirtual java.util.concurrent.ExecutorCompletionService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            pop
        16: .line 2149
      StackMap locals:
      StackMap stack:
            iload 8 /* j */
            iinc 8 /* j */ -1
            ifne 15
        end local 8 // int j
        17: .line 2207
            aconst_null
            astore 8 /* problem */
        start local 8 // java.lang.Throwable problem
        18: .line 2208
            iload 5 /* numberOfThreads */
            istore 9 /* i */
        start local 9 // int i
        19: goto 24
        20: .line 2210
      StackMap locals: char[] int int java.util.concurrent.LinkedBlockingQueue java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorCompletionService java.lang.Throwable int
      StackMap stack:
            aload 7 /* executorCompletionService */
            invokevirtual java.util.concurrent.ExecutorCompletionService.take:()Ljava/util/concurrent/Future;
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        21: .line 2211
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Exception
        22: astore 10 /* e */
        start local 10 // java.lang.Exception e
        23: .line 2212
            aload 10 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            astore 8 /* problem */
        end local 10 // java.lang.Exception e
        24: .line 2208
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            iinc 9 /* i */ -1
            ifne 20
        end local 9 // int i
        25: .line 2214
            aload 6 /* executorService */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
        26: .line 2215
            aload 8 /* problem */
            ifnull 30
        27: .line 2216
            aload 8 /* problem */
            instanceof java.lang.RuntimeException
            ifeq 28
            aload 8 /* problem */
            checkcast java.lang.RuntimeException
            goto 29
      StackMap locals:
      StackMap stack:
        28: new java.lang.RuntimeException
            dup
            aload 8 /* problem */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        29: athrow
        30: .line 2217
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.lang.Throwable problem
        end local 7 // java.util.concurrent.ExecutorCompletionService executorCompletionService
        end local 6 // java.util.concurrent.ExecutorService executorService
        end local 5 // int numberOfThreads
        end local 4 // java.util.concurrent.atomic.AtomicInteger queueSize
        end local 3 // java.util.concurrent.LinkedBlockingQueue queue
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   31     0                          a  [C
            0   31     1                       from  I
            0   31     2                         to  I
            4   31     3                      queue  Ljava/util/concurrent/LinkedBlockingQueue<Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;>;
            6   31     4                  queueSize  Ljava/util/concurrent/atomic/AtomicInteger;
            7   31     5            numberOfThreads  I
           10   31     6            executorService  Ljava/util/concurrent/ExecutorService;
           13   31     7  executorCompletionService  Ljava/util/concurrent/ExecutorCompletionService<Ljava/lang/Void;>;
           14   17     8                          j  I
           18   31     8                    problem  Ljava/lang/Throwable;
           19   25     9                          i  I
           23   24    10                          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          20    21      22  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void parallelRadixSort(char[]);
    descriptor: ([C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // char[] a
         0: .line 2234
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.parallelRadixSort:([CII)V
         1: .line 2235
            return
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
    MethodParameters:
      Name  Flags
      a     final

  public static void radixSortIndirect(int[], char[], boolean);
    descriptor: ([I[CZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // int[] perm
        start local 1 // char[] a
        start local 2 // boolean stable
         0: .line 2261
            aload 0 /* perm */
            aload 1 /* a */
            iconst_0
            aload 0 /* perm */
            arraylength
            iload 2 /* stable */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.radixSortIndirect:([I[CIIZ)V
         1: .line 2262
            return
        end local 2 // boolean stable
        end local 1 // char[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    perm  [I
            0    2     1       a  [C
            0    2     2  stable  Z
    MethodParameters:
        Name  Flags
      perm    final
      a       final
      stable  final

  public static void radixSortIndirect(int[], char[], int, int, boolean);
    descriptor: ([I[CIIZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=23, args_size=5
        start local 0 // int[] perm
        start local 1 // char[] a
        start local 2 // int from
        start local 3 // int to
        start local 4 // boolean stable
         0: .line 2295
            iload 3 /* to */
            iload 2 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2296
            aload 0 /* perm */
            aload 1 /* a */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.insertionSortIndirect:([I[CII)V
         2: .line 2297
            return
         3: .line 2301
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* stackPos */
        start local 5 // int stackPos
         4: .line 2302
            sipush 256
            newarray 10
            astore 6 /* offsetStack */
        start local 6 // int[] offsetStack
         5: .line 2303
            sipush 256
            newarray 10
            astore 7 /* lengthStack */
        start local 7 // int[] lengthStack
         6: .line 2304
            sipush 256
            newarray 10
            astore 8 /* levelStack */
        start local 8 // int[] levelStack
         7: .line 2305
            aload 6 /* offsetStack */
            iload 5 /* stackPos */
            iload 2 /* from */
            iastore
         8: .line 2306
            aload 7 /* lengthStack */
            iload 5 /* stackPos */
            iload 3 /* to */
            iload 2 /* from */
            isub
            iastore
         9: .line 2307
            aload 8 /* levelStack */
            iload 5 /* stackPos */
            iinc 5 /* stackPos */ 1
            iconst_0
            iastore
        10: .line 2308
            sipush 256
            newarray 10
            astore 9 /* count */
        start local 9 // int[] count
        11: .line 2309
            sipush 256
            newarray 10
            astore 10 /* pos */
        start local 10 // int[] pos
        12: .line 2310
            iload 4 /* stable */
            ifeq 13
            aload 0 /* perm */
            arraylength
            newarray 10
            goto 14
      StackMap locals: int[] char[] int int int int int[] int[] int[] int[] int[]
      StackMap stack:
        13: aconst_null
      StackMap locals:
      StackMap stack: int[]
        14: astore 11 /* support */
        start local 11 // int[] support
        15: .line 2311
            goto 78
        16: .line 2312
      StackMap locals: int[]
      StackMap stack:
            aload 6 /* offsetStack */
            iinc 5 /* stackPos */ -1
            iload 5 /* stackPos */
            iaload
            istore 12 /* first */
        start local 12 // int first
        17: .line 2313
            aload 7 /* lengthStack */
            iload 5 /* stackPos */
            iaload
            istore 13 /* length */
        start local 13 // int length
        18: .line 2314
            aload 8 /* levelStack */
            iload 5 /* stackPos */
            iaload
            istore 14 /* level */
        start local 14 // int level
        19: .line 2316
            iconst_1
            iload 14 /* level */
            iconst_2
            irem
            isub
            bipush 8
            imul
            istore 15 /* shift */
        start local 15 // int shift
        20: .line 2321
            iload 12 /* first */
            iload 13 /* length */
            iadd
            istore 16 /* i */
        start local 16 // int i
        21: goto 23
        22: .line 2322
      StackMap locals: int[] char[] int int int int int[] int[] int[] int[] int[] int[] int int int int int
      StackMap stack:
            aload 9 /* count */
            aload 1 /* a */
            aload 0 /* perm */
            iload 16 /* i */
            iaload
            caload
            iload 15 /* shift */
            iushr
            sipush 255
            iand
            dup2
            iaload
            iconst_1
            iadd
            iastore
        23: .line 2321
      StackMap locals:
      StackMap stack:
            iload 16 /* i */
            iinc 16 /* i */ -1
            iload 12 /* first */
            if_icmpne 22
        end local 16 // int i
        24: .line 2324
            iconst_m1
            istore 16 /* lastUsed */
        start local 16 // int lastUsed
        25: .line 2325
            iconst_0
            istore 17 /* i */
        start local 17 // int i
        26: iload 4 /* stable */
            ifeq 27
            iconst_0
            goto 28
      StackMap locals: int
      StackMap stack:
        27: iload 12 /* first */
      StackMap locals:
      StackMap stack: int
        28: istore 18 /* p */
        start local 18 // int p
        29: goto 34
        30: .line 2326
      StackMap locals: int
      StackMap stack:
            aload 9 /* count */
            iload 17 /* i */
            iaload
            ifeq 32
        31: .line 2327
            iload 17 /* i */
            istore 16 /* lastUsed */
        32: .line 2328
      StackMap locals:
      StackMap stack:
            aload 10 /* pos */
            iload 17 /* i */
            iload 18 /* p */
            aload 9 /* count */
            iload 17 /* i */
            iaload
            iadd
            dup
            istore 18 /* p */
            iastore
        33: .line 2325
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 17 /* i */
            sipush 256
            if_icmplt 30
        end local 18 // int p
        end local 17 // int i
        35: .line 2330
            iload 4 /* stable */
            ifeq 55
        36: .line 2331
            iload 12 /* first */
            iload 13 /* length */
            iadd
            istore 17 /* i */
        start local 17 // int i
        37: goto 39
        38: .line 2332
      StackMap locals:
      StackMap stack:
            aload 11 /* support */
            aload 10 /* pos */
            aload 1 /* a */
            aload 0 /* perm */
            iload 17 /* i */
            iaload
            caload
            iload 15 /* shift */
            iushr
            sipush 255
            iand
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            aload 0 /* perm */
            iload 17 /* i */
            iaload
            iastore
        39: .line 2331
      StackMap locals:
      StackMap stack:
            iload 17 /* i */
            iinc 17 /* i */ -1
            iload 12 /* first */
            if_icmpne 38
        end local 17 // int i
        40: .line 2333
            aload 11 /* support */
            iconst_0
            aload 0 /* perm */
            iload 12 /* first */
            iload 13 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        41: .line 2334
            iconst_0
            istore 17 /* i */
        start local 17 // int i
        42: iload 12 /* first */
            istore 18 /* p */
        start local 18 // int p
        43: goto 52
        44: .line 2335
      StackMap locals: int
      StackMap stack:
            iload 14 /* level */
            iconst_1
            if_icmpge 50
            aload 9 /* count */
            iload 17 /* i */
            iaload
            iconst_1
            if_icmple 50
        45: .line 2336
            aload 9 /* count */
            iload 17 /* i */
            iaload
            sipush 1024
            if_icmpge 47
        46: .line 2337
            aload 0 /* perm */
            aload 1 /* a */
            iload 18 /* p */
            iload 18 /* p */
            aload 9 /* count */
            iload 17 /* i */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.insertionSortIndirect:([I[CII)V
            goto 50
        47: .line 2339
      StackMap locals:
      StackMap stack:
            aload 6 /* offsetStack */
            iload 5 /* stackPos */
            iload 18 /* p */
            iastore
        48: .line 2340
            aload 7 /* lengthStack */
            iload 5 /* stackPos */
            aload 9 /* count */
            iload 17 /* i */
            iaload
            iastore
        49: .line 2341
            aload 8 /* levelStack */
            iload 5 /* stackPos */
            iinc 5 /* stackPos */ 1
            iload 14 /* level */
            iconst_1
            iadd
            iastore
        50: .line 2344
      StackMap locals:
      StackMap stack:
            iload 18 /* p */
            aload 9 /* count */
            iload 17 /* i */
            iaload
            iadd
            istore 18 /* p */
        51: .line 2334
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
        52: iload 17 /* i */
            iload 16 /* lastUsed */
            if_icmple 44
        end local 18 // int p
        end local 17 // int i
        53: .line 2346
            aload 9 /* count */
            iconst_0
            invokestatic java.util.Arrays.fill:([II)V
        54: .line 2347
            goto 78
        55: .line 2348
      StackMap locals:
      StackMap stack:
            iload 12 /* first */
            iload 13 /* length */
            iadd
            aload 9 /* count */
            iload 16 /* lastUsed */
            iaload
            isub
            istore 17 /* end */
        start local 17 // int end
        56: .line 2350
            iload 12 /* first */
            istore 18 /* i */
        start local 18 // int i
        57: iconst_m1
            istore 19 /* c */
        start local 19 // int c
        58: goto 77
        59: .line 2351
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* perm */
            iload 18 /* i */
            iaload
            istore 21 /* t */
        start local 21 // int t
        60: .line 2352
            aload 1 /* a */
            iload 21 /* t */
            caload
            iload 15 /* shift */
            iushr
            sipush 255
            iand
            istore 19 /* c */
        61: .line 2353
            iload 18 /* i */
            iload 17 /* end */
            if_icmpge 70
        62: .line 2354
            goto 67
        start local 20 // int d
        63: .line 2355
      StackMap locals: int int
      StackMap stack:
            iload 21 /* t */
            istore 22 /* z */
        start local 22 // int z
        64: .line 2356
            aload 0 /* perm */
            iload 20 /* d */
            iaload
            istore 21 /* t */
        65: .line 2357
            aload 0 /* perm */
            iload 20 /* d */
            iload 22 /* z */
            iastore
        66: .line 2358
            aload 1 /* a */
            iload 21 /* t */
            caload
            iload 15 /* shift */
            iushr
            sipush 255
            iand
            istore 19 /* c */
        end local 22 // int z
        end local 20 // int d
        67: .line 2354
      StackMap locals: int[] char[] int int int int int[] int[] int[] int[] int[] int[] int int int int int int int int top int
      StackMap stack:
            aload 10 /* pos */
            iload 19 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 20 /* d */
        start local 20 // int d
        68: iload 18 /* i */
            if_icmpgt 63
        69: .line 2360
            aload 0 /* perm */
            iload 18 /* i */
            iload 21 /* t */
            iastore
        end local 20 // int d
        70: .line 2362
      StackMap locals:
      StackMap stack:
            iload 14 /* level */
            iconst_1
            if_icmpge 76
            aload 9 /* count */
            iload 19 /* c */
            iaload
            iconst_1
            if_icmple 76
        71: .line 2363
            aload 9 /* count */
            iload 19 /* c */
            iaload
            sipush 1024
            if_icmpge 73
        72: .line 2364
            aload 0 /* perm */
            aload 1 /* a */
            iload 18 /* i */
            iload 18 /* i */
            aload 9 /* count */
            iload 19 /* c */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.insertionSortIndirect:([I[CII)V
            goto 76
        73: .line 2366
      StackMap locals:
      StackMap stack:
            aload 6 /* offsetStack */
            iload 5 /* stackPos */
            iload 18 /* i */
            iastore
        74: .line 2367
            aload 7 /* lengthStack */
            iload 5 /* stackPos */
            aload 9 /* count */
            iload 19 /* c */
            iaload
            iastore
        75: .line 2368
            aload 8 /* levelStack */
            iload 5 /* stackPos */
            iinc 5 /* stackPos */ 1
            iload 14 /* level */
            iconst_1
            iadd
            iastore
        end local 21 // int t
        76: .line 2350
      StackMap locals: int[] char[] int int int int int[] int[] int[] int[] int[] int[] int int int int int int int int
      StackMap stack:
            iload 18 /* i */
            aload 9 /* count */
            iload 19 /* c */
            iaload
            iadd
            istore 18 /* i */
            aload 9 /* count */
            iload 19 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        77: iload 18 /* i */
            iload 17 /* end */
            if_icmple 59
        end local 19 // int c
        end local 18 // int i
        end local 17 // int end
        end local 16 // int lastUsed
        end local 15 // int shift
        end local 14 // int level
        end local 13 // int length
        end local 12 // int first
        78: .line 2311
      StackMap locals: int[] char[] int int int int int[] int[] int[] int[] int[] int[]
      StackMap stack:
            iload 5 /* stackPos */
            ifgt 16
        79: .line 2374
            return
        end local 11 // int[] support
        end local 10 // int[] pos
        end local 9 // int[] count
        end local 8 // int[] levelStack
        end local 7 // int[] lengthStack
        end local 6 // int[] offsetStack
        end local 5 // int stackPos
        end local 4 // boolean stable
        end local 3 // int to
        end local 2 // int from
        end local 1 // char[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   80     0         perm  [I
            0   80     1            a  [C
            0   80     2         from  I
            0   80     3           to  I
            0   80     4       stable  Z
            4   80     5     stackPos  I
            5   80     6  offsetStack  [I
            6   80     7  lengthStack  [I
            7   80     8   levelStack  [I
           11   80     9        count  [I
           12   80    10          pos  [I
           15   80    11      support  [I
           17   78    12        first  I
           18   78    13       length  I
           19   78    14        level  I
           20   78    15        shift  I
           21   24    16            i  I
           25   78    16     lastUsed  I
           26   35    17            i  I
           29   35    18            p  I
           37   40    17            i  I
           42   53    17            i  I
           43   53    18            p  I
           56   78    17          end  I
           57   78    18            i  I
           58   78    19            c  I
           63   67    20            d  I
           68   70    20            d  I
           60   76    21            t  I
           64   67    22            z  I
    MethodParameters:
        Name  Flags
      perm    final
      a       final
      from    final
      to      final
      stable  final

  public static void parallelRadixSortIndirect(int[], char[], int, int, boolean);
    descriptor: ([I[CIIZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=14, args_size=5
        start local 0 // int[] perm
        start local 1 // char[] a
        start local 2 // int from
        start local 3 // int to
        start local 4 // boolean stable
         0: .line 2405
            iload 3 /* to */
            iload 2 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2406
            aload 0 /* perm */
            aload 1 /* a */
            iload 2 /* from */
            iload 3 /* to */
            iload 4 /* stable */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.radixSortIndirect:([I[CIIZ)V
         2: .line 2407
            return
         3: .line 2410
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
            astore 5 /* queue */
        start local 5 // java.util.concurrent.LinkedBlockingQueue queue
         4: .line 2411
            aload 5 /* queue */
            new it.unimi.dsi.fastutil.chars.CharArrays$Segment
            dup
            iload 2 /* from */
            iload 3 /* to */
            iload 2 /* from */
            isub
            iconst_0
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
         5: .line 2412
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_1
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            astore 6 /* queueSize */
        start local 6 // java.util.concurrent.atomic.AtomicInteger queueSize
         6: .line 2413
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            istore 7 /* numberOfThreads */
        start local 7 // int numberOfThreads
         7: .line 2414
            iload 7 /* numberOfThreads */
         8: .line 2415
            invokestatic java.util.concurrent.Executors.defaultThreadFactory:()Ljava/util/concurrent/ThreadFactory;
         9: .line 2414
            invokestatic java.util.concurrent.Executors.newFixedThreadPool:(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
            astore 8 /* executorService */
        start local 8 // java.util.concurrent.ExecutorService executorService
        10: .line 2416
            new java.util.concurrent.ExecutorCompletionService
            dup
        11: .line 2417
            aload 8 /* executorService */
        12: .line 2416
            invokespecial java.util.concurrent.ExecutorCompletionService.<init>:(Ljava/util/concurrent/Executor;)V
            astore 9 /* executorCompletionService */
        start local 9 // java.util.concurrent.ExecutorCompletionService executorCompletionService
        13: .line 2418
            iload 4 /* stable */
            ifeq 14
            aload 0 /* perm */
            arraylength
            newarray 10
            goto 15
      StackMap locals: int[] char[] int int int java.util.concurrent.LinkedBlockingQueue java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorCompletionService
      StackMap stack:
        14: aconst_null
      StackMap locals:
      StackMap stack: int[]
        15: astore 10 /* support */
        start local 10 // int[] support
        16: .line 2419
            iload 7 /* numberOfThreads */
            istore 11 /* j */
        start local 11 // int j
        17: goto 19
        18: .line 2420
      StackMap locals: int[] int
      StackMap stack:
            aload 9 /* executorCompletionService */
            aload 6 /* queueSize */
            iload 7 /* numberOfThreads */
            aload 5 /* queue */
            aload 1 /* a */
            aload 0 /* perm */
            iload 4 /* stable */
            aload 10 /* support */
            invokedynamic call(Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[C[IZ[I)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  it/unimi/dsi/fastutil/chars/CharArrays.lambda$1(Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[C[IZ[I)Ljava/lang/Void; (6)
                  ()Ljava/lang/Void;
            invokevirtual java.util.concurrent.ExecutorCompletionService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            pop
        19: .line 2419
      StackMap locals:
      StackMap stack:
            iload 11 /* j */
            iinc 11 /* j */ -1
            ifne 18
        end local 11 // int j
        20: .line 2495
            aconst_null
            astore 11 /* problem */
        start local 11 // java.lang.Throwable problem
        21: .line 2496
            iload 7 /* numberOfThreads */
            istore 12 /* i */
        start local 12 // int i
        22: goto 27
        23: .line 2498
      StackMap locals: int[] char[] int int int java.util.concurrent.LinkedBlockingQueue java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorCompletionService int[] java.lang.Throwable int
      StackMap stack:
            aload 9 /* executorCompletionService */
            invokevirtual java.util.concurrent.ExecutorCompletionService.take:()Ljava/util/concurrent/Future;
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        24: .line 2499
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Exception
        25: astore 13 /* e */
        start local 13 // java.lang.Exception e
        26: .line 2500
            aload 13 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            astore 11 /* problem */
        end local 13 // java.lang.Exception e
        27: .line 2496
      StackMap locals:
      StackMap stack:
            iload 12 /* i */
            iinc 12 /* i */ -1
            ifne 23
        end local 12 // int i
        28: .line 2502
            aload 8 /* executorService */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
        29: .line 2503
            aload 11 /* problem */
            ifnull 33
        30: .line 2504
            aload 11 /* problem */
            instanceof java.lang.RuntimeException
            ifeq 31
            aload 11 /* problem */
            checkcast java.lang.RuntimeException
            goto 32
      StackMap locals:
      StackMap stack:
        31: new java.lang.RuntimeException
            dup
            aload 11 /* problem */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        32: athrow
        33: .line 2505
      StackMap locals:
      StackMap stack:
            return
        end local 11 // java.lang.Throwable problem
        end local 10 // int[] support
        end local 9 // java.util.concurrent.ExecutorCompletionService executorCompletionService
        end local 8 // java.util.concurrent.ExecutorService executorService
        end local 7 // int numberOfThreads
        end local 6 // java.util.concurrent.atomic.AtomicInteger queueSize
        end local 5 // java.util.concurrent.LinkedBlockingQueue queue
        end local 4 // boolean stable
        end local 3 // int to
        end local 2 // int from
        end local 1 // char[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   34     0                       perm  [I
            0   34     1                          a  [C
            0   34     2                       from  I
            0   34     3                         to  I
            0   34     4                     stable  Z
            4   34     5                      queue  Ljava/util/concurrent/LinkedBlockingQueue<Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;>;
            6   34     6                  queueSize  Ljava/util/concurrent/atomic/AtomicInteger;
            7   34     7            numberOfThreads  I
           10   34     8            executorService  Ljava/util/concurrent/ExecutorService;
           13   34     9  executorCompletionService  Ljava/util/concurrent/ExecutorCompletionService<Ljava/lang/Void;>;
           16   34    10                    support  [I
           17   20    11                          j  I
           21   34    11                    problem  Ljava/lang/Throwable;
           22   28    12                          i  I
           26   27    13                          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          23    24      25  Class java.lang.Exception
    MethodParameters:
        Name  Flags
      perm    final
      a       final
      from    final
      to      final
      stable  final

  public static void parallelRadixSortIndirect(int[], char[], boolean);
    descriptor: ([I[CZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // int[] perm
        start local 1 // char[] a
        start local 2 // boolean stable
         0: .line 2531
            aload 0 /* perm */
            aload 1 /* a */
            iconst_0
            aload 1 /* a */
            arraylength
            iload 2 /* stable */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.parallelRadixSortIndirect:([I[CIIZ)V
         1: .line 2532
            return
        end local 2 // boolean stable
        end local 1 // char[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    perm  [I
            0    2     1       a  [C
            0    2     2  stable  Z
    MethodParameters:
        Name  Flags
      perm    final
      a       final
      stable  final

  public static void radixSort(char[], char[]);
    descriptor: ([C[C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // char[] a
        start local 1 // char[] b
         0: .line 2553
            aload 0 /* a */
            aload 1 /* b */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.ensureSameLength:([C[C)V
         1: .line 2554
            aload 0 /* a */
            aload 1 /* b */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.radixSort:([C[CII)V
         2: .line 2555
            return
        end local 1 // char[] b
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  [C
            0    3     1     b  [C
    MethodParameters:
      Name  Flags
      a     final
      b     final

  public static void radixSort(char[], char[], int, int);
    descriptor: ([C[CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=23, args_size=4
        start local 0 // char[] a
        start local 1 // char[] b
        start local 2 // int from
        start local 3 // int to
         0: .line 2581
            iload 3 /* to */
            iload 2 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2582
            aload 0 /* a */
            aload 1 /* b */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.selectionSort:([C[CII)V
         2: .line 2583
            return
         3: .line 2588
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* stackPos */
        start local 4 // int stackPos
         4: .line 2589
            sipush 766
            newarray 10
            astore 5 /* offsetStack */
        start local 5 // int[] offsetStack
         5: .line 2590
            sipush 766
            newarray 10
            astore 6 /* lengthStack */
        start local 6 // int[] lengthStack
         6: .line 2591
            sipush 766
            newarray 10
            astore 7 /* levelStack */
        start local 7 // int[] levelStack
         7: .line 2592
            aload 5 /* offsetStack */
            iload 4 /* stackPos */
            iload 2 /* from */
            iastore
         8: .line 2593
            aload 6 /* lengthStack */
            iload 4 /* stackPos */
            iload 3 /* to */
            iload 2 /* from */
            isub
            iastore
         9: .line 2594
            aload 7 /* levelStack */
            iload 4 /* stackPos */
            iinc 4 /* stackPos */ 1
            iconst_0
            iastore
        10: .line 2595
            sipush 256
            newarray 10
            astore 8 /* count */
        start local 8 // int[] count
        11: .line 2596
            sipush 256
            newarray 10
            astore 9 /* pos */
        start local 9 // int[] pos
        12: .line 2597
            goto 61
        13: .line 2598
      StackMap locals: char[] char[] int int int int[] int[] int[] int[] int[]
      StackMap stack:
            aload 5 /* offsetStack */
            iinc 4 /* stackPos */ -1
            iload 4 /* stackPos */
            iaload
            istore 10 /* first */
        start local 10 // int first
        14: .line 2599
            aload 6 /* lengthStack */
            iload 4 /* stackPos */
            iaload
            istore 11 /* length */
        start local 11 // int length
        15: .line 2600
            aload 7 /* levelStack */
            iload 4 /* stackPos */
            iaload
            istore 12 /* level */
        start local 12 // int level
        16: .line 2602
            iload 12 /* level */
            iconst_2
            if_icmpge 17
            aload 0 /* a */
            goto 18
      StackMap locals: int int int
      StackMap stack:
        17: aload 1 /* b */
      StackMap locals:
      StackMap stack: char[]
        18: astore 13 /* k */
        start local 13 // char[] k
        19: .line 2603
            iconst_1
            iload 12 /* level */
            iconst_2
            irem
            isub
            bipush 8
            imul
            istore 14 /* shift */
        start local 14 // int shift
        20: .line 2608
            iload 10 /* first */
            iload 11 /* length */
            iadd
            istore 15 /* i */
        start local 15 // int i
        21: goto 23
        22: .line 2609
      StackMap locals: char[] int int
      StackMap stack:
            aload 8 /* count */
            aload 13 /* k */
            iload 15 /* i */
            caload
            iload 14 /* shift */
            iushr
            sipush 255
            iand
            dup2
            iaload
            iconst_1
            iadd
            iastore
        23: .line 2608
      StackMap locals:
      StackMap stack:
            iload 15 /* i */
            iinc 15 /* i */ -1
            iload 10 /* first */
            if_icmpne 22
        end local 15 // int i
        24: .line 2611
            iconst_m1
            istore 15 /* lastUsed */
        start local 15 // int lastUsed
        25: .line 2612
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        26: iload 10 /* first */
            istore 17 /* p */
        start local 17 // int p
        27: goto 32
        28: .line 2613
      StackMap locals: int int
      StackMap stack:
            aload 8 /* count */
            iload 16 /* i */
            iaload
            ifeq 30
        29: .line 2614
            iload 16 /* i */
            istore 15 /* lastUsed */
        30: .line 2615
      StackMap locals:
      StackMap stack:
            aload 9 /* pos */
            iload 16 /* i */
            iload 17 /* p */
            aload 8 /* count */
            iload 16 /* i */
            iaload
            iadd
            dup
            istore 17 /* p */
            iastore
        31: .line 2612
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 16 /* i */
            sipush 256
            if_icmplt 28
        end local 17 // int p
        end local 16 // int i
        33: .line 2617
            iload 10 /* first */
            iload 11 /* length */
            iadd
            aload 8 /* count */
            iload 15 /* lastUsed */
            iaload
            isub
            istore 16 /* end */
        start local 16 // int end
        34: .line 2619
            iload 10 /* first */
            istore 17 /* i */
        start local 17 // int i
        35: iconst_m1
            istore 18 /* c */
        start local 18 // int c
        36: goto 60
        37: .line 2620
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 17 /* i */
            caload
            istore 20 /* t */
        start local 20 // char t
        38: .line 2621
            aload 1 /* b */
            iload 17 /* i */
            caload
            istore 21 /* u */
        start local 21 // char u
        39: .line 2622
            aload 13 /* k */
            iload 17 /* i */
            caload
            iload 14 /* shift */
            iushr
            sipush 255
            iand
            istore 18 /* c */
        40: .line 2623
            iload 17 /* i */
            iload 16 /* end */
            if_icmpge 53
        41: .line 2624
            goto 49
        start local 19 // int d
        42: .line 2625
      StackMap locals: int int int
      StackMap stack:
            aload 13 /* k */
            iload 19 /* d */
            caload
            iload 14 /* shift */
            iushr
            sipush 255
            iand
            istore 18 /* c */
        43: .line 2626
            iload 20 /* t */
            istore 22 /* z */
        start local 22 // char z
        44: .line 2627
            aload 0 /* a */
            iload 19 /* d */
            caload
            istore 20 /* t */
        45: .line 2628
            aload 0 /* a */
            iload 19 /* d */
            iload 22 /* z */
            castore
        46: .line 2629
            iload 21 /* u */
            istore 22 /* z */
        47: .line 2630
            aload 1 /* b */
            iload 19 /* d */
            caload
            istore 21 /* u */
        48: .line 2631
            aload 1 /* b */
            iload 19 /* d */
            iload 22 /* z */
            castore
        end local 22 // char z
        end local 19 // int d
        49: .line 2624
      StackMap locals: char[] char[] int int int int[] int[] int[] int[] int[] int int int char[] int int int int int top int int
      StackMap stack:
            aload 9 /* pos */
            iload 18 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 19 /* d */
        start local 19 // int d
        50: iload 17 /* i */
            if_icmpgt 42
        51: .line 2633
            aload 0 /* a */
            iload 17 /* i */
            iload 20 /* t */
            castore
        52: .line 2634
            aload 1 /* b */
            iload 17 /* i */
            iload 21 /* u */
            castore
        end local 19 // int d
        53: .line 2636
      StackMap locals:
      StackMap stack:
            iload 12 /* level */
            iconst_3
            if_icmpge 59
            aload 8 /* count */
            iload 18 /* c */
            iaload
            iconst_1
            if_icmple 59
        54: .line 2637
            aload 8 /* count */
            iload 18 /* c */
            iaload
            sipush 1024
            if_icmpge 56
        55: .line 2638
            aload 0 /* a */
            aload 1 /* b */
            iload 17 /* i */
            iload 17 /* i */
            aload 8 /* count */
            iload 18 /* c */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.selectionSort:([C[CII)V
            goto 59
        56: .line 2640
      StackMap locals:
      StackMap stack:
            aload 5 /* offsetStack */
            iload 4 /* stackPos */
            iload 17 /* i */
            iastore
        57: .line 2641
            aload 6 /* lengthStack */
            iload 4 /* stackPos */
            aload 8 /* count */
            iload 18 /* c */
            iaload
            iastore
        58: .line 2642
            aload 7 /* levelStack */
            iload 4 /* stackPos */
            iinc 4 /* stackPos */ 1
            iload 12 /* level */
            iconst_1
            iadd
            iastore
        end local 21 // char u
        end local 20 // char t
        59: .line 2619
      StackMap locals: char[] char[] int int int int[] int[] int[] int[] int[] int int int char[] int int int int int
      StackMap stack:
            iload 17 /* i */
            aload 8 /* count */
            iload 18 /* c */
            iaload
            iadd
            istore 17 /* i */
            aload 8 /* count */
            iload 18 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        60: iload 17 /* i */
            iload 16 /* end */
            if_icmple 37
        end local 18 // int c
        end local 17 // int i
        end local 16 // int end
        end local 15 // int lastUsed
        end local 14 // int shift
        end local 13 // char[] k
        end local 12 // int level
        end local 11 // int length
        end local 10 // int first
        61: .line 2597
      StackMap locals: char[] char[] int int int int[] int[] int[] int[] int[]
      StackMap stack:
            iload 4 /* stackPos */
            ifgt 13
        62: .line 2647
            return
        end local 9 // int[] pos
        end local 8 // int[] count
        end local 7 // int[] levelStack
        end local 6 // int[] lengthStack
        end local 5 // int[] offsetStack
        end local 4 // int stackPos
        end local 3 // int to
        end local 2 // int from
        end local 1 // char[] b
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   63     0            a  [C
            0   63     1            b  [C
            0   63     2         from  I
            0   63     3           to  I
            4   63     4     stackPos  I
            5   63     5  offsetStack  [I
            6   63     6  lengthStack  [I
            7   63     7   levelStack  [I
           11   63     8        count  [I
           12   63     9          pos  [I
           14   61    10        first  I
           15   61    11       length  I
           16   61    12        level  I
           19   61    13            k  [C
           20   61    14        shift  I
           21   24    15            i  I
           25   61    15     lastUsed  I
           26   33    16            i  I
           27   33    17            p  I
           34   61    16          end  I
           35   61    17            i  I
           36   61    18            c  I
           42   49    19            d  I
           50   53    19            d  I
           38   59    20            t  C
           39   59    21            u  C
           44   49    22            z  C
    MethodParameters:
      Name  Flags
      a     final
      b     final
      from  final
      to    final

  public static void parallelRadixSort(char[], char[], int, int);
    descriptor: ([C[CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=4
        start local 0 // char[] a
        start local 1 // char[] b
        start local 2 // int from
        start local 3 // int to
         0: .line 2678
            iload 3 /* to */
            iload 2 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2679
            aload 0 /* a */
            aload 1 /* b */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([C[CII)V
         2: .line 2680
            return
         3: .line 2683
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            arraylength
            aload 1 /* b */
            arraylength
            if_icmpeq 5
         4: .line 2684
            new java.lang.IllegalArgumentException
            dup
            ldc "Array size mismatch."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 2686
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
            astore 4 /* queue */
        start local 4 // java.util.concurrent.LinkedBlockingQueue queue
         6: .line 2687
            aload 4 /* queue */
            new it.unimi.dsi.fastutil.chars.CharArrays$Segment
            dup
            iload 2 /* from */
            iload 3 /* to */
            iload 2 /* from */
            isub
            iconst_0
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
         7: .line 2688
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_1
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            astore 5 /* queueSize */
        start local 5 // java.util.concurrent.atomic.AtomicInteger queueSize
         8: .line 2689
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            istore 6 /* numberOfThreads */
        start local 6 // int numberOfThreads
         9: .line 2690
            iload 6 /* numberOfThreads */
        10: .line 2691
            invokestatic java.util.concurrent.Executors.defaultThreadFactory:()Ljava/util/concurrent/ThreadFactory;
        11: .line 2690
            invokestatic java.util.concurrent.Executors.newFixedThreadPool:(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
            astore 7 /* executorService */
        start local 7 // java.util.concurrent.ExecutorService executorService
        12: .line 2692
            new java.util.concurrent.ExecutorCompletionService
            dup
        13: .line 2693
            aload 7 /* executorService */
        14: .line 2692
            invokespecial java.util.concurrent.ExecutorCompletionService.<init>:(Ljava/util/concurrent/Executor;)V
            astore 8 /* executorCompletionService */
        start local 8 // java.util.concurrent.ExecutorCompletionService executorCompletionService
        15: .line 2694
            iload 6 /* numberOfThreads */
            istore 9 /* j */
        start local 9 // int j
        16: goto 18
        17: .line 2695
      StackMap locals: char[] char[] int int java.util.concurrent.LinkedBlockingQueue java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorCompletionService int
      StackMap stack:
            aload 8 /* executorCompletionService */
            aload 5 /* queueSize */
            iload 6 /* numberOfThreads */
            aload 4 /* queue */
            aload 0 /* a */
            aload 1 /* b */
            invokedynamic call(Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[C[C)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  it/unimi/dsi/fastutil/chars/CharArrays.lambda$2(Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[C[C)Ljava/lang/Void; (6)
                  ()Ljava/lang/Void;
            invokevirtual java.util.concurrent.ExecutorCompletionService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            pop
        18: .line 2694
      StackMap locals:
      StackMap stack:
            iload 9 /* j */
            iinc 9 /* j */ -1
            ifne 17
        end local 9 // int j
        19: .line 2751
            aconst_null
            astore 9 /* problem */
        start local 9 // java.lang.Throwable problem
        20: .line 2752
            iload 6 /* numberOfThreads */
            istore 10 /* i */
        start local 10 // int i
        21: goto 26
        22: .line 2754
      StackMap locals: char[] char[] int int java.util.concurrent.LinkedBlockingQueue java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorCompletionService java.lang.Throwable int
      StackMap stack:
            aload 8 /* executorCompletionService */
            invokevirtual java.util.concurrent.ExecutorCompletionService.take:()Ljava/util/concurrent/Future;
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        23: .line 2755
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Exception
        24: astore 11 /* e */
        start local 11 // java.lang.Exception e
        25: .line 2756
            aload 11 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            astore 9 /* problem */
        end local 11 // java.lang.Exception e
        26: .line 2752
      StackMap locals:
      StackMap stack:
            iload 10 /* i */
            iinc 10 /* i */ -1
            ifne 22
        end local 10 // int i
        27: .line 2758
            aload 7 /* executorService */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
        28: .line 2759
            aload 9 /* problem */
            ifnull 32
        29: .line 2760
            aload 9 /* problem */
            instanceof java.lang.RuntimeException
            ifeq 30
            aload 9 /* problem */
            checkcast java.lang.RuntimeException
            goto 31
      StackMap locals:
      StackMap stack:
        30: new java.lang.RuntimeException
            dup
            aload 9 /* problem */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        31: athrow
        32: .line 2761
      StackMap locals:
      StackMap stack:
            return
        end local 9 // java.lang.Throwable problem
        end local 8 // java.util.concurrent.ExecutorCompletionService executorCompletionService
        end local 7 // java.util.concurrent.ExecutorService executorService
        end local 6 // int numberOfThreads
        end local 5 // java.util.concurrent.atomic.AtomicInteger queueSize
        end local 4 // java.util.concurrent.LinkedBlockingQueue queue
        end local 3 // int to
        end local 2 // int from
        end local 1 // char[] b
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   33     0                          a  [C
            0   33     1                          b  [C
            0   33     2                       from  I
            0   33     3                         to  I
            6   33     4                      queue  Ljava/util/concurrent/LinkedBlockingQueue<Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;>;
            8   33     5                  queueSize  Ljava/util/concurrent/atomic/AtomicInteger;
            9   33     6            numberOfThreads  I
           12   33     7            executorService  Ljava/util/concurrent/ExecutorService;
           15   33     8  executorCompletionService  Ljava/util/concurrent/ExecutorCompletionService<Ljava/lang/Void;>;
           16   19     9                          j  I
           20   33     9                    problem  Ljava/lang/Throwable;
           21   27    10                          i  I
           25   26    11                          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          22    23      24  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      a     final
      b     final
      from  final
      to    final

  public static void parallelRadixSort(char[], char[]);
    descriptor: ([C[C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // char[] a
        start local 1 // char[] b
         0: .line 2787
            aload 0 /* a */
            aload 1 /* b */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.ensureSameLength:([C[C)V
         1: .line 2788
            aload 0 /* a */
            aload 1 /* b */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.parallelRadixSort:([C[CII)V
         2: .line 2789
            return
        end local 1 // char[] b
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  [C
            0    3     1     b  [C
    MethodParameters:
      Name  Flags
      a     final
      b     final

  private static void insertionSortIndirect(int[], char[], char[], int, int);
    descriptor: ([I[C[CII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=5
        start local 0 // int[] perm
        start local 1 // char[] a
        start local 2 // char[] b
        start local 3 // int from
        start local 4 // int to
         0: .line 2792
            iload 3 /* from */
            istore 5 /* i */
        start local 5 // int i
         1: goto 13
         2: .line 2793
      StackMap locals: int
      StackMap stack:
            aload 0 /* perm */
            iload 5 /* i */
            iaload
            istore 6 /* t */
        start local 6 // int t
         3: .line 2794
            iload 5 /* i */
            istore 7 /* j */
        start local 7 // int j
         4: .line 2795
            aload 0 /* perm */
            iload 7 /* j */
            iconst_1
            isub
            iaload
            istore 8 /* u */
        start local 8 // int u
         5: goto 11
         6: .line 2796
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* perm */
            iload 7 /* j */
            iload 8 /* u */
            iastore
         7: .line 2797
            iload 3 /* from */
            iload 7 /* j */
            iconst_1
            isub
            if_icmpne 10
         8: .line 2798
            iinc 7 /* j */ -1
         9: .line 2799
            goto 12
        10: .line 2795
      StackMap locals:
      StackMap stack:
            aload 0 /* perm */
            iinc 7 /* j */ -1
            iload 7 /* j */
            iconst_1
            isub
            iaload
            istore 8 /* u */
      StackMap locals:
      StackMap stack:
        11: aload 1 /* a */
            iload 6 /* t */
            caload
            aload 1 /* a */
            iload 8 /* u */
            caload
            if_icmplt 6
            aload 1 /* a */
            iload 6 /* t */
            caload
            aload 1 /* a */
            iload 8 /* u */
            caload
            if_icmpne 12
            aload 2 /* b */
            iload 6 /* t */
            caload
            aload 2 /* b */
            iload 8 /* u */
            caload
            if_icmplt 6
        end local 8 // int u
        12: .line 2802
      StackMap locals:
      StackMap stack:
            aload 0 /* perm */
            iload 7 /* j */
            iload 6 /* t */
            iastore
        end local 7 // int j
        end local 6 // int t
        13: .line 2792
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
            iload 5 /* i */
            iload 4 /* to */
            if_icmplt 2
        end local 5 // int i
        14: .line 2804
            return
        end local 4 // int to
        end local 3 // int from
        end local 2 // char[] b
        end local 1 // char[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  perm  [I
            0   15     1     a  [C
            0   15     2     b  [C
            0   15     3  from  I
            0   15     4    to  I
            1   14     5     i  I
            3   13     6     t  I
            4   13     7     j  I
            5   12     8     u  I
    MethodParameters:
      Name  Flags
      perm  final
      a     final
      b     final
      from  final
      to    final

  public static void radixSortIndirect(int[], char[], char[], boolean);
    descriptor: ([I[C[CZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // int[] perm
        start local 1 // char[] a
        start local 2 // char[] b
        start local 3 // boolean stable
         0: .line 2836
            aload 1 /* a */
            aload 2 /* b */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.ensureSameLength:([C[C)V
         1: .line 2837
            aload 0 /* perm */
            aload 1 /* a */
            aload 2 /* b */
            iconst_0
            aload 1 /* a */
            arraylength
            iload 3 /* stable */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.radixSortIndirect:([I[C[CIIZ)V
         2: .line 2838
            return
        end local 3 // boolean stable
        end local 2 // char[] b
        end local 1 // char[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    perm  [I
            0    3     1       a  [C
            0    3     2       b  [C
            0    3     3  stable  Z
    MethodParameters:
        Name  Flags
      perm    final
      a       final
      b       final
      stable  final

  public static void radixSortIndirect(int[], char[], char[], int, int, boolean);
    descriptor: ([I[C[CIIZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=25, args_size=6
        start local 0 // int[] perm
        start local 1 // char[] a
        start local 2 // char[] b
        start local 3 // int from
        start local 4 // int to
        start local 5 // boolean stable
         0: .line 2877
            iload 4 /* to */
            iload 3 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2878
            aload 0 /* perm */
            aload 1 /* a */
            aload 2 /* b */
            iload 3 /* from */
            iload 4 /* to */
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.insertionSortIndirect:([I[C[CII)V
         2: .line 2879
            return
         3: .line 2884
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* stackPos */
        start local 6 // int stackPos
         4: .line 2885
            sipush 766
            newarray 10
            astore 7 /* offsetStack */
        start local 7 // int[] offsetStack
         5: .line 2886
            sipush 766
            newarray 10
            astore 8 /* lengthStack */
        start local 8 // int[] lengthStack
         6: .line 2887
            sipush 766
            newarray 10
            astore 9 /* levelStack */
        start local 9 // int[] levelStack
         7: .line 2888
            aload 7 /* offsetStack */
            iload 6 /* stackPos */
            iload 3 /* from */
            iastore
         8: .line 2889
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            iload 4 /* to */
            iload 3 /* from */
            isub
            iastore
         9: .line 2890
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iinc 6 /* stackPos */ 1
            iconst_0
            iastore
        10: .line 2891
            sipush 256
            newarray 10
            astore 10 /* count */
        start local 10 // int[] count
        11: .line 2892
            sipush 256
            newarray 10
            astore 11 /* pos */
        start local 11 // int[] pos
        12: .line 2893
            iload 5 /* stable */
            ifeq 13
            aload 0 /* perm */
            arraylength
            newarray 10
            goto 14
      StackMap locals: int[] char[] char[] int int int int int[] int[] int[] int[] int[]
      StackMap stack:
        13: aconst_null
      StackMap locals:
      StackMap stack: int[]
        14: astore 12 /* support */
        start local 12 // int[] support
        15: .line 2894
            goto 81
        16: .line 2895
      StackMap locals: int[]
      StackMap stack:
            aload 7 /* offsetStack */
            iinc 6 /* stackPos */ -1
            iload 6 /* stackPos */
            iaload
            istore 13 /* first */
        start local 13 // int first
        17: .line 2896
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            iaload
            istore 14 /* length */
        start local 14 // int length
        18: .line 2897
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iaload
            istore 15 /* level */
        start local 15 // int level
        19: .line 2899
            iload 15 /* level */
            iconst_2
            if_icmpge 20
            aload 1 /* a */
            goto 21
      StackMap locals: int int int
      StackMap stack:
        20: aload 2 /* b */
      StackMap locals:
      StackMap stack: char[]
        21: astore 16 /* k */
        start local 16 // char[] k
        22: .line 2900
            iconst_1
            iload 15 /* level */
            iconst_2
            irem
            isub
            bipush 8
            imul
            istore 17 /* shift */
        start local 17 // int shift
        23: .line 2905
            iload 13 /* first */
            iload 14 /* length */
            iadd
            istore 18 /* i */
        start local 18 // int i
        24: goto 26
        25: .line 2906
      StackMap locals: char[] int int
      StackMap stack:
            aload 10 /* count */
            aload 16 /* k */
            aload 0 /* perm */
            iload 18 /* i */
            iaload
            caload
            iload 17 /* shift */
            iushr
            sipush 255
            iand
            dup2
            iaload
            iconst_1
            iadd
            iastore
        26: .line 2905
      StackMap locals:
      StackMap stack:
            iload 18 /* i */
            iinc 18 /* i */ -1
            iload 13 /* first */
            if_icmpne 25
        end local 18 // int i
        27: .line 2908
            iconst_m1
            istore 18 /* lastUsed */
        start local 18 // int lastUsed
        28: .line 2909
            iconst_0
            istore 19 /* i */
        start local 19 // int i
        29: iload 5 /* stable */
            ifeq 30
            iconst_0
            goto 31
      StackMap locals: int
      StackMap stack:
        30: iload 13 /* first */
      StackMap locals:
      StackMap stack: int
        31: istore 20 /* p */
        start local 20 // int p
        32: goto 37
        33: .line 2910
      StackMap locals: int
      StackMap stack:
            aload 10 /* count */
            iload 19 /* i */
            iaload
            ifeq 35
        34: .line 2911
            iload 19 /* i */
            istore 18 /* lastUsed */
        35: .line 2912
      StackMap locals:
      StackMap stack:
            aload 11 /* pos */
            iload 19 /* i */
            iload 20 /* p */
            aload 10 /* count */
            iload 19 /* i */
            iaload
            iadd
            dup
            istore 20 /* p */
            iastore
        36: .line 2909
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
        37: iload 19 /* i */
            sipush 256
            if_icmplt 33
        end local 20 // int p
        end local 19 // int i
        38: .line 2914
            iload 5 /* stable */
            ifeq 58
        39: .line 2915
            iload 13 /* first */
            iload 14 /* length */
            iadd
            istore 19 /* i */
        start local 19 // int i
        40: goto 42
        41: .line 2916
      StackMap locals:
      StackMap stack:
            aload 12 /* support */
            aload 11 /* pos */
            aload 16 /* k */
            aload 0 /* perm */
            iload 19 /* i */
            iaload
            caload
            iload 17 /* shift */
            iushr
            sipush 255
            iand
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            aload 0 /* perm */
            iload 19 /* i */
            iaload
            iastore
        42: .line 2915
      StackMap locals:
      StackMap stack:
            iload 19 /* i */
            iinc 19 /* i */ -1
            iload 13 /* first */
            if_icmpne 41
        end local 19 // int i
        43: .line 2917
            aload 12 /* support */
            iconst_0
            aload 0 /* perm */
            iload 13 /* first */
            iload 14 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        44: .line 2918
            iconst_0
            istore 19 /* i */
        start local 19 // int i
        45: iload 13 /* first */
            istore 20 /* p */
        start local 20 // int p
        46: goto 55
        47: .line 2919
      StackMap locals: int
      StackMap stack:
            iload 15 /* level */
            iconst_3
            if_icmpge 53
            aload 10 /* count */
            iload 19 /* i */
            iaload
            iconst_1
            if_icmple 53
        48: .line 2920
            aload 10 /* count */
            iload 19 /* i */
            iaload
            sipush 1024
            if_icmpge 50
        49: .line 2921
            aload 0 /* perm */
            aload 1 /* a */
            aload 2 /* b */
            iload 20 /* p */
            iload 20 /* p */
            aload 10 /* count */
            iload 19 /* i */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.insertionSortIndirect:([I[C[CII)V
            goto 53
        50: .line 2923
      StackMap locals:
      StackMap stack:
            aload 7 /* offsetStack */
            iload 6 /* stackPos */
            iload 20 /* p */
            iastore
        51: .line 2924
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            aload 10 /* count */
            iload 19 /* i */
            iaload
            iastore
        52: .line 2925
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iinc 6 /* stackPos */ 1
            iload 15 /* level */
            iconst_1
            iadd
            iastore
        53: .line 2928
      StackMap locals:
      StackMap stack:
            iload 20 /* p */
            aload 10 /* count */
            iload 19 /* i */
            iaload
            iadd
            istore 20 /* p */
        54: .line 2918
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
        55: iload 19 /* i */
            sipush 256
            if_icmplt 47
        end local 20 // int p
        end local 19 // int i
        56: .line 2930
            aload 10 /* count */
            iconst_0
            invokestatic java.util.Arrays.fill:([II)V
        57: .line 2931
            goto 81
        58: .line 2932
      StackMap locals:
      StackMap stack:
            iload 13 /* first */
            iload 14 /* length */
            iadd
            aload 10 /* count */
            iload 18 /* lastUsed */
            iaload
            isub
            istore 19 /* end */
        start local 19 // int end
        59: .line 2934
            iload 13 /* first */
            istore 20 /* i */
        start local 20 // int i
        60: iconst_m1
            istore 21 /* c */
        start local 21 // int c
        61: goto 80
        62: .line 2935
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* perm */
            iload 20 /* i */
            iaload
            istore 23 /* t */
        start local 23 // int t
        63: .line 2936
            aload 16 /* k */
            iload 23 /* t */
            caload
            iload 17 /* shift */
            iushr
            sipush 255
            iand
            istore 21 /* c */
        64: .line 2937
            iload 20 /* i */
            iload 19 /* end */
            if_icmpge 73
        65: .line 2938
            goto 70
        start local 22 // int d
        66: .line 2939
      StackMap locals: int int
      StackMap stack:
            iload 23 /* t */
            istore 24 /* z */
        start local 24 // int z
        67: .line 2940
            aload 0 /* perm */
            iload 22 /* d */
            iaload
            istore 23 /* t */
        68: .line 2941
            aload 0 /* perm */
            iload 22 /* d */
            iload 24 /* z */
            iastore
        69: .line 2942
            aload 16 /* k */
            iload 23 /* t */
            caload
            iload 17 /* shift */
            iushr
            sipush 255
            iand
            istore 21 /* c */
        end local 24 // int z
        end local 22 // int d
        70: .line 2938
      StackMap locals: int[] char[] char[] int int int int int[] int[] int[] int[] int[] int[] int int int char[] int int int int int top int
      StackMap stack:
            aload 11 /* pos */
            iload 21 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 22 /* d */
        start local 22 // int d
        71: iload 20 /* i */
            if_icmpgt 66
        72: .line 2944
            aload 0 /* perm */
            iload 20 /* i */
            iload 23 /* t */
            iastore
        end local 22 // int d
        73: .line 2946
      StackMap locals:
      StackMap stack:
            iload 15 /* level */
            iconst_3
            if_icmpge 79
            aload 10 /* count */
            iload 21 /* c */
            iaload
            iconst_1
            if_icmple 79
        74: .line 2947
            aload 10 /* count */
            iload 21 /* c */
            iaload
            sipush 1024
            if_icmpge 76
        75: .line 2948
            aload 0 /* perm */
            aload 1 /* a */
            aload 2 /* b */
            iload 20 /* i */
            iload 20 /* i */
            aload 10 /* count */
            iload 21 /* c */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.insertionSortIndirect:([I[C[CII)V
            goto 79
        76: .line 2950
      StackMap locals:
      StackMap stack:
            aload 7 /* offsetStack */
            iload 6 /* stackPos */
            iload 20 /* i */
            iastore
        77: .line 2951
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            aload 10 /* count */
            iload 21 /* c */
            iaload
            iastore
        78: .line 2952
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iinc 6 /* stackPos */ 1
            iload 15 /* level */
            iconst_1
            iadd
            iastore
        end local 23 // int t
        79: .line 2934
      StackMap locals: int[] char[] char[] int int int int int[] int[] int[] int[] int[] int[] int int int char[] int int int int int
      StackMap stack:
            iload 20 /* i */
            aload 10 /* count */
            iload 21 /* c */
            iaload
            iadd
            istore 20 /* i */
            aload 10 /* count */
            iload 21 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        80: iload 20 /* i */
            iload 19 /* end */
            if_icmple 62
        end local 21 // int c
        end local 20 // int i
        end local 19 // int end
        end local 18 // int lastUsed
        end local 17 // int shift
        end local 16 // char[] k
        end local 15 // int level
        end local 14 // int length
        end local 13 // int first
        81: .line 2894
      StackMap locals: int[] char[] char[] int int int int int[] int[] int[] int[] int[] int[]
      StackMap stack:
            iload 6 /* stackPos */
            ifgt 16
        82: .line 2958
            return
        end local 12 // int[] support
        end local 11 // int[] pos
        end local 10 // int[] count
        end local 9 // int[] levelStack
        end local 8 // int[] lengthStack
        end local 7 // int[] offsetStack
        end local 6 // int stackPos
        end local 5 // boolean stable
        end local 4 // int to
        end local 3 // int from
        end local 2 // char[] b
        end local 1 // char[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   83     0         perm  [I
            0   83     1            a  [C
            0   83     2            b  [C
            0   83     3         from  I
            0   83     4           to  I
            0   83     5       stable  Z
            4   83     6     stackPos  I
            5   83     7  offsetStack  [I
            6   83     8  lengthStack  [I
            7   83     9   levelStack  [I
           11   83    10        count  [I
           12   83    11          pos  [I
           15   83    12      support  [I
           17   81    13        first  I
           18   81    14       length  I
           19   81    15        level  I
           22   81    16            k  [C
           23   81    17        shift  I
           24   27    18            i  I
           28   81    18     lastUsed  I
           29   38    19            i  I
           32   38    20            p  I
           40   43    19            i  I
           45   56    19            i  I
           46   56    20            p  I
           59   81    19          end  I
           60   81    20            i  I
           61   81    21            c  I
           66   70    22            d  I
           71   73    22            d  I
           63   79    23            t  I
           67   70    24            z  I
    MethodParameters:
        Name  Flags
      perm    final
      a       final
      b       final
      from    final
      to      final
      stable  final

  private static void selectionSort(char[][], int, int, int);
    descriptor: ([[CIII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // char[][] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // int level
         0: .line 2960
            aload 0 /* a */
            arraylength
            istore 4 /* layers */
        start local 4 // int layers
         1: .line 2961
            iload 3 /* level */
            iconst_2
            idiv
            istore 5 /* firstLayer */
        start local 5 // int firstLayer
         2: .line 2962
            iload 1 /* from */
            istore 6 /* i */
        start local 6 // int i
         3: goto 26
         4: .line 2963
      StackMap locals: int int int
      StackMap stack:
            iload 6 /* i */
            istore 7 /* m */
        start local 7 // int m
         5: .line 2964
            iload 6 /* i */
            iconst_1
            iadd
            istore 8 /* j */
        start local 8 // int j
         6: goto 17
         7: .line 2965
      StackMap locals: int int
      StackMap stack:
            iload 5 /* firstLayer */
            istore 9 /* p */
        start local 9 // int p
         8: goto 15
         9: .line 2966
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 9 /* p */
            aaload
            iload 8 /* j */
            caload
            aload 0 /* a */
            iload 9 /* p */
            aaload
            iload 7 /* m */
            caload
            if_icmpge 12
        10: .line 2967
            iload 8 /* j */
            istore 7 /* m */
        11: .line 2968
            goto 16
        12: .line 2969
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 9 /* p */
            aaload
            iload 8 /* j */
            caload
            aload 0 /* a */
            iload 9 /* p */
            aaload
            iload 7 /* m */
            caload
            if_icmple 14
        13: .line 2970
            goto 16
        14: .line 2965
      StackMap locals:
      StackMap stack:
            iinc 9 /* p */ 1
      StackMap locals:
      StackMap stack:
        15: iload 9 /* p */
            iload 4 /* layers */
            if_icmplt 9
        end local 9 // int p
        16: .line 2964
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        17: iload 8 /* j */
            iload 2 /* to */
            if_icmplt 7
        end local 8 // int j
        18: .line 2973
            iload 7 /* m */
            iload 6 /* i */
            if_icmpeq 25
        19: .line 2974
            iload 4 /* layers */
            istore 8 /* p */
        start local 8 // int p
        20: goto 24
        21: .line 2975
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 8 /* p */
            aaload
            iload 6 /* i */
            caload
            istore 9 /* u */
        start local 9 // char u
        22: .line 2976
            aload 0 /* a */
            iload 8 /* p */
            aaload
            iload 6 /* i */
            aload 0 /* a */
            iload 8 /* p */
            aaload
            iload 7 /* m */
            caload
            castore
        23: .line 2977
            aload 0 /* a */
            iload 8 /* p */
            aaload
            iload 7 /* m */
            iload 9 /* u */
            castore
        end local 9 // char u
        24: .line 2974
      StackMap locals:
      StackMap stack:
            iload 8 /* p */
            iinc 8 /* p */ -1
            ifne 21
        end local 8 // int p
        end local 7 // int m
        25: .line 2962
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 6 /* i */
            iload 2 /* to */
            iconst_1
            isub
            if_icmplt 4
        end local 6 // int i
        27: .line 2981
            return
        end local 5 // int firstLayer
        end local 4 // int layers
        end local 3 // int level
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[][] a
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0           a  [[C
            0   28     1        from  I
            0   28     2          to  I
            0   28     3       level  I
            1   28     4      layers  I
            2   28     5  firstLayer  I
            3   27     6           i  I
            5   25     7           m  I
            6   18     8           j  I
            8   16     9           p  I
           20   25     8           p  I
           22   24     9           u  C
    MethodParameters:
       Name  Flags
      a      final
      from   final
      to     final
      level  final

  public static void radixSort(char[][]);
    descriptor: ([[C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // char[][] a
         0: .line 3000
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            iconst_0
            aaload
            arraylength
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.radixSort:([[CII)V
         1: .line 3001
            return
        end local 0 // char[][] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [[C
    MethodParameters:
      Name  Flags
      a     final

  public static void radixSort(char[][], int, int);
    descriptor: ([[CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=25, args_size=3
        start local 0 // char[][] a
        start local 1 // int from
        start local 2 // int to
         0: .line 3024
            iload 2 /* to */
            iload 1 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 3025
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            iconst_0
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.selectionSort:([[CIII)V
         2: .line 3026
            return
         3: .line 3028
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            arraylength
            istore 3 /* layers */
        start local 3 // int layers
         4: .line 3029
            iconst_2
            iload 3 /* layers */
            imul
            iconst_1
            isub
            istore 4 /* maxLevel */
        start local 4 // int maxLevel
         5: .line 3030
            iload 3 /* layers */
            istore 5 /* p */
        start local 5 // int p
         6: aload 0 /* a */
            iconst_0
            aaload
            arraylength
            istore 6 /* l */
        start local 6 // int l
         7: goto 12
         8: .line 3031
      StackMap locals: char[][] int int int int int int
      StackMap stack:
            aload 0 /* a */
            iload 5 /* p */
            aaload
            arraylength
            iload 6 /* l */
            if_icmpeq 12
         9: .line 3032
            new java.lang.IllegalArgumentException
            dup
        10: .line 3033
            new java.lang.StringBuilder
            dup
            ldc "The array of index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* p */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " has not the same length of the array of index 0."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 3032
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 3030
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iinc 5 /* p */ -1
            ifne 8
        end local 6 // int l
        end local 5 // int p
        13: .line 3034
            sipush 255
            iload 3 /* layers */
            iconst_2
            imul
            iconst_1
            isub
            imul
            iconst_1
            iadd
            istore 5 /* stackSize */
        start local 5 // int stackSize
        14: .line 3035
            iconst_0
            istore 6 /* stackPos */
        start local 6 // int stackPos
        15: .line 3036
            iload 5 /* stackSize */
            newarray 10
            astore 7 /* offsetStack */
        start local 7 // int[] offsetStack
        16: .line 3037
            iload 5 /* stackSize */
            newarray 10
            astore 8 /* lengthStack */
        start local 8 // int[] lengthStack
        17: .line 3038
            iload 5 /* stackSize */
            newarray 10
            astore 9 /* levelStack */
        start local 9 // int[] levelStack
        18: .line 3039
            aload 7 /* offsetStack */
            iload 6 /* stackPos */
            iload 1 /* from */
            iastore
        19: .line 3040
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            iload 2 /* to */
            iload 1 /* from */
            isub
            iastore
        20: .line 3041
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iinc 6 /* stackPos */ 1
            iconst_0
            iastore
        21: .line 3042
            sipush 256
            newarray 10
            astore 10 /* count */
        start local 10 // int[] count
        22: .line 3043
            sipush 256
            newarray 10
            astore 11 /* pos */
        start local 11 // int[] pos
        23: .line 3044
            iload 3 /* layers */
            newarray 5
            astore 12 /* t */
        start local 12 // char[] t
        24: .line 3045
            goto 75
        25: .line 3046
      StackMap locals: char[][] int int int int int int int[] int[] int[] int[] int[] char[]
      StackMap stack:
            aload 7 /* offsetStack */
            iinc 6 /* stackPos */ -1
            iload 6 /* stackPos */
            iaload
            istore 13 /* first */
        start local 13 // int first
        26: .line 3047
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            iaload
            istore 14 /* length */
        start local 14 // int length
        27: .line 3048
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iaload
            istore 15 /* level */
        start local 15 // int level
        28: .line 3050
            aload 0 /* a */
            iload 15 /* level */
            iconst_2
            idiv
            aaload
            astore 16 /* k */
        start local 16 // char[] k
        29: .line 3051
            iconst_1
            iload 15 /* level */
            iconst_2
            irem
            isub
            bipush 8
            imul
            istore 17 /* shift */
        start local 17 // int shift
        30: .line 3056
            iload 13 /* first */
            iload 14 /* length */
            iadd
            istore 18 /* i */
        start local 18 // int i
        31: goto 33
        32: .line 3057
      StackMap locals: char[][] int int int int int int int[] int[] int[] int[] int[] char[] int int int char[] int int
      StackMap stack:
            aload 10 /* count */
            aload 16 /* k */
            iload 18 /* i */
            caload
            iload 17 /* shift */
            iushr
            sipush 255
            iand
            dup2
            iaload
            iconst_1
            iadd
            iastore
        33: .line 3056
      StackMap locals:
      StackMap stack:
            iload 18 /* i */
            iinc 18 /* i */ -1
            iload 13 /* first */
            if_icmpne 32
        end local 18 // int i
        34: .line 3059
            iconst_m1
            istore 18 /* lastUsed */
        start local 18 // int lastUsed
        35: .line 3060
            iconst_0
            istore 19 /* i */
        start local 19 // int i
        36: iload 13 /* first */
            istore 20 /* p */
        start local 20 // int p
        37: goto 42
        38: .line 3061
      StackMap locals: int int
      StackMap stack:
            aload 10 /* count */
            iload 19 /* i */
            iaload
            ifeq 40
        39: .line 3062
            iload 19 /* i */
            istore 18 /* lastUsed */
        40: .line 3063
      StackMap locals:
      StackMap stack:
            aload 11 /* pos */
            iload 19 /* i */
            iload 20 /* p */
            aload 10 /* count */
            iload 19 /* i */
            iaload
            iadd
            dup
            istore 20 /* p */
            iastore
        41: .line 3060
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 19 /* i */
            sipush 256
            if_icmplt 38
        end local 20 // int p
        end local 19 // int i
        43: .line 3065
            iload 13 /* first */
            iload 14 /* length */
            iadd
            aload 10 /* count */
            iload 18 /* lastUsed */
            iaload
            isub
            istore 19 /* end */
        start local 19 // int end
        44: .line 3067
            iload 13 /* first */
            istore 20 /* i */
        start local 20 // int i
        45: iconst_m1
            istore 21 /* c */
        start local 21 // int c
        46: goto 74
        47: .line 3068
      StackMap locals: int
      StackMap stack:
            iload 3 /* layers */
            istore 23 /* p */
        start local 23 // int p
        48: goto 50
        49: .line 3069
      StackMap locals: char[][] int int int int int int int[] int[] int[] int[] int[] char[] int int int char[] int int int int int top int
      StackMap stack:
            aload 12 /* t */
            iload 23 /* p */
            aload 0 /* a */
            iload 23 /* p */
            aaload
            iload 20 /* i */
            caload
            castore
        50: .line 3068
      StackMap locals:
      StackMap stack:
            iload 23 /* p */
            iinc 23 /* p */ -1
            ifne 49
        end local 23 // int p
        51: .line 3070
            aload 16 /* k */
            iload 20 /* i */
            caload
            iload 17 /* shift */
            iushr
            sipush 255
            iand
            istore 21 /* c */
        52: .line 3071
            iload 20 /* i */
            iload 19 /* end */
            if_icmpge 67
        53: .line 3072
            goto 61
        start local 22 // int d
        54: .line 3073
      StackMap locals: char[][] int int int int int int int[] int[] int[] int[] int[] char[] int int int char[] int int int int int int
      StackMap stack:
            aload 16 /* k */
            iload 22 /* d */
            caload
            iload 17 /* shift */
            iushr
            sipush 255
            iand
            istore 21 /* c */
        55: .line 3074
            iload 3 /* layers */
            istore 23 /* p */
        start local 23 // int p
        56: goto 60
        57: .line 3075
      StackMap locals: int
      StackMap stack:
            aload 12 /* t */
            iload 23 /* p */
            caload
            istore 24 /* u */
        start local 24 // char u
        58: .line 3076
            aload 12 /* t */
            iload 23 /* p */
            aload 0 /* a */
            iload 23 /* p */
            aaload
            iload 22 /* d */
            caload
            castore
        59: .line 3077
            aload 0 /* a */
            iload 23 /* p */
            aaload
            iload 22 /* d */
            iload 24 /* u */
            castore
        end local 24 // char u
        60: .line 3074
      StackMap locals:
      StackMap stack:
            iload 23 /* p */
            iinc 23 /* p */ -1
            ifne 57
        end local 23 // int p
        end local 22 // int d
        61: .line 3072
      StackMap locals:
      StackMap stack:
            aload 11 /* pos */
            iload 21 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 22 /* d */
        start local 22 // int d
        62: iload 20 /* i */
            if_icmpgt 54
        63: .line 3080
            iload 3 /* layers */
            istore 23 /* p */
        start local 23 // int p
        64: goto 66
        65: .line 3081
      StackMap locals: int int
      StackMap stack:
            aload 0 /* a */
            iload 23 /* p */
            aaload
            iload 20 /* i */
            aload 12 /* t */
            iload 23 /* p */
            caload
            castore
        66: .line 3080
      StackMap locals:
      StackMap stack:
            iload 23 /* p */
            iinc 23 /* p */ -1
            ifne 65
        end local 23 // int p
        end local 22 // int d
        67: .line 3083
      StackMap locals:
      StackMap stack:
            iload 15 /* level */
            iload 4 /* maxLevel */
            if_icmpge 73
            aload 10 /* count */
            iload 21 /* c */
            iaload
            iconst_1
            if_icmple 73
        68: .line 3084
            aload 10 /* count */
            iload 21 /* c */
            iaload
            sipush 1024
            if_icmpge 70
        69: .line 3085
            aload 0 /* a */
            iload 20 /* i */
            iload 20 /* i */
            aload 10 /* count */
            iload 21 /* c */
            iaload
            iadd
            iload 15 /* level */
            iconst_1
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.selectionSort:([[CIII)V
            goto 73
        70: .line 3087
      StackMap locals:
      StackMap stack:
            aload 7 /* offsetStack */
            iload 6 /* stackPos */
            iload 20 /* i */
            iastore
        71: .line 3088
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            aload 10 /* count */
            iload 21 /* c */
            iaload
            iastore
        72: .line 3089
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iinc 6 /* stackPos */ 1
            iload 15 /* level */
            iconst_1
            iadd
            iastore
        73: .line 3067
      StackMap locals:
      StackMap stack:
            iload 20 /* i */
            aload 10 /* count */
            iload 21 /* c */
            iaload
            iadd
            istore 20 /* i */
            aload 10 /* count */
            iload 21 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        74: iload 20 /* i */
            iload 19 /* end */
            if_icmple 47
        end local 21 // int c
        end local 20 // int i
        end local 19 // int end
        end local 18 // int lastUsed
        end local 17 // int shift
        end local 16 // char[] k
        end local 15 // int level
        end local 14 // int length
        end local 13 // int first
        75: .line 3045
      StackMap locals: char[][] int int int int int int int[] int[] int[] int[] int[] char[]
      StackMap stack:
            iload 6 /* stackPos */
            ifgt 25
        76: .line 3094
            return
        end local 12 // char[] t
        end local 11 // int[] pos
        end local 10 // int[] count
        end local 9 // int[] levelStack
        end local 8 // int[] lengthStack
        end local 7 // int[] offsetStack
        end local 6 // int stackPos
        end local 5 // int stackSize
        end local 4 // int maxLevel
        end local 3 // int layers
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[][] a
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   77     0            a  [[C
            0   77     1         from  I
            0   77     2           to  I
            4   77     3       layers  I
            5   77     4     maxLevel  I
            6   13     5            p  I
            7   13     6            l  I
           14   77     5    stackSize  I
           15   77     6     stackPos  I
           16   77     7  offsetStack  [I
           17   77     8  lengthStack  [I
           18   77     9   levelStack  [I
           22   77    10        count  [I
           23   77    11          pos  [I
           24   77    12            t  [C
           26   75    13        first  I
           27   75    14       length  I
           28   75    15        level  I
           29   75    16            k  [C
           30   75    17        shift  I
           31   34    18            i  I
           35   75    18     lastUsed  I
           36   43    19            i  I
           37   43    20            p  I
           44   75    19          end  I
           45   75    20            i  I
           46   75    21            c  I
           54   61    22            d  I
           62   67    22            d  I
           48   51    23            p  I
           56   61    23            p  I
           58   60    24            u  C
           64   67    23            p  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static char[] shuffle(char[], int, int, java.util.Random);
    descriptor: ([CIILjava/util/Random;)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // java.util.Random random
         0: .line 3110
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 4 /* i */
        start local 4 // int i
         1: goto 6
         2: .line 3111
      StackMap locals: int
      StackMap stack:
            aload 3 /* random */
            iload 4 /* i */
            iconst_1
            iadd
            invokevirtual java.util.Random.nextInt:(I)I
            istore 5 /* p */
        start local 5 // int p
         3: .line 3112
            aload 0 /* a */
            iload 1 /* from */
            iload 4 /* i */
            iadd
            caload
            istore 6 /* t */
        start local 6 // char t
         4: .line 3113
            aload 0 /* a */
            iload 1 /* from */
            iload 4 /* i */
            iadd
            aload 0 /* a */
            iload 1 /* from */
            iload 5 /* p */
            iadd
            caload
            castore
         5: .line 3114
            aload 0 /* a */
            iload 1 /* from */
            iload 5 /* p */
            iadd
            iload 6 /* t */
            castore
        end local 6 // char t
        end local 5 // int p
         6: .line 3110
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iinc 4 /* i */ -1
            ifne 2
        end local 4 // int i
         7: .line 3116
            aload 0 /* a */
            areturn
        end local 3 // java.util.Random random
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0       a  [C
            0    8     1    from  I
            0    8     2      to  I
            0    8     3  random  Ljava/util/Random;
            1    7     4       i  I
            3    6     5       p  I
            4    6     6       t  C
    MethodParameters:
        Name  Flags
      a       final
      from    final
      to      final
      random  final

  public static char[] shuffle(char[], java.util.Random);
    descriptor: ([CLjava/util/Random;)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // char[] a
        start local 1 // java.util.Random random
         0: .line 3129
            aload 0 /* a */
            arraylength
            istore 2 /* i */
        start local 2 // int i
         1: goto 6
         2: .line 3130
      StackMap locals: int
      StackMap stack:
            aload 1 /* random */
            iload 2 /* i */
            iconst_1
            iadd
            invokevirtual java.util.Random.nextInt:(I)I
            istore 3 /* p */
        start local 3 // int p
         3: .line 3131
            aload 0 /* a */
            iload 2 /* i */
            caload
            istore 4 /* t */
        start local 4 // char t
         4: .line 3132
            aload 0 /* a */
            iload 2 /* i */
            aload 0 /* a */
            iload 3 /* p */
            caload
            castore
         5: .line 3133
            aload 0 /* a */
            iload 3 /* p */
            iload 4 /* t */
            castore
        end local 4 // char t
        end local 3 // int p
         6: .line 3129
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iinc 2 /* i */ -1
            ifne 2
        end local 2 // int i
         7: .line 3135
            aload 0 /* a */
            areturn
        end local 1 // java.util.Random random
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0       a  [C
            0    8     1  random  Ljava/util/Random;
            1    7     2       i  I
            3    6     3       p  I
            4    6     4       t  C
    MethodParameters:
        Name  Flags
      a       final
      random  final

  public static char[] reverse(char[]);
    descriptor: ([C)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // char[] a
         0: .line 3145
            aload 0 /* a */
            arraylength
            istore 1 /* length */
        start local 1 // int length
         1: .line 3146
            iload 1 /* length */
            iconst_2
            idiv
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 3147
      StackMap locals: int int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* length */
            iload 2 /* i */
            isub
            iconst_1
            isub
            caload
            istore 3 /* t */
        start local 3 // char t
         4: .line 3148
            aload 0 /* a */
            iload 1 /* length */
            iload 2 /* i */
            isub
            iconst_1
            isub
            aload 0 /* a */
            iload 2 /* i */
            caload
            castore
         5: .line 3149
            aload 0 /* a */
            iload 2 /* i */
            iload 3 /* t */
            castore
        end local 3 // char t
         6: .line 3146
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iinc 2 /* i */ -1
            ifne 3
        end local 2 // int i
         7: .line 3151
            aload 0 /* a */
            areturn
        end local 1 // int length
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0       a  [C
            1    8     1  length  I
            2    7     2       i  I
            4    6     3       t  C
    MethodParameters:
      Name  Flags
      a     final

  public static char[] reverse(char[], int, int);
    descriptor: ([CII)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // char[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 3165
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 3 /* length */
        start local 3 // int length
         1: .line 3166
            iload 3 /* length */
            iconst_2
            idiv
            istore 4 /* i */
        start local 4 // int i
         2: goto 6
         3: .line 3167
      StackMap locals: int int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* from */
            iload 3 /* length */
            iadd
            iload 4 /* i */
            isub
            iconst_1
            isub
            caload
            istore 5 /* t */
        start local 5 // char t
         4: .line 3168
            aload 0 /* a */
            iload 1 /* from */
            iload 3 /* length */
            iadd
            iload 4 /* i */
            isub
            iconst_1
            isub
            aload 0 /* a */
            iload 1 /* from */
            iload 4 /* i */
            iadd
            caload
            castore
         5: .line 3169
            aload 0 /* a */
            iload 1 /* from */
            iload 4 /* i */
            iadd
            iload 5 /* t */
            castore
        end local 5 // char t
         6: .line 3166
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iinc 4 /* i */ -1
            ifne 3
        end local 4 // int i
         7: .line 3171
            aload 0 /* a */
            areturn
        end local 3 // int length
        end local 2 // int to
        end local 1 // int from
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0       a  [C
            0    8     1    from  I
            0    8     2      to  I
            1    8     3  length  I
            2    7     4       i  I
            4    6     5       t  C
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  private static java.lang.Void lambda$0(java.util.concurrent.atomic.AtomicInteger, int, java.util.concurrent.LinkedBlockingQueue, char[]);
    descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[C)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=18, args_size=4
         0: .line 2151
            sipush 256
            newarray 10
            astore 4 /* count */
        start local 4 // int[] count
         1: .line 2152
            sipush 256
            newarray 10
            astore 5 /* pos */
        start local 5 // int[] pos
         2: .line 2154
      StackMap locals: int[] int[]
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            ifne 7
         3: .line 2155
            iload 1
            istore 6 /* i */
        start local 6 // int i
         4: goto 6
         5: .line 2156
      StackMap locals: int
      StackMap stack:
            aload 2
            getstatic it.unimi.dsi.fastutil.chars.CharArrays.POISON_PILL:Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
         6: .line 2155
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            iinc 6 /* i */ -1
            ifne 5
        end local 6 // int i
         7: .line 2157
      StackMap locals:
      StackMap stack:
            aload 2
            invokevirtual java.util.concurrent.LinkedBlockingQueue.take:()Ljava/lang/Object;
            checkcast it.unimi.dsi.fastutil.chars.CharArrays$Segment
            astore 6 /* segment */
        start local 6 // it.unimi.dsi.fastutil.chars.CharArrays$Segment segment
         8: .line 2158
            aload 6 /* segment */
            getstatic it.unimi.dsi.fastutil.chars.CharArrays.POISON_PILL:Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;
            if_acmpne 10
         9: .line 2159
            aconst_null
            areturn
        10: .line 2160
      StackMap locals: it.unimi.dsi.fastutil.chars.CharArrays$Segment
      StackMap stack:
            aload 6 /* segment */
            getfield it.unimi.dsi.fastutil.chars.CharArrays$Segment.offset:I
            istore 7 /* first */
        start local 7 // int first
        11: .line 2161
            aload 6 /* segment */
            getfield it.unimi.dsi.fastutil.chars.CharArrays$Segment.length:I
            istore 8 /* length */
        start local 8 // int length
        12: .line 2162
            aload 6 /* segment */
            getfield it.unimi.dsi.fastutil.chars.CharArrays$Segment.level:I
            istore 9 /* level */
        start local 9 // int level
        13: .line 2164
            iconst_1
            iload 9 /* level */
            iconst_2
            irem
            isub
            bipush 8
            imul
            istore 10 /* shift */
        start local 10 // int shift
        14: .line 2172
            iload 7 /* first */
            iload 8 /* length */
            iadd
            istore 11 /* i */
        start local 11 // int i
        15: goto 17
        16: .line 2173
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue char[] int[] int[] it.unimi.dsi.fastutil.chars.CharArrays$Segment int int int int int
      StackMap stack:
            aload 4 /* count */
            aload 3
            iload 11 /* i */
            caload
            iload 10 /* shift */
            iushr
            sipush 255
            iand
            dup2
            iaload
            iconst_1
            iadd
            iastore
        17: .line 2172
      StackMap locals:
      StackMap stack:
            iload 11 /* i */
            iinc 11 /* i */ -1
            iload 7 /* first */
            if_icmpne 16
        end local 11 // int i
        18: .line 2175
            iconst_m1
            istore 11 /* lastUsed */
        start local 11 // int lastUsed
        19: .line 2176
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        20: iload 7 /* first */
            istore 13 /* p */
        start local 13 // int p
        21: goto 26
        22: .line 2177
      StackMap locals: int int
      StackMap stack:
            aload 4 /* count */
            iload 12 /* i */
            iaload
            ifeq 24
        23: .line 2178
            iload 12 /* i */
            istore 11 /* lastUsed */
        24: .line 2179
      StackMap locals:
      StackMap stack:
            aload 5 /* pos */
            iload 12 /* i */
            iload 13 /* p */
            aload 4 /* count */
            iload 12 /* i */
            iaload
            iadd
            dup
            istore 13 /* p */
            iastore
        25: .line 2176
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 12 /* i */
            sipush 256
            if_icmplt 22
        end local 13 // int p
        end local 12 // int i
        27: .line 2181
            iload 7 /* first */
            iload 8 /* length */
            iadd
            aload 4 /* count */
            iload 11 /* lastUsed */
            iaload
            isub
            istore 12 /* end */
        start local 12 // int end
        28: .line 2183
            iload 7 /* first */
            istore 13 /* i */
        start local 13 // int i
        29: iconst_m1
            istore 14 /* c */
        start local 14 // int c
        30: goto 48
        31: .line 2184
      StackMap locals: int
      StackMap stack:
            aload 3
            iload 13 /* i */
            caload
            istore 16 /* t */
        start local 16 // char t
        32: .line 2185
            iload 16 /* t */
            iload 10 /* shift */
            iushr
            sipush 255
            iand
            istore 14 /* c */
        33: .line 2186
            iload 13 /* i */
            iload 12 /* end */
            if_icmpge 42
        34: .line 2187
            goto 39
        start local 15 // int d
        35: .line 2188
      StackMap locals: int int
      StackMap stack:
            iload 16 /* t */
            istore 17 /* z */
        start local 17 // char z
        36: .line 2189
            aload 3
            iload 15 /* d */
            caload
            istore 16 /* t */
        37: .line 2190
            aload 3
            iload 15 /* d */
            iload 17 /* z */
            castore
        38: .line 2191
            iload 16 /* t */
            iload 10 /* shift */
            iushr
            sipush 255
            iand
            istore 14 /* c */
        end local 17 // char z
        end local 15 // int d
        39: .line 2187
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue char[] int[] int[] it.unimi.dsi.fastutil.chars.CharArrays$Segment int int int int int int int int top int
      StackMap stack:
            aload 5 /* pos */
            iload 14 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 15 /* d */
        start local 15 // int d
        40: iload 13 /* i */
            if_icmpgt 35
        41: .line 2193
            aload 3
            iload 13 /* i */
            iload 16 /* t */
            castore
        end local 15 // int d
        42: .line 2195
      StackMap locals:
      StackMap stack:
            iload 9 /* level */
            iconst_1
            if_icmpge 47
            aload 4 /* count */
            iload 14 /* c */
            iaload
            iconst_1
            if_icmple 47
        43: .line 2196
            aload 4 /* count */
            iload 14 /* c */
            iaload
            sipush 1024
            if_icmpge 45
        44: .line 2197
            aload 3
            iload 13 /* i */
            iload 13 /* i */
            aload 4 /* count */
            iload 14 /* c */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([CII)V
            goto 47
        45: .line 2199
      StackMap locals:
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
        46: .line 2200
            aload 2
            new it.unimi.dsi.fastutil.chars.CharArrays$Segment
            dup
            iload 13 /* i */
            aload 4 /* count */
            iload 14 /* c */
            iaload
            iload 9 /* level */
            iconst_1
            iadd
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // char t
        47: .line 2183
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue char[] int[] int[] it.unimi.dsi.fastutil.chars.CharArrays$Segment int int int int int int int int
      StackMap stack:
            iload 13 /* i */
            aload 4 /* count */
            iload 14 /* c */
            iaload
            iadd
            istore 13 /* i */
            aload 4 /* count */
            iload 14 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        48: iload 13 /* i */
            iload 12 /* end */
            if_icmple 31
        end local 14 // int c
        end local 13 // int i
        49: .line 2204
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
        end local 12 // int end
        end local 11 // int lastUsed
        end local 10 // int shift
        end local 9 // int level
        end local 8 // int length
        end local 7 // int first
        end local 6 // it.unimi.dsi.fastutil.chars.CharArrays$Segment segment
        50: .line 2153
            goto 2
        end local 5 // int[] pos
        end local 4 // int[] count
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1   51     4     count  [I
            2   51     5       pos  [I
            4    7     6         i  I
            8   50     6   segment  Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;
           11   50     7     first  I
           12   50     8    length  I
           13   50     9     level  I
           14   50    10     shift  I
           15   18    11         i  I
           19   50    11  lastUsed  I
           20   27    12         i  I
           21   27    13         p  I
           28   50    12       end  I
           29   49    13         i  I
           30   49    14         c  I
           35   39    15         d  I
           40   42    15         d  I
           32   47    16         t  C
           36   39    17         z  C
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$1(java.util.concurrent.atomic.AtomicInteger, int, java.util.concurrent.LinkedBlockingQueue, char[], int[], boolean, int[]);
    descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[C[IZ[I)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=21, args_size=7
         0: .line 2421
            sipush 256
            newarray 10
            astore 7 /* count */
        start local 7 // int[] count
         1: .line 2422
            sipush 256
            newarray 10
            astore 8 /* pos */
        start local 8 // int[] pos
         2: .line 2424
      StackMap locals: int[] int[]
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            ifne 7
         3: .line 2425
            iload 1
            istore 9 /* i */
        start local 9 // int i
         4: goto 6
         5: .line 2426
      StackMap locals: int
      StackMap stack:
            aload 2
            getstatic it.unimi.dsi.fastutil.chars.CharArrays.POISON_PILL:Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
         6: .line 2425
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            iinc 9 /* i */ -1
            ifne 5
        end local 9 // int i
         7: .line 2427
      StackMap locals:
      StackMap stack:
            aload 2
            invokevirtual java.util.concurrent.LinkedBlockingQueue.take:()Ljava/lang/Object;
            checkcast it.unimi.dsi.fastutil.chars.CharArrays$Segment
            astore 9 /* segment */
        start local 9 // it.unimi.dsi.fastutil.chars.CharArrays$Segment segment
         8: .line 2428
            aload 9 /* segment */
            getstatic it.unimi.dsi.fastutil.chars.CharArrays.POISON_PILL:Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;
            if_acmpne 10
         9: .line 2429
            aconst_null
            areturn
        10: .line 2430
      StackMap locals: it.unimi.dsi.fastutil.chars.CharArrays$Segment
      StackMap stack:
            aload 9 /* segment */
            getfield it.unimi.dsi.fastutil.chars.CharArrays$Segment.offset:I
            istore 10 /* first */
        start local 10 // int first
        11: .line 2431
            aload 9 /* segment */
            getfield it.unimi.dsi.fastutil.chars.CharArrays$Segment.length:I
            istore 11 /* length */
        start local 11 // int length
        12: .line 2432
            aload 9 /* segment */
            getfield it.unimi.dsi.fastutil.chars.CharArrays$Segment.level:I
            istore 12 /* level */
        start local 12 // int level
        13: .line 2434
            iconst_1
            iload 12 /* level */
            iconst_2
            irem
            isub
            bipush 8
            imul
            istore 13 /* shift */
        start local 13 // int shift
        14: .line 2442
            iload 10 /* first */
            iload 11 /* length */
            iadd
            istore 14 /* i */
        start local 14 // int i
        15: goto 17
        16: .line 2443
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue char[] int[] int int[] int[] int[] it.unimi.dsi.fastutil.chars.CharArrays$Segment int int int int int
      StackMap stack:
            aload 7 /* count */
            aload 3
            aload 4
            iload 14 /* i */
            iaload
            caload
            iload 13 /* shift */
            iushr
            sipush 255
            iand
            dup2
            iaload
            iconst_1
            iadd
            iastore
        17: .line 2442
      StackMap locals:
      StackMap stack:
            iload 14 /* i */
            iinc 14 /* i */ -1
            iload 10 /* first */
            if_icmpne 16
        end local 14 // int i
        18: .line 2445
            iconst_m1
            istore 14 /* lastUsed */
        start local 14 // int lastUsed
        19: .line 2446
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        20: iload 10 /* first */
            istore 16 /* p */
        start local 16 // int p
        21: goto 26
        22: .line 2447
      StackMap locals: int int
      StackMap stack:
            aload 7 /* count */
            iload 15 /* i */
            iaload
            ifeq 24
        23: .line 2448
            iload 15 /* i */
            istore 14 /* lastUsed */
        24: .line 2449
      StackMap locals:
      StackMap stack:
            aload 8 /* pos */
            iload 15 /* i */
            iload 16 /* p */
            aload 7 /* count */
            iload 15 /* i */
            iaload
            iadd
            dup
            istore 16 /* p */
            iastore
        25: .line 2446
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 15 /* i */
            sipush 256
            if_icmplt 22
        end local 16 // int p
        end local 15 // int i
        27: .line 2451
            iload 5
            ifeq 46
        28: .line 2452
            iload 10 /* first */
            iload 11 /* length */
            iadd
            istore 15 /* i */
        start local 15 // int i
        29: goto 31
        30: .line 2453
      StackMap locals:
      StackMap stack:
            aload 6
            aload 8 /* pos */
            aload 3
            aload 4
            iload 15 /* i */
            iaload
            caload
            iload 13 /* shift */
            iushr
            sipush 255
            iand
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            aload 4
            iload 15 /* i */
            iaload
            iastore
        31: .line 2452
      StackMap locals:
      StackMap stack:
            iload 15 /* i */
            iinc 15 /* i */ -1
            iload 10 /* first */
            if_icmpne 30
        end local 15 // int i
        32: .line 2454
            aload 6
            iload 10 /* first */
            aload 4
            iload 10 /* first */
            iload 11 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        33: .line 2455
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        34: iload 10 /* first */
            istore 16 /* p */
        start local 16 // int p
        35: goto 43
        36: .line 2456
      StackMap locals: int
      StackMap stack:
            iload 12 /* level */
            iconst_1
            if_icmpge 41
            aload 7 /* count */
            iload 15 /* i */
            iaload
            iconst_1
            if_icmple 41
        37: .line 2457
            aload 7 /* count */
            iload 15 /* i */
            iaload
            sipush 1024
            if_icmpge 39
        38: .line 2458
            aload 4
            aload 3
            iload 16 /* p */
            iload 16 /* p */
            aload 7 /* count */
            iload 15 /* i */
            iaload
            iadd
            iload 5
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.radixSortIndirect:([I[CIIZ)V
            goto 41
        39: .line 2460
      StackMap locals:
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
        40: .line 2461
            aload 2
            new it.unimi.dsi.fastutil.chars.CharArrays$Segment
            dup
            iload 16 /* p */
            aload 7 /* count */
            iload 15 /* i */
            iaload
            iload 12 /* level */
            iconst_1
            iadd
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
        41: .line 2464
      StackMap locals:
      StackMap stack:
            iload 16 /* p */
            aload 7 /* count */
            iload 15 /* i */
            iaload
            iadd
            istore 16 /* p */
        42: .line 2455
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        43: iload 15 /* i */
            iload 14 /* lastUsed */
            if_icmple 36
        end local 16 // int p
        end local 15 // int i
        44: .line 2466
            aload 7 /* count */
            iconst_0
            invokestatic java.util.Arrays.fill:([II)V
        45: .line 2467
            goto 68
        46: .line 2468
      StackMap locals:
      StackMap stack:
            iload 10 /* first */
            iload 11 /* length */
            iadd
            aload 7 /* count */
            iload 14 /* lastUsed */
            iaload
            isub
            istore 15 /* end */
        start local 15 // int end
        47: .line 2470
            iload 10 /* first */
            istore 16 /* i */
        start local 16 // int i
        48: iconst_m1
            istore 17 /* c */
        start local 17 // int c
        49: goto 67
        50: .line 2471
      StackMap locals: int int int
      StackMap stack:
            aload 4
            iload 16 /* i */
            iaload
            istore 19 /* t */
        start local 19 // int t
        51: .line 2472
            aload 3
            iload 19 /* t */
            caload
            iload 13 /* shift */
            iushr
            sipush 255
            iand
            istore 17 /* c */
        52: .line 2473
            iload 16 /* i */
            iload 15 /* end */
            if_icmpge 61
        53: .line 2474
            goto 58
        start local 18 // int d
        54: .line 2475
      StackMap locals: int int
      StackMap stack:
            iload 19 /* t */
            istore 20 /* z */
        start local 20 // int z
        55: .line 2476
            aload 4
            iload 18 /* d */
            iaload
            istore 19 /* t */
        56: .line 2477
            aload 4
            iload 18 /* d */
            iload 20 /* z */
            iastore
        57: .line 2478
            aload 3
            iload 19 /* t */
            caload
            iload 13 /* shift */
            iushr
            sipush 255
            iand
            istore 17 /* c */
        end local 20 // int z
        end local 18 // int d
        58: .line 2474
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue char[] int[] int int[] int[] int[] it.unimi.dsi.fastutil.chars.CharArrays$Segment int int int int int int int int top int
      StackMap stack:
            aload 8 /* pos */
            iload 17 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 18 /* d */
        start local 18 // int d
        59: iload 16 /* i */
            if_icmpgt 54
        60: .line 2480
            aload 4
            iload 16 /* i */
            iload 19 /* t */
            iastore
        end local 18 // int d
        61: .line 2482
      StackMap locals:
      StackMap stack:
            iload 12 /* level */
            iconst_1
            if_icmpge 66
            aload 7 /* count */
            iload 17 /* c */
            iaload
            iconst_1
            if_icmple 66
        62: .line 2483
            aload 7 /* count */
            iload 17 /* c */
            iaload
            sipush 1024
            if_icmpge 64
        63: .line 2484
            aload 4
            aload 3
            iload 16 /* i */
            iload 16 /* i */
            aload 7 /* count */
            iload 17 /* c */
            iaload
            iadd
            iload 5
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.radixSortIndirect:([I[CIIZ)V
            goto 66
        64: .line 2486
      StackMap locals:
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
        65: .line 2487
            aload 2
            new it.unimi.dsi.fastutil.chars.CharArrays$Segment
            dup
            iload 16 /* i */
            aload 7 /* count */
            iload 17 /* c */
            iaload
            iload 12 /* level */
            iconst_1
            iadd
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
        end local 19 // int t
        66: .line 2470
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue char[] int[] int int[] int[] int[] it.unimi.dsi.fastutil.chars.CharArrays$Segment int int int int int int int int
      StackMap stack:
            iload 16 /* i */
            aload 7 /* count */
            iload 17 /* c */
            iaload
            iadd
            istore 16 /* i */
            aload 7 /* count */
            iload 17 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        67: iload 16 /* i */
            iload 15 /* end */
            if_icmple 50
        end local 17 // int c
        end local 16 // int i
        end local 15 // int end
        68: .line 2492
      StackMap locals:
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
        end local 14 // int lastUsed
        end local 13 // int shift
        end local 12 // int level
        end local 11 // int length
        end local 10 // int first
        end local 9 // it.unimi.dsi.fastutil.chars.CharArrays$Segment segment
        69: .line 2423
            goto 2
        end local 8 // int[] pos
        end local 7 // int[] count
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1   70     7     count  [I
            2   70     8       pos  [I
            4    7     9         i  I
            8   69     9   segment  Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;
           11   69    10     first  I
           12   69    11    length  I
           13   69    12     level  I
           14   69    13     shift  I
           15   18    14         i  I
           19   69    14  lastUsed  I
           20   27    15         i  I
           21   27    16         p  I
           29   32    15         i  I
           34   44    15         i  I
           35   44    16         p  I
           47   68    15       end  I
           48   68    16         i  I
           49   68    17         c  I
           54   58    18         d  I
           59   61    18         d  I
           51   66    19         t  I
           55   58    20         z  I
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$2(java.util.concurrent.atomic.AtomicInteger, int, java.util.concurrent.LinkedBlockingQueue, char[], char[]);
    descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[C[C)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=23, args_size=5
         0: .line 2696
            sipush 256
            newarray 10
            astore 5 /* count */
        start local 5 // int[] count
         1: .line 2697
            sipush 256
            newarray 10
            astore 6 /* pos */
        start local 6 // int[] pos
         2: .line 2699
      StackMap locals: int[] int[]
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            ifne 7
         3: .line 2700
            iload 1
            istore 7 /* i */
        start local 7 // int i
         4: goto 6
         5: .line 2701
      StackMap locals: int
      StackMap stack:
            aload 2
            getstatic it.unimi.dsi.fastutil.chars.CharArrays.POISON_PILL:Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
         6: .line 2700
      StackMap locals:
      StackMap stack:
            iload 7 /* i */
            iinc 7 /* i */ -1
            ifne 5
        end local 7 // int i
         7: .line 2702
      StackMap locals:
      StackMap stack:
            aload 2
            invokevirtual java.util.concurrent.LinkedBlockingQueue.take:()Ljava/lang/Object;
            checkcast it.unimi.dsi.fastutil.chars.CharArrays$Segment
            astore 7 /* segment */
        start local 7 // it.unimi.dsi.fastutil.chars.CharArrays$Segment segment
         8: .line 2703
            aload 7 /* segment */
            getstatic it.unimi.dsi.fastutil.chars.CharArrays.POISON_PILL:Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;
            if_acmpne 10
         9: .line 2704
            aconst_null
            areturn
        10: .line 2705
      StackMap locals: it.unimi.dsi.fastutil.chars.CharArrays$Segment
      StackMap stack:
            aload 7 /* segment */
            getfield it.unimi.dsi.fastutil.chars.CharArrays$Segment.offset:I
            istore 8 /* first */
        start local 8 // int first
        11: .line 2706
            aload 7 /* segment */
            getfield it.unimi.dsi.fastutil.chars.CharArrays$Segment.length:I
            istore 9 /* length */
        start local 9 // int length
        12: .line 2707
            aload 7 /* segment */
            getfield it.unimi.dsi.fastutil.chars.CharArrays$Segment.level:I
            istore 10 /* level */
        start local 10 // int level
        13: .line 2708
            iload 10 /* level */
            iconst_2
            irem
            ifne 14
            sipush 128
            goto 15
      StackMap locals: int int int
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 11 /* signMask */
        start local 11 // int signMask
        16: .line 2709
            iload 10 /* level */
            iconst_2
            if_icmpge 17
            aload 3
            goto 18
      StackMap locals: int
      StackMap stack:
        17: aload 4
      StackMap locals:
      StackMap stack: char[]
        18: astore 12 /* k */
        start local 12 // char[] k
        19: .line 2710
            iconst_1
            iload 10 /* level */
            iconst_2
            irem
            isub
            bipush 8
            imul
            istore 13 /* shift */
        start local 13 // int shift
        20: .line 2712
            iload 8 /* first */
            iload 9 /* length */
            iadd
            istore 14 /* i */
        start local 14 // int i
        21: goto 23
        22: .line 2713
      StackMap locals: char[] int int
      StackMap stack:
            aload 5 /* count */
            aload 12 /* k */
            iload 14 /* i */
            caload
            iload 13 /* shift */
            iushr
            sipush 255
            iand
            iload 11 /* signMask */
            ixor
            dup2
            iaload
            iconst_1
            iadd
            iastore
        23: .line 2712
      StackMap locals:
      StackMap stack:
            iload 14 /* i */
            iinc 14 /* i */ -1
            iload 8 /* first */
            if_icmpne 22
        end local 14 // int i
        24: .line 2715
            iconst_m1
            istore 14 /* lastUsed */
        start local 14 // int lastUsed
        25: .line 2716
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        26: iload 8 /* first */
            istore 16 /* p */
        start local 16 // int p
        27: goto 32
        28: .line 2717
      StackMap locals: int int
      StackMap stack:
            aload 5 /* count */
            iload 15 /* i */
            iaload
            ifeq 30
        29: .line 2718
            iload 15 /* i */
            istore 14 /* lastUsed */
        30: .line 2719
      StackMap locals:
      StackMap stack:
            aload 6 /* pos */
            iload 15 /* i */
            iload 16 /* p */
            aload 5 /* count */
            iload 15 /* i */
            iaload
            iadd
            dup
            istore 16 /* p */
            iastore
        31: .line 2716
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 15 /* i */
            sipush 256
            if_icmplt 28
        end local 16 // int p
        end local 15 // int i
        33: .line 2721
            iload 8 /* first */
            iload 9 /* length */
            iadd
            aload 5 /* count */
            iload 14 /* lastUsed */
            iaload
            isub
            istore 15 /* end */
        start local 15 // int end
        34: .line 2722
            iload 8 /* first */
            istore 16 /* i */
        start local 16 // int i
        35: iconst_m1
            istore 17 /* c */
        start local 17 // int c
        36: goto 59
        37: .line 2723
      StackMap locals: int
      StackMap stack:
            aload 3
            iload 16 /* i */
            caload
            istore 19 /* t */
        start local 19 // char t
        38: .line 2724
            aload 4
            iload 16 /* i */
            caload
            istore 20 /* u */
        start local 20 // char u
        39: .line 2725
            aload 12 /* k */
            iload 16 /* i */
            caload
            iload 13 /* shift */
            iushr
            sipush 255
            iand
            iload 11 /* signMask */
            ixor
            istore 17 /* c */
        40: .line 2726
            iload 16 /* i */
            iload 15 /* end */
            if_icmpge 53
        41: .line 2727
            goto 49
        start local 18 // int d
        42: .line 2728
      StackMap locals: int int int
      StackMap stack:
            aload 12 /* k */
            iload 18 /* d */
            caload
            iload 13 /* shift */
            iushr
            sipush 255
            iand
            iload 11 /* signMask */
            ixor
            istore 17 /* c */
        43: .line 2729
            iload 19 /* t */
            istore 21 /* z */
        start local 21 // char z
        44: .line 2730
            iload 20 /* u */
            istore 22 /* w */
        start local 22 // char w
        45: .line 2731
            aload 3
            iload 18 /* d */
            caload
            istore 19 /* t */
        46: .line 2732
            aload 4
            iload 18 /* d */
            caload
            istore 20 /* u */
        47: .line 2733
            aload 3
            iload 18 /* d */
            iload 21 /* z */
            castore
        48: .line 2734
            aload 4
            iload 18 /* d */
            iload 22 /* w */
            castore
        end local 22 // char w
        end local 21 // char z
        end local 18 // int d
        49: .line 2727
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue char[] char[] int[] int[] it.unimi.dsi.fastutil.chars.CharArrays$Segment int int int int char[] int int int int int top int int
      StackMap stack:
            aload 6 /* pos */
            iload 17 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 18 /* d */
        start local 18 // int d
        50: iload 16 /* i */
            if_icmpgt 42
        51: .line 2736
            aload 3
            iload 16 /* i */
            iload 19 /* t */
            castore
        52: .line 2737
            aload 4
            iload 16 /* i */
            iload 20 /* u */
            castore
        end local 18 // int d
        53: .line 2739
      StackMap locals:
      StackMap stack:
            iload 10 /* level */
            iconst_3
            if_icmpge 58
            aload 5 /* count */
            iload 17 /* c */
            iaload
            iconst_1
            if_icmple 58
        54: .line 2740
            aload 5 /* count */
            iload 17 /* c */
            iaload
            sipush 1024
            if_icmpge 56
        55: .line 2741
            aload 3
            aload 4
            iload 16 /* i */
            iload 16 /* i */
            aload 5 /* count */
            iload 17 /* c */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.chars.CharArrays.quickSort:([C[CII)V
            goto 58
        56: .line 2743
      StackMap locals:
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
        57: .line 2744
            aload 2
            new it.unimi.dsi.fastutil.chars.CharArrays$Segment
            dup
            iload 16 /* i */
            aload 5 /* count */
            iload 17 /* c */
            iaload
            iload 10 /* level */
            iconst_1
            iadd
            invokespecial it.unimi.dsi.fastutil.chars.CharArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
        end local 20 // char u
        end local 19 // char t
        58: .line 2722
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue char[] char[] int[] int[] it.unimi.dsi.fastutil.chars.CharArrays$Segment int int int int char[] int int int int int
      StackMap stack:
            iload 16 /* i */
            aload 5 /* count */
            iload 17 /* c */
            iaload
            iadd
            istore 16 /* i */
            aload 5 /* count */
            iload 17 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        59: iload 16 /* i */
            iload 15 /* end */
            if_icmple 37
        end local 17 // int c
        end local 16 // int i
        60: .line 2748
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
        end local 15 // int end
        end local 14 // int lastUsed
        end local 13 // int shift
        end local 12 // char[] k
        end local 11 // int signMask
        end local 10 // int level
        end local 9 // int length
        end local 8 // int first
        end local 7 // it.unimi.dsi.fastutil.chars.CharArrays$Segment segment
        61: .line 2698
            goto 2
        end local 6 // int[] pos
        end local 5 // int[] count
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1   62     5     count  [I
            2   62     6       pos  [I
            4    7     7         i  I
            8   61     7   segment  Lit/unimi/dsi/fastutil/chars/CharArrays$Segment;
           11   61     8     first  I
           12   61     9    length  I
           13   61    10     level  I
           16   61    11  signMask  I
           19   61    12         k  [C
           20   61    13     shift  I
           21   24    14         i  I
           25   61    14  lastUsed  I
           26   33    15         i  I
           27   33    16         p  I
           34   61    15       end  I
           35   60    16         i  I
           36   60    17         c  I
           42   49    18         d  I
           50   53    18         d  I
           38   58    19         t  C
           39   58    20         u  C
           44   49    21         z  C
           45   49    22         w  C
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "CharArrays.java"
NestMembers:
  it.unimi.dsi.fastutil.chars.CharArrays$ArrayHashStrategy  it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSort  it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSort2  it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSortComp  it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSortIndirect  it.unimi.dsi.fastutil.chars.CharArrays$Segment
InnerClasses:
  public abstract Strategy = it.unimi.dsi.fastutil.Hash$Strategy of it.unimi.dsi.fastutil.Hash
  private final ArrayHashStrategy = it.unimi.dsi.fastutil.chars.CharArrays$ArrayHashStrategy of it.unimi.dsi.fastutil.chars.CharArrays
  protected ForkJoinQuickSort = it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSort of it.unimi.dsi.fastutil.chars.CharArrays
  protected ForkJoinQuickSort2 = it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSort2 of it.unimi.dsi.fastutil.chars.CharArrays
  protected ForkJoinQuickSortComp = it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSortComp of it.unimi.dsi.fastutil.chars.CharArrays
  protected ForkJoinQuickSortIndirect = it.unimi.dsi.fastutil.chars.CharArrays$ForkJoinQuickSortIndirect of it.unimi.dsi.fastutil.chars.CharArrays
  protected final Segment = it.unimi.dsi.fastutil.chars.CharArrays$Segment of it.unimi.dsi.fastutil.chars.CharArrays
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles