abstract class net.sf.cglib.util.SorterTemplate
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: net.sf.cglib.util.SorterTemplate
  super_class: java.lang.Object
{
  private static final int MERGESORT_THRESHOLD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 12

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

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.sf.cglib.util.SorterTemplate this
         0: .line 20
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // net.sf.cglib.util.SorterTemplate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/sf/cglib/util/SorterTemplate;

  protected abstract void swap(int, int);
    descriptor: (II)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      i     
      j     

  protected abstract int compare(int, int);
    descriptor: (II)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      i     
      j     

  protected void quickSort(int, int);
    descriptor: (II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // net.sf.cglib.util.SorterTemplate this
        start local 1 // int lo
        start local 2 // int hi
         0: .line 28
            aload 0 /* this */
            iload 1 /* lo */
            iload 2 /* hi */
            invokevirtual net.sf.cglib.util.SorterTemplate.quickSortHelper:(II)V
         1: .line 29
            aload 0 /* this */
            iload 1 /* lo */
            iload 2 /* hi */
            invokevirtual net.sf.cglib.util.SorterTemplate.insertionSort:(II)V
         2: .line 30
            return
        end local 2 // int hi
        end local 1 // int lo
        end local 0 // net.sf.cglib.util.SorterTemplate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lnet/sf/cglib/util/SorterTemplate;
            0    3     1    lo  I
            0    3     2    hi  I
    MethodParameters:
      Name  Flags
      lo    
      hi    

  private void quickSortHelper(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // net.sf.cglib.util.SorterTemplate this
        start local 1 // int lo
        start local 2 // int hi
         0: .line 34
      StackMap locals:
      StackMap stack:
            iload 2 /* hi */
            iload 1 /* lo */
            isub
            istore 3 /* diff */
        start local 3 // int diff
         1: .line 35
            iload 3 /* diff */
            bipush 7
            if_icmpgt 3
         2: .line 36
            goto 28
         3: .line 38
      StackMap locals: int
      StackMap stack:
            iload 2 /* hi */
            iload 1 /* lo */
            iadd
            iconst_2
            idiv
            istore 4 /* i */
        start local 4 // int i
         4: .line 39
            aload 0 /* this */
            iload 1 /* lo */
            iload 4 /* i */
            invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
            ifle 6
         5: .line 40
            aload 0 /* this */
            iload 1 /* lo */
            iload 4 /* i */
            invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
         6: .line 42
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* lo */
            iload 2 /* hi */
            invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
            ifle 8
         7: .line 43
            aload 0 /* this */
            iload 1 /* lo */
            iload 2 /* hi */
            invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
         8: .line 45
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* i */
            iload 2 /* hi */
            invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
            ifle 10
         9: .line 46
            aload 0 /* this */
            iload 4 /* i */
            iload 2 /* hi */
            invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
        10: .line 48
      StackMap locals:
      StackMap stack:
            iload 2 /* hi */
            iconst_1
            isub
            istore 5 /* j */
        start local 5 // int j
        11: .line 49
            aload 0 /* this */
            iload 4 /* i */
            iload 5 /* j */
            invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
        12: .line 50
            iload 1 /* lo */
            istore 4 /* i */
        13: .line 51
            iload 5 /* j */
            istore 6 /* v */
        start local 6 // int v
        14: .line 53
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iinc 4 /* i */ 1
            iload 4 /* i */
            iload 6 /* v */
            invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
            iflt 14
        15: .line 56
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iinc 5 /* j */ -1
            iload 5 /* j */
            iload 6 /* v */
            invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
            ifgt 15
        16: .line 59
            iload 5 /* j */
            iload 4 /* i */
            if_icmpge 18
        17: .line 60
            goto 20
        18: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* i */
            iload 5 /* j */
            invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
        19: .line 52
            goto 14
        20: .line 64
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* i */
            iload 2 /* hi */
            iconst_1
            isub
            invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
        21: .line 65
            iload 5 /* j */
            iload 1 /* lo */
            isub
            iload 2 /* hi */
            iload 4 /* i */
            isub
            iconst_1
            iadd
            if_icmpgt 25
        22: .line 66
            aload 0 /* this */
            iload 1 /* lo */
            iload 5 /* j */
            invokevirtual net.sf.cglib.util.SorterTemplate.quickSortHelper:(II)V
        23: .line 67
            iload 4 /* i */
            iconst_1
            iadd
            istore 1 /* lo */
        24: .line 68
            goto 0
        25: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* i */
            iconst_1
            iadd
            iload 2 /* hi */
            invokevirtual net.sf.cglib.util.SorterTemplate.quickSortHelper:(II)V
        26: .line 70
            iload 5 /* j */
            istore 2 /* hi */
        end local 6 // int v
        end local 5 // int j
        end local 4 // int i
        end local 3 // int diff
        27: .line 33
            goto 0
        28: .line 73
      StackMap locals: net.sf.cglib.util.SorterTemplate int int
      StackMap stack:
            return
        end local 2 // int hi
        end local 1 // int lo
        end local 0 // net.sf.cglib.util.SorterTemplate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   29     0  this  Lnet/sf/cglib/util/SorterTemplate;
            0   29     1    lo  I
            0   29     2    hi  I
            1   27     3  diff  I
            4   27     4     i  I
           11   27     5     j  I
           14   27     6     v  I
    MethodParameters:
      Name  Flags
      lo    
      hi    

  private void insertionSort(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // net.sf.cglib.util.SorterTemplate this
        start local 1 // int lo
        start local 2 // int hi
         0: .line 76
            iload 1 /* lo */
            iconst_1
            iadd
            istore 3 /* i */
        start local 3 // int i
         1: goto 9
         2: .line 77
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            istore 4 /* j */
        start local 4 // int j
         3: goto 7
         4: .line 78
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* j */
            iconst_1
            isub
            iload 4 /* j */
            invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
            ifle 8
         5: .line 79
            aload 0 /* this */
            iload 4 /* j */
            iconst_1
            isub
            iload 4 /* j */
            invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
         6: .line 77
            iinc 4 /* j */ -1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* j */
            iload 1 /* lo */
            if_icmpgt 4
        end local 4 // int j
         8: .line 76
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            iload 2 /* hi */
            if_icmple 2
        end local 3 // int i
        10: .line 85
            return
        end local 2 // int hi
        end local 1 // int lo
        end local 0 // net.sf.cglib.util.SorterTemplate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lnet/sf/cglib/util/SorterTemplate;
            0   11     1    lo  I
            0   11     2    hi  I
            1   10     3     i  I
            3    8     4     j  I
    MethodParameters:
      Name  Flags
      lo    
      hi    

  protected void mergeSort(int, int);
    descriptor: (II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // net.sf.cglib.util.SorterTemplate this
        start local 1 // int lo
        start local 2 // int hi
         0: .line 88
            iload 2 /* hi */
            iload 1 /* lo */
            isub
            istore 3 /* diff */
        start local 3 // int diff
         1: .line 89
            iload 3 /* diff */
            bipush 12
            if_icmpgt 4
         2: .line 90
            aload 0 /* this */
            iload 1 /* lo */
            iload 2 /* hi */
            invokevirtual net.sf.cglib.util.SorterTemplate.insertionSort:(II)V
         3: .line 91
            return
         4: .line 93
      StackMap locals: int
      StackMap stack:
            iload 1 /* lo */
            iload 3 /* diff */
            iconst_2
            idiv
            iadd
            istore 4 /* mid */
        start local 4 // int mid
         5: .line 94
            aload 0 /* this */
            iload 1 /* lo */
            iload 4 /* mid */
            invokevirtual net.sf.cglib.util.SorterTemplate.mergeSort:(II)V
         6: .line 95
            aload 0 /* this */
            iload 4 /* mid */
            iload 2 /* hi */
            invokevirtual net.sf.cglib.util.SorterTemplate.mergeSort:(II)V
         7: .line 96
            aload 0 /* this */
            iload 1 /* lo */
            iload 4 /* mid */
            iload 2 /* hi */
            iload 4 /* mid */
            iload 1 /* lo */
            isub
            iload 2 /* hi */
            iload 4 /* mid */
            isub
            invokevirtual net.sf.cglib.util.SorterTemplate.merge:(IIIII)V
         8: .line 97
            return
        end local 4 // int mid
        end local 3 // int diff
        end local 2 // int hi
        end local 1 // int lo
        end local 0 // net.sf.cglib.util.SorterTemplate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lnet/sf/cglib/util/SorterTemplate;
            0    9     1    lo  I
            0    9     2    hi  I
            1    9     3  diff  I
            5    9     4   mid  I
    MethodParameters:
      Name  Flags
      lo    
      hi    

  private void merge(int, int, int, int, int);
    descriptor: (IIIII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=11, args_size=6
        start local 0 // net.sf.cglib.util.SorterTemplate this
        start local 1 // int lo
        start local 2 // int pivot
        start local 3 // int hi
        start local 4 // int len1
        start local 5 // int len2
         0: .line 100
            iload 4 /* len1 */
            ifeq 1
            iload 5 /* len2 */
            ifne 2
         1: .line 101
      StackMap locals:
      StackMap stack:
            return
         2: .line 103
      StackMap locals:
      StackMap stack:
            iload 4 /* len1 */
            iload 5 /* len2 */
            iadd
            iconst_2
            if_icmpne 6
         3: .line 104
            aload 0 /* this */
            iload 2 /* pivot */
            iload 1 /* lo */
            invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
            ifge 5
         4: .line 105
            aload 0 /* this */
            iload 2 /* pivot */
            iload 1 /* lo */
            invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
         5: .line 107
      StackMap locals:
      StackMap stack:
            return
         6: .line 111
      StackMap locals:
      StackMap stack:
            iload 4 /* len1 */
            iload 5 /* len2 */
            if_icmple 12
         7: .line 112
            iload 4 /* len1 */
            iconst_2
            idiv
            istore 8 /* len11 */
        start local 8 // int len11
         8: .line 113
            iload 1 /* lo */
            iload 8 /* len11 */
            iadd
            istore 6 /* first_cut */
        start local 6 // int first_cut
         9: .line 114
            aload 0 /* this */
            iload 2 /* pivot */
            iload 3 /* hi */
            iload 6 /* first_cut */
            invokevirtual net.sf.cglib.util.SorterTemplate.lower:(III)I
            istore 7 /* second_cut */
        start local 7 // int second_cut
        10: .line 115
            iload 7 /* second_cut */
            iload 2 /* pivot */
            isub
            istore 9 /* len22 */
        start local 9 // int len22
        11: .line 116
            goto 16
        end local 9 // int len22
        end local 8 // int len11
        end local 7 // int second_cut
        end local 6 // int first_cut
        12: .line 117
      StackMap locals:
      StackMap stack:
            iload 5 /* len2 */
            iconst_2
            idiv
            istore 9 /* len22 */
        start local 9 // int len22
        13: .line 118
            iload 2 /* pivot */
            iload 9 /* len22 */
            iadd
            istore 7 /* second_cut */
        start local 7 // int second_cut
        14: .line 119
            aload 0 /* this */
            iload 1 /* lo */
            iload 2 /* pivot */
            iload 7 /* second_cut */
            invokevirtual net.sf.cglib.util.SorterTemplate.upper:(III)I
            istore 6 /* first_cut */
        start local 6 // int first_cut
        15: .line 120
            iload 6 /* first_cut */
            iload 1 /* lo */
            isub
            istore 8 /* len11 */
        start local 8 // int len11
        16: .line 122
      StackMap locals: net.sf.cglib.util.SorterTemplate int int int int int int int int int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* first_cut */
            iload 2 /* pivot */
            iload 7 /* second_cut */
            invokevirtual net.sf.cglib.util.SorterTemplate.rotate:(III)V
        17: .line 123
            iload 6 /* first_cut */
            iload 9 /* len22 */
            iadd
            istore 10 /* new_mid */
        start local 10 // int new_mid
        18: .line 124
            aload 0 /* this */
            iload 1 /* lo */
            iload 6 /* first_cut */
            iload 10 /* new_mid */
            iload 8 /* len11 */
            iload 9 /* len22 */
            invokevirtual net.sf.cglib.util.SorterTemplate.merge:(IIIII)V
        19: .line 125
            aload 0 /* this */
            iload 10 /* new_mid */
            iload 7 /* second_cut */
            iload 3 /* hi */
            iload 4 /* len1 */
            iload 8 /* len11 */
            isub
            iload 5 /* len2 */
            iload 9 /* len22 */
            isub
            invokevirtual net.sf.cglib.util.SorterTemplate.merge:(IIIII)V
        20: .line 126
            return
        end local 10 // int new_mid
        end local 9 // int len22
        end local 8 // int len11
        end local 7 // int second_cut
        end local 6 // int first_cut
        end local 5 // int len2
        end local 4 // int len1
        end local 3 // int hi
        end local 2 // int pivot
        end local 1 // int lo
        end local 0 // net.sf.cglib.util.SorterTemplate this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Lnet/sf/cglib/util/SorterTemplate;
            0   21     1          lo  I
            0   21     2       pivot  I
            0   21     3          hi  I
            0   21     4        len1  I
            0   21     5        len2  I
            9   12     6   first_cut  I
           15   21     6   first_cut  I
           10   12     7  second_cut  I
           14   21     7  second_cut  I
            8   12     8       len11  I
           16   21     8       len11  I
           11   12     9       len22  I
           13   21     9       len22  I
           18   21    10     new_mid  I
    MethodParameters:
       Name  Flags
      lo     
      pivot  
      hi     
      len1   
      len2   

  private void rotate(int, int, int);
    descriptor: (III)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // net.sf.cglib.util.SorterTemplate this
        start local 1 // int lo
        start local 2 // int mid
        start local 3 // int hi
         0: .line 129
            iload 1 /* lo */
            istore 4 /* lot */
        start local 4 // int lot
         1: .line 130
            iload 2 /* mid */
            iconst_1
            isub
            istore 5 /* hit */
        start local 5 // int hit
         2: .line 131
            goto 4
         3: .line 132
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* lot */
            iinc 4 /* lot */ 1
            iload 5 /* hit */
            iinc 5 /* hit */ -1
            invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
         4: .line 131
      StackMap locals:
      StackMap stack:
            iload 4 /* lot */
            iload 5 /* hit */
            if_icmplt 3
         5: .line 134
            iload 2 /* mid */
            istore 4 /* lot */
            iload 3 /* hi */
            iconst_1
            isub
            istore 5 /* hit */
         6: .line 135
            goto 8
         7: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* lot */
            iinc 4 /* lot */ 1
            iload 5 /* hit */
            iinc 5 /* hit */ -1
            invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
         8: .line 135
      StackMap locals:
      StackMap stack:
            iload 4 /* lot */
            iload 5 /* hit */
            if_icmplt 7
         9: .line 138
            iload 1 /* lo */
            istore 4 /* lot */
            iload 3 /* hi */
            iconst_1
            isub
            istore 5 /* hit */
        10: .line 139
            goto 12
        11: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* lot */
            iinc 4 /* lot */ 1
            iload 5 /* hit */
            iinc 5 /* hit */ -1
            invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
        12: .line 139
      StackMap locals:
      StackMap stack:
            iload 4 /* lot */
            iload 5 /* hit */
            if_icmplt 11
        13: .line 142
            return
        end local 5 // int hit
        end local 4 // int lot
        end local 3 // int hi
        end local 2 // int mid
        end local 1 // int lo
        end local 0 // net.sf.cglib.util.SorterTemplate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lnet/sf/cglib/util/SorterTemplate;
            0   14     1    lo  I
            0   14     2   mid  I
            0   14     3    hi  I
            1   14     4   lot  I
            2   14     5   hit  I
    MethodParameters:
      Name  Flags
      lo    
      mid   
      hi    

  private int lower(int, int, int);
    descriptor: (III)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // net.sf.cglib.util.SorterTemplate this
        start local 1 // int lo
        start local 2 // int hi
        start local 3 // int val
         0: .line 145
            iload 2 /* hi */
            iload 1 /* lo */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 146
            goto 9
         2: .line 147
      StackMap locals: int
      StackMap stack:
            iload 4 /* len */
            iconst_2
            idiv
            istore 5 /* half */
        start local 5 // int half
         3: .line 148
            iload 1 /* lo */
            iload 5 /* half */
            iadd
            istore 6 /* mid */
        start local 6 // int mid
         4: .line 149
            aload 0 /* this */
            iload 6 /* mid */
            iload 3 /* val */
            invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
            ifge 8
         5: .line 150
            iload 6 /* mid */
            iconst_1
            iadd
            istore 1 /* lo */
         6: .line 151
            iload 4 /* len */
            iload 5 /* half */
            isub
            iconst_1
            isub
            istore 4 /* len */
         7: .line 152
            goto 9
         8: .line 153
      StackMap locals: int int
      StackMap stack:
            iload 5 /* half */
            istore 4 /* len */
        end local 6 // int mid
        end local 5 // int half
         9: .line 146
      StackMap locals:
      StackMap stack:
            iload 4 /* len */
            ifgt 2
        10: .line 156
            iload 1 /* lo */
            ireturn
        end local 4 // int len
        end local 3 // int val
        end local 2 // int hi
        end local 1 // int lo
        end local 0 // net.sf.cglib.util.SorterTemplate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lnet/sf/cglib/util/SorterTemplate;
            0   11     1    lo  I
            0   11     2    hi  I
            0   11     3   val  I
            1   11     4   len  I
            3    9     5  half  I
            4    9     6   mid  I
    MethodParameters:
      Name  Flags
      lo    
      hi    
      val   

  private int upper(int, int, int);
    descriptor: (III)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // net.sf.cglib.util.SorterTemplate this
        start local 1 // int lo
        start local 2 // int hi
        start local 3 // int val
         0: .line 160
            iload 2 /* hi */
            iload 1 /* lo */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 161
            goto 9
         2: .line 162
      StackMap locals: int
      StackMap stack:
            iload 4 /* len */
            iconst_2
            idiv
            istore 5 /* half */
        start local 5 // int half
         3: .line 163
            iload 1 /* lo */
            iload 5 /* half */
            iadd
            istore 6 /* mid */
        start local 6 // int mid
         4: .line 164
            aload 0 /* this */
            iload 3 /* val */
            iload 6 /* mid */
            invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
            ifge 7
         5: .line 165
            iload 5 /* half */
            istore 4 /* len */
         6: .line 166
            goto 9
         7: .line 167
      StackMap locals: int int
      StackMap stack:
            iload 6 /* mid */
            iconst_1
            iadd
            istore 1 /* lo */
         8: .line 168
            iload 4 /* len */
            iload 5 /* half */
            isub
            iconst_1
            isub
            istore 4 /* len */
        end local 6 // int mid
        end local 5 // int half
         9: .line 161
      StackMap locals:
      StackMap stack:
            iload 4 /* len */
            ifgt 2
        10: .line 171
            iload 1 /* lo */
            ireturn
        end local 4 // int len
        end local 3 // int val
        end local 2 // int hi
        end local 1 // int lo
        end local 0 // net.sf.cglib.util.SorterTemplate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lnet/sf/cglib/util/SorterTemplate;
            0   11     1    lo  I
            0   11     2    hi  I
            0   11     3   val  I
            1   11     4   len  I
            3    9     5  half  I
            4    9     6   mid  I
    MethodParameters:
      Name  Flags
      lo    
      hi    
      val   
}
SourceFile: "SorterTemplate.java"