final class com.sun.java.util.jar.pack.Histogram
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.java.util.jar.pack.Histogram
  super_class: java.lang.Object
{
  protected final int[][] matrix;
    descriptor: [[I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final int totalWeight;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final int[] values;
    descriptor: [I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final int[] counts;
    descriptor: [I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private static final long LOW32;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4294967295

  private static double log2;
    descriptor: D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private final com.sun.java.util.jar.pack.Histogram$BitMetric bitMetric;
    descriptor: Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 37
            ldc Lcom/sun/java/util/jar/pack/Histogram;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
         3: .line 163
            ldc 2.0
            invokestatic java.lang.Math.log:(D)D
            putstatic com.sun.java.util.jar.pack.Histogram.log2:D
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(int[]);
    descriptor: ([I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // int[] valueSequence
         0: .line 54
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 189
            aload 0 /* this */
            new com.sun.java.util.jar.pack.Histogram$1
            dup
            aload 0 /* this */
            invokespecial com.sun.java.util.jar.pack.Histogram$1.<init>:(Lcom/sun/java/util/jar/pack/Histogram;)V
            putfield com.sun.java.util.jar.pack.Histogram.bitMetric:Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
         2: .line 55
            aload 1 /* valueSequence */
            invokestatic com.sun.java.util.jar.pack.Histogram.maybeSort:([I)[I
            invokestatic com.sun.java.util.jar.pack.Histogram.computeHistogram2Col:([I)[J
            astore 2 /* hist2col */
        start local 2 // long[] hist2col
         3: .line 56
            aload 2 /* hist2col */
            invokestatic com.sun.java.util.jar.pack.Histogram.makeTable:([J)[[I
            astore 3 /* table */
        start local 3 // int[][] table
         4: .line 57
            aload 0 /* this */
            aload 3 /* table */
            iconst_0
            aaload
            putfield com.sun.java.util.jar.pack.Histogram.values:[I
         5: .line 58
            aload 0 /* this */
            aload 3 /* table */
            iconst_1
            aaload
            putfield com.sun.java.util.jar.pack.Histogram.counts:[I
         6: .line 59
            aload 0 /* this */
            aload 2 /* hist2col */
            invokestatic com.sun.java.util.jar.pack.Histogram.makeMatrix:([J)[[I
            putfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
         7: .line 60
            aload 0 /* this */
            aload 1 /* valueSequence */
            arraylength
            putfield com.sun.java.util.jar.pack.Histogram.totalWeight:I
         8: .line 61
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 9
            aload 0 /* this */
            aload 1 /* valueSequence */
            invokevirtual com.sun.java.util.jar.pack.Histogram.assertWellFormed:([I)Z
            ifne 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 62
      StackMap locals: com.sun.java.util.jar.pack.Histogram int[] long[] int[][]
      StackMap stack:
            return
        end local 3 // int[][] table
        end local 2 // long[] hist2col
        end local 1 // int[] valueSequence
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lcom/sun/java/util/jar/pack/Histogram;
            0   10     1  valueSequence  [I
            3   10     2       hist2col  [J
            4   10     3          table  [[I
    MethodParameters:
               Name  Flags
      valueSequence  

  public void <init>(int[], int, int);
    descriptor: ([III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // int[] valueSequence
        start local 2 // int start
        start local 3 // int end
         0: .line 65
            aload 0 /* this */
            aload 1 /* valueSequence */
            iload 2 /* start */
            iload 3 /* end */
            invokestatic com.sun.java.util.jar.pack.Histogram.sortedSlice:([III)[I
            invokespecial com.sun.java.util.jar.pack.Histogram.<init>:([I)V
         1: .line 66
            return
        end local 3 // int end
        end local 2 // int start
        end local 1 // int[] valueSequence
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/sun/java/util/jar/pack/Histogram;
            0    2     1  valueSequence  [I
            0    2     2          start  I
            0    2     3            end  I
    MethodParameters:
               Name  Flags
      valueSequence  
      start          
      end            

  public void <init>(int[][]);
    descriptor: ([[I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // int[][] matrix
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 189
            aload 0 /* this */
            new com.sun.java.util.jar.pack.Histogram$1
            dup
            aload 0 /* this */
            invokespecial com.sun.java.util.jar.pack.Histogram$1.<init>:(Lcom/sun/java/util/jar/pack/Histogram;)V
            putfield com.sun.java.util.jar.pack.Histogram.bitMetric:Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
         2: .line 72
            aload 0 /* this */
            aload 1 /* matrix */
            invokevirtual com.sun.java.util.jar.pack.Histogram.normalizeMatrix:([[I)[[I
            astore 1 /* matrix */
         3: .line 73
            aload 0 /* this */
            aload 1 /* matrix */
            putfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
         4: .line 74
            iconst_0
            istore 2 /* length */
        start local 2 // int length
         5: .line 75
            iconst_0
            istore 3 /* weight */
        start local 3 // int weight
         6: .line 76
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 12
         8: .line 77
      StackMap locals: com.sun.java.util.jar.pack.Histogram int[][] int int int
      StackMap stack:
            aload 1 /* matrix */
            iload 4 /* i */
            aaload
            arraylength
            iconst_1
            isub
            istore 5 /* rowLength */
        start local 5 // int rowLength
         9: .line 78
            iload 2 /* length */
            iload 5 /* rowLength */
            iadd
            istore 2 /* length */
        10: .line 79
            iload 3 /* weight */
            aload 1 /* matrix */
            iload 4 /* i */
            aaload
            iconst_0
            iaload
            iload 5 /* rowLength */
            imul
            iadd
            istore 3 /* weight */
        end local 5 // int rowLength
        11: .line 76
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* i */
            aload 1 /* matrix */
            arraylength
            if_icmplt 8
        end local 4 // int i
        13: .line 81
            aload 0 /* this */
            iload 3 /* weight */
            putfield com.sun.java.util.jar.pack.Histogram.totalWeight:I
        14: .line 82
            iload 2 /* length */
            newarray 11
            astore 4 /* hist2col */
        start local 4 // long[] hist2col
        15: .line 83
            iconst_0
            istore 5 /* fillp */
        start local 5 // int fillp
        16: .line 84
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        17: goto 26
        18: .line 85
      StackMap locals: com.sun.java.util.jar.pack.Histogram int[][] int int long[] int int
      StackMap stack:
            iconst_1
            istore 7 /* j */
        start local 7 // int j
        19: goto 24
        20: .line 87
      StackMap locals: int
      StackMap stack:
            aload 4 /* hist2col */
            iload 5 /* fillp */
            iinc 5 /* fillp */ 1
            aload 1 /* matrix */
            iload 6 /* i */
            aaload
            iload 7 /* j */
            iaload
            i2l
            bipush 32
            lshl
        21: .line 88
            ldc 4294967295
            aload 1 /* matrix */
            iload 6 /* i */
            aaload
            iconst_0
            iaload
            i2l
            land
            lor
        22: .line 87
            lastore
        23: .line 85
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        24: iload 7 /* j */
            aload 1 /* matrix */
            iload 6 /* i */
            aaload
            arraylength
            if_icmplt 20
        end local 7 // int j
        25: .line 84
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 6 /* i */
            aload 1 /* matrix */
            arraylength
            if_icmplt 18
        end local 6 // int i
        27: .line 91
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 28
            iload 5 /* fillp */
            aload 4 /* hist2col */
            arraylength
            if_icmpeq 28
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        28: .line 92
      StackMap locals:
      StackMap stack:
            aload 4 /* hist2col */
            invokestatic java.util.Arrays.sort:([J)V
        29: .line 93
            aload 4 /* hist2col */
            invokestatic com.sun.java.util.jar.pack.Histogram.makeTable:([J)[[I
            astore 6 /* table */
        start local 6 // int[][] table
        30: .line 94
            aload 0 /* this */
            aload 6 /* table */
            iconst_1
            aaload
            putfield com.sun.java.util.jar.pack.Histogram.values:[I
        31: .line 95
            aload 0 /* this */
            aload 6 /* table */
            iconst_0
            aaload
            putfield com.sun.java.util.jar.pack.Histogram.counts:[I
        32: .line 96
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 33
            aload 0 /* this */
            aconst_null
            invokevirtual com.sun.java.util.jar.pack.Histogram.assertWellFormed:([I)Z
            ifne 33
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        33: .line 97
      StackMap locals: int[][]
      StackMap stack:
            return
        end local 6 // int[][] table
        end local 5 // int fillp
        end local 4 // long[] hist2col
        end local 3 // int weight
        end local 2 // int length
        end local 1 // int[][] matrix
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   34     0       this  Lcom/sun/java/util/jar/pack/Histogram;
            0   34     1     matrix  [[I
            5   34     2     length  I
            6   34     3     weight  I
            7   13     4          i  I
            9   11     5  rowLength  I
           15   34     4   hist2col  [J
           16   34     5      fillp  I
           17   27     6          i  I
           19   25     7          j  I
           30   34     6      table  [[I
    MethodParameters:
        Name  Flags
      matrix  

  public int[][] getMatrix();
    descriptor: ()[[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.java.util.jar.pack.Histogram this
         0: .line 119
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            areturn
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/Histogram;

  public int getRowCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.java.util.jar.pack.Histogram this
         0: .line 122
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            arraylength
            ireturn
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/Histogram;

  public int getRowFrequency(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // int rn
         0: .line 125
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            iload 1 /* rn */
            aaload
            iconst_0
            iaload
            ireturn
        end local 1 // int rn
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/Histogram;
            0    1     1    rn  I
    MethodParameters:
      Name  Flags
      rn    

  public int getRowLength(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // int rn
         0: .line 128
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            iload 1 /* rn */
            aaload
            arraylength
            iconst_1
            isub
            ireturn
        end local 1 // int rn
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/Histogram;
            0    1     1    rn  I
    MethodParameters:
      Name  Flags
      rn    

  public int getRowValue(int, int);
    descriptor: (II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // int rn
        start local 2 // int vn
         0: .line 131
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            iload 1 /* rn */
            aaload
            iload 2 /* vn */
            iconst_1
            iadd
            iaload
            ireturn
        end local 2 // int vn
        end local 1 // int rn
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/Histogram;
            0    1     1    rn  I
            0    1     2    vn  I
    MethodParameters:
      Name  Flags
      rn    
      vn    

  public int getRowWeight(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // int rn
         0: .line 135
            aload 0 /* this */
            iload 1 /* rn */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getRowFrequency:(I)I
            aload 0 /* this */
            iload 1 /* rn */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getRowLength:(I)I
            imul
            ireturn
        end local 1 // int rn
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/Histogram;
            0    1     1    rn  I
    MethodParameters:
      Name  Flags
      rn    

  public int getTotalWeight();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.java.util.jar.pack.Histogram this
         0: .line 140
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.totalWeight:I
            ireturn
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/Histogram;

  public int getTotalLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.java.util.jar.pack.Histogram this
         0: .line 145
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.values:[I
            arraylength
            ireturn
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/Histogram;

  public int[] getAllValues();
    descriptor: ()[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.java.util.jar.pack.Histogram this
         0: .line 152
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.values:[I
            areturn
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/Histogram;

  public int[] getAllFrequencies();
    descriptor: ()[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.java.util.jar.pack.Histogram this
         0: .line 160
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.counts:[I
            areturn
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/Histogram;

  public int getFrequency(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // int value
         0: .line 167
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.values:[I
            iload 1 /* value */
            invokestatic java.util.Arrays.binarySearch:([II)I
            istore 2 /* pos */
        start local 2 // int pos
         1: .line 168
            iload 2 /* pos */
            ifge 2
            iconst_0
            ireturn
         2: .line 169
      StackMap locals: int
      StackMap stack:
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.values:[I
            iload 2 /* pos */
            iaload
            iload 1 /* value */
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.counts:[I
            iload 2 /* pos */
            iaload
            ireturn
        end local 2 // int pos
        end local 1 // int value
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/sun/java/util/jar/pack/Histogram;
            0    4     1  value  I
            1    4     2    pos  I
    MethodParameters:
       Name  Flags
      value  

  public double getBitLength(int);
    descriptor: (I)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // int value
         0: .line 175
            aload 0 /* this */
            iload 1 /* value */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getFrequency:(I)I
            i2d
            aload 0 /* this */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getTotalWeight:()I
            i2d
            ddiv
            dstore 2 /* prob */
        start local 2 // double prob
         1: .line 176
            dload 2 /* prob */
            invokestatic java.lang.Math.log:(D)D
            dneg
            getstatic com.sun.java.util.jar.pack.Histogram.log2:D
            ddiv
            dreturn
        end local 2 // double prob
        end local 1 // int value
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/java/util/jar/pack/Histogram;
            0    2     1  value  I
            1    2     2   prob  D
    MethodParameters:
       Name  Flags
      value  

  public double getRowBitLength(int);
    descriptor: (I)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // int rn
         0: .line 181
            aload 0 /* this */
            iload 1 /* rn */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getRowFrequency:(I)I
            i2d
            aload 0 /* this */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getTotalWeight:()I
            i2d
            ddiv
            dstore 2 /* prob */
        start local 2 // double prob
         1: .line 182
            dload 2 /* prob */
            invokestatic java.lang.Math.log:(D)D
            dneg
            getstatic com.sun.java.util.jar.pack.Histogram.log2:D
            ddiv
            dreturn
        end local 2 // double prob
        end local 1 // int rn
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/java/util/jar/pack/Histogram;
            0    2     1    rn  I
            1    2     2  prob  D
    MethodParameters:
      Name  Flags
      rn    

  public com.sun.java.util.jar.pack.Histogram$BitMetric getBitMetric();
    descriptor: ()Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.java.util.jar.pack.Histogram this
         0: .line 195
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.bitMetric:Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
            areturn
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/Histogram;

  public double getBitLength();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // com.sun.java.util.jar.pack.Histogram this
         0: .line 201
            dconst_0
            dstore 1 /* sum */
        start local 1 // double sum
         1: .line 202
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 203
      StackMap locals: double int
      StackMap stack:
            dload 1 /* sum */
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getRowBitLength:(I)D
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getRowWeight:(I)I
            i2d
            dmul
            dadd
            dstore 1 /* sum */
         4: .line 202
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            arraylength
            if_icmplt 3
        end local 3 // int i
         6: .line 205
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 7
            ldc 0.1
            dload 1 /* sum */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.bitMetric:Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
            invokevirtual com.sun.java.util.jar.pack.Histogram.getBitLength:(Lcom/sun/java/util/jar/pack/Histogram$BitMetric;)D
            dsub
            invokestatic java.lang.Math.abs:(D)D
            dcmpl
            ifgt 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 206
      StackMap locals:
      StackMap stack:
            dload 1 /* sum */
            dreturn
        end local 1 // double sum
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/java/util/jar/pack/Histogram;
            1    8     1   sum  D
            2    6     3     i  I

  public double getBitLength(com.sun.java.util.jar.pack.Histogram$BitMetric);
    descriptor: (Lcom/sun/java/util/jar/pack/Histogram$BitMetric;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // com.sun.java.util.jar.pack.Histogram$BitMetric len
         0: .line 212
            dconst_0
            dstore 2 /* sum */
        start local 2 // double sum
         1: .line 213
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 9
         3: .line 214
      StackMap locals: double int
      StackMap stack:
            iconst_1
            istore 5 /* j */
        start local 5 // int j
         4: goto 7
         5: .line 215
      StackMap locals: int
      StackMap stack:
            dload 2 /* sum */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            iload 4 /* i */
            aaload
            iconst_0
            iaload
            i2d
            aload 1 /* len */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            iload 4 /* i */
            aaload
            iload 5 /* j */
            iaload
            invokeinterface com.sun.java.util.jar.pack.Histogram$BitMetric.getBitLength:(I)D
            dmul
            dadd
            dstore 2 /* sum */
         6: .line 214
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* j */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            iload 4 /* i */
            aaload
            arraylength
            if_icmplt 5
        end local 5 // int j
         8: .line 213
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            arraylength
            if_icmplt 3
        end local 4 // int i
        10: .line 218
            dload 2 /* sum */
            dreturn
        end local 2 // double sum
        end local 1 // com.sun.java.util.jar.pack.Histogram$BitMetric len
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/java/util/jar/pack/Histogram;
            0   11     1   len  Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
            1   11     2   sum  D
            2   10     4     i  I
            4    8     5     j  I
    MethodParameters:
      Name  Flags
      len   

  private static double round(double, double);
    descriptor: (DD)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // double x
        start local 2 // double scale
         0: .line 223
            dload 0 /* x */
            dload 2 /* scale */
            dmul
            invokestatic java.lang.Math.round:(D)J
            l2d
            dload 2 /* scale */
            ddiv
            dreturn
        end local 2 // double scale
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0      x  D
            0    1     2  scale  D
    MethodParameters:
       Name  Flags
      x      
      scale  

  public int[][] normalizeMatrix(int[][]);
    descriptor: ([[I)[[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=14, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // int[][] matrix
         0: .line 231
            aload 1 /* matrix */
            arraylength
            newarray 11
            astore 2 /* rowMap */
        start local 2 // long[] rowMap
         1: .line 232
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 8
         3: .line 233
      StackMap locals: long[] int
      StackMap stack:
            aload 1 /* matrix */
            iload 3 /* i */
            aaload
            arraylength
            iconst_1
            if_icmpgt 4
            goto 7
         4: .line 234
      StackMap locals:
      StackMap stack:
            aload 1 /* matrix */
            iload 3 /* i */
            aaload
            iconst_0
            iaload
            istore 4 /* count */
        start local 4 // int count
         5: .line 235
            iload 4 /* count */
            ifgt 6
            goto 7
         6: .line 236
      StackMap locals: int
      StackMap stack:
            aload 2 /* rowMap */
            iload 3 /* i */
            iload 4 /* count */
            i2l
            bipush 32
            lshl
            iload 3 /* i */
            i2l
            lor
            lastore
        end local 4 // int count
         7: .line 232
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 1 /* matrix */
            arraylength
            if_icmplt 3
        end local 3 // int i
         9: .line 238
            aload 2 /* rowMap */
            invokestatic java.util.Arrays.sort:([J)V
        10: .line 239
            aload 1 /* matrix */
            arraylength
            anewarray int[]
            astore 3 /* newMatrix */
        start local 3 // int[][] newMatrix
        11: .line 240
            iconst_m1
            istore 4 /* prevCount */
        start local 4 // int prevCount
        12: .line 241
            iconst_0
            istore 5 /* fillp1 */
        start local 5 // int fillp1
        13: .line 242
            iconst_0
            istore 6 /* fillp2 */
        start local 6 // int fillp2
        14: .line 243
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        15: .line 245
      StackMap locals: com.sun.java.util.jar.pack.Histogram int[][] long[] int[][] int int int int
      StackMap stack:
            iload 7 /* i */
            aload 1 /* matrix */
            arraylength
            if_icmpge 20
        16: .line 246
            aload 2 /* rowMap */
            aload 2 /* rowMap */
            arraylength
            iload 7 /* i */
            isub
            iconst_1
            isub
            laload
            lstore 9 /* rowMapEntry */
        start local 9 // long rowMapEntry
        17: .line 247
            lload 9 /* rowMapEntry */
            lconst_0
            lcmp
            ifne 18
            goto 60
        18: .line 248
      StackMap locals: com.sun.java.util.jar.pack.Histogram int[][] long[] int[][] int int int int top long
      StackMap stack:
            aload 1 /* matrix */
            lload 9 /* rowMapEntry */
            l2i
            aaload
            astore 8 /* row */
        start local 8 // int[] row
        19: .line 249
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 21
            lload 9 /* rowMapEntry */
            bipush 32
            lushr
            aload 8 /* row */
            iconst_0
            iaload
            i2l
            lcmp
            ifeq 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 9 // long rowMapEntry
        end local 8 // int[] row
        20: .line 251
      StackMap locals: com.sun.java.util.jar.pack.Histogram int[][] long[] int[][] int int int int
      StackMap stack:
            iconst_1
            newarray 10
            dup
            iconst_0
            iconst_m1
            iastore
            astore 8 /* row */
        start local 8 // int[] row
        21: .line 253
      StackMap locals: int[]
      StackMap stack:
            aload 8 /* row */
            iconst_0
            iaload
            iload 4 /* prevCount */
            if_icmpeq 56
            iload 6 /* fillp2 */
            iload 5 /* fillp1 */
            if_icmple 56
        22: .line 255
            iconst_0
            istore 9 /* length */
        start local 9 // int length
        23: .line 256
            iload 5 /* fillp1 */
            istore 10 /* p */
        start local 10 // int p
        24: goto 29
        25: .line 257
      StackMap locals: int int
      StackMap stack:
            aload 3 /* newMatrix */
            iload 10 /* p */
            aaload
            astore 11 /* row0 */
        start local 11 // int[] row0
        26: .line 258
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 27
            aload 11 /* row0 */
            iconst_0
            iaload
            iload 4 /* prevCount */
            if_icmpeq 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 259
      StackMap locals: int[]
      StackMap stack:
            iload 9 /* length */
            aload 11 /* row0 */
            arraylength
            iconst_1
            isub
            iadd
            istore 9 /* length */
        end local 11 // int[] row0
        28: .line 256
            iinc 10 /* p */ 1
      StackMap locals:
      StackMap stack:
        29: iload 10 /* p */
            iload 6 /* fillp2 */
            if_icmplt 25
        end local 10 // int p
        30: .line 261
            iconst_1
            iload 9 /* length */
            iadd
            newarray 10
            astore 10 /* row1 */
        start local 10 // int[] row1
        31: .line 262
            aload 10 /* row1 */
            iconst_0
            iload 4 /* prevCount */
            iastore
        32: .line 263
            iconst_1
            istore 11 /* rfillp */
        start local 11 // int rfillp
        33: .line 264
            iload 5 /* fillp1 */
            istore 12 /* p */
        start local 12 // int p
        34: goto 40
        35: .line 265
      StackMap locals: com.sun.java.util.jar.pack.Histogram int[][] long[] int[][] int int int int int[] int int[] int int
      StackMap stack:
            aload 3 /* newMatrix */
            iload 12 /* p */
            aaload
            astore 13 /* row0 */
        start local 13 // int[] row0
        36: .line 266
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 37
            aload 13 /* row0 */
            iconst_0
            iaload
            iload 4 /* prevCount */
            if_icmpeq 37
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        37: .line 267
      StackMap locals: int[]
      StackMap stack:
            aload 13 /* row0 */
            iconst_1
            aload 10 /* row1 */
            iload 11 /* rfillp */
            aload 13 /* row0 */
            arraylength
            iconst_1
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        38: .line 268
            iload 11 /* rfillp */
            aload 13 /* row0 */
            arraylength
            iconst_1
            isub
            iadd
            istore 11 /* rfillp */
        end local 13 // int[] row0
        39: .line 264
            iinc 12 /* p */ 1
      StackMap locals:
      StackMap stack:
        40: iload 12 /* p */
            iload 6 /* fillp2 */
            if_icmplt 35
        end local 12 // int p
        41: .line 270
            aload 10 /* row1 */
            iconst_1
            iconst_1
            invokestatic com.sun.java.util.jar.pack.Histogram.isSorted:([IIZ)Z
            ifne 54
        42: .line 271
            aload 10 /* row1 */
            iconst_1
            aload 10 /* row1 */
            arraylength
            invokestatic java.util.Arrays.sort:([III)V
        43: .line 272
            iconst_2
            istore 12 /* jfillp */
        start local 12 // int jfillp
        44: .line 274
            iconst_2
            istore 13 /* j */
        start local 13 // int j
        45: goto 49
        46: .line 275
      StackMap locals: int
      StackMap stack:
            aload 10 /* row1 */
            iload 13 /* j */
            iaload
            aload 10 /* row1 */
            iload 13 /* j */
            iconst_1
            isub
            iaload
            if_icmpeq 48
        47: .line 276
            aload 10 /* row1 */
            iload 12 /* jfillp */
            iinc 12 /* jfillp */ 1
            aload 10 /* row1 */
            iload 13 /* j */
            iaload
            iastore
        48: .line 274
      StackMap locals:
      StackMap stack:
            iinc 13 /* j */ 1
      StackMap locals:
      StackMap stack:
        49: iload 13 /* j */
            aload 10 /* row1 */
            arraylength
            if_icmplt 46
        end local 13 // int j
        50: .line 278
            iload 12 /* jfillp */
            aload 10 /* row1 */
            arraylength
            if_icmpge 54
        51: .line 280
            iload 12 /* jfillp */
            newarray 10
            astore 13 /* newRow1 */
        start local 13 // int[] newRow1
        52: .line 281
            aload 10 /* row1 */
            iconst_0
            aload 13 /* newRow1 */
            iconst_0
            iload 12 /* jfillp */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        53: .line 282
            aload 13 /* newRow1 */
            astore 10 /* row1 */
        end local 13 // int[] newRow1
        end local 12 // int jfillp
        54: .line 285
      StackMap locals:
      StackMap stack:
            aload 3 /* newMatrix */
            iload 5 /* fillp1 */
            iinc 5 /* fillp1 */ 1
            aload 10 /* row1 */
            aastore
        55: .line 286
            iload 5 /* fillp1 */
            istore 6 /* fillp2 */
        end local 11 // int rfillp
        end local 10 // int[] row1
        end local 9 // int length
        56: .line 288
      StackMap locals:
      StackMap stack:
            iload 7 /* i */
            aload 1 /* matrix */
            arraylength
            if_icmpne 58
        57: .line 289
            goto 61
        58: .line 290
      StackMap locals:
      StackMap stack:
            aload 8 /* row */
            iconst_0
            iaload
            istore 4 /* prevCount */
        59: .line 291
            aload 3 /* newMatrix */
            iload 6 /* fillp2 */
            iinc 6 /* fillp2 */ 1
            aload 8 /* row */
            aastore
        end local 8 // int[] row
        60: .line 243
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
            goto 15
        end local 7 // int i
        61: .line 293
      StackMap locals:
      StackMap stack:
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 62
            iload 5 /* fillp1 */
            iload 6 /* fillp2 */
            if_icmpeq 62
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        62: .line 295
      StackMap locals:
      StackMap stack:
            aload 3 /* newMatrix */
            astore 1 /* matrix */
        63: .line 296
            iload 5 /* fillp1 */
            aload 1 /* matrix */
            arraylength
            if_icmpge 67
        64: .line 297
            iload 5 /* fillp1 */
            anewarray int[]
            astore 3 /* newMatrix */
        65: .line 298
            aload 1 /* matrix */
            iconst_0
            aload 3 /* newMatrix */
            iconst_0
            iload 5 /* fillp1 */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        66: .line 299
            aload 3 /* newMatrix */
            astore 1 /* matrix */
        67: .line 301
      StackMap locals:
      StackMap stack:
            aload 1 /* matrix */
            areturn
        end local 6 // int fillp2
        end local 5 // int fillp1
        end local 4 // int prevCount
        end local 3 // int[][] newMatrix
        end local 2 // long[] rowMap
        end local 1 // int[][] matrix
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   68     0         this  Lcom/sun/java/util/jar/pack/Histogram;
            0   68     1       matrix  [[I
            1   68     2       rowMap  [J
            2    9     3            i  I
            5    7     4        count  I
           11   68     3    newMatrix  [[I
           12   68     4    prevCount  I
           13   68     5       fillp1  I
           14   68     6       fillp2  I
           15   61     7            i  I
           19   20     8          row  [I
           21   60     8          row  [I
           17   20     9  rowMapEntry  J
           23   56     9       length  I
           24   30    10            p  I
           26   28    11         row0  [I
           31   56    10         row1  [I
           33   56    11       rfillp  I
           34   41    12            p  I
           36   39    13         row0  [I
           44   54    12       jfillp  I
           45   50    13            j  I
           52   54    13      newRow1  [I
    MethodParameters:
        Name  Flags
      matrix  

  public java.lang.String[] getRowTitles(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=17, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // java.lang.String name
         0: .line 306
            aload 0 /* this */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getTotalLength:()I
            istore 2 /* totalUnique */
        start local 2 // int totalUnique
         1: .line 307
            aload 0 /* this */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getTotalWeight:()I
            istore 3 /* ltotalWeight */
        start local 3 // int ltotalWeight
         2: .line 308
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            arraylength
            anewarray java.lang.String
            astore 4 /* histTitles */
        start local 4 // java.lang.String[] histTitles
         3: .line 309
            iconst_0
            istore 5 /* cumWeight */
        start local 5 // int cumWeight
         4: .line 310
            iconst_0
            istore 6 /* cumUnique */
        start local 6 // int cumUnique
         5: .line 311
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 23
         7: .line 312
      StackMap locals: com.sun.java.util.jar.pack.Histogram java.lang.String int int java.lang.String[] int int int
      StackMap stack:
            aload 0 /* this */
            iload 7 /* i */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getRowFrequency:(I)I
            istore 8 /* count */
        start local 8 // int count
         8: .line 313
            aload 0 /* this */
            iload 7 /* i */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getRowLength:(I)I
            istore 9 /* unique */
        start local 9 // int unique
         9: .line 314
            aload 0 /* this */
            iload 7 /* i */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getRowWeight:(I)I
            istore 10 /* weight */
        start local 10 // int weight
        10: .line 315
            iload 5 /* cumWeight */
            iload 10 /* weight */
            iadd
            istore 5 /* cumWeight */
        11: .line 316
            iload 6 /* cumUnique */
            iload 9 /* unique */
            iadd
            istore 6 /* cumUnique */
        12: .line 317
            iload 5 /* cumWeight */
            i2l
            ldc 100
            lmul
            iload 3 /* ltotalWeight */
            iconst_2
            idiv
            i2l
            ladd
            iload 3 /* ltotalWeight */
            i2l
            ldiv
            lstore 11 /* wpct */
        start local 11 // long wpct
        13: .line 318
            iload 6 /* cumUnique */
            i2l
            ldc 100
            lmul
            iload 2 /* totalUnique */
            iconst_2
            idiv
            i2l
            ladd
            iload 2 /* totalUnique */
            i2l
            ldiv
            lstore 13 /* upct */
        start local 13 // long upct
        14: .line 319
            aload 0 /* this */
            iload 7 /* i */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getRowBitLength:(I)D
            dstore 15 /* len */
        start local 15 // double len
        15: .line 320
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 16
            ldc 0.1
            dload 15 /* len */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            iload 7 /* i */
            aaload
            iconst_1
            iaload
            invokevirtual com.sun.java.util.jar.pack.Histogram.getBitLength:(I)D
            dsub
            invokestatic java.lang.Math.abs:(D)D
            dcmpl
            ifgt 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 321
      StackMap locals: com.sun.java.util.jar.pack.Histogram java.lang.String int int java.lang.String[] int int int int int int long long double
      StackMap stack:
            aload 4 /* histTitles */
            iload 7 /* i */
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 322
            ldc " len="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            dload 15 /* len */
            ldc 10.0
            invokestatic com.sun.java.util.jar.pack.Histogram.round:(DD)D
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
        18: .line 323
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 8 /* count */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "*["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* unique */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "])"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 324
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* cumWeight */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 11 /* wpct */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "%)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 325
            ldc " ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* cumUnique */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 13 /* upct */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "%]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 321
            aastore
        end local 15 // double len
        end local 13 // long upct
        end local 11 // long wpct
        end local 10 // int weight
        end local 9 // int unique
        end local 8 // int count
        22: .line 311
            iinc 7 /* i */ 1
      StackMap locals: com.sun.java.util.jar.pack.Histogram java.lang.String int int java.lang.String[] int int int
      StackMap stack:
        23: iload 7 /* i */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            arraylength
            if_icmplt 7
        end local 7 // int i
        24: .line 327
            aload 4 /* histTitles */
            areturn
        end local 6 // int cumUnique
        end local 5 // int cumWeight
        end local 4 // java.lang.String[] histTitles
        end local 3 // int ltotalWeight
        end local 2 // int totalUnique
        end local 1 // java.lang.String name
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   25     0          this  Lcom/sun/java/util/jar/pack/Histogram;
            0   25     1          name  Ljava/lang/String;
            1   25     2   totalUnique  I
            2   25     3  ltotalWeight  I
            3   25     4    histTitles  [Ljava/lang/String;
            4   25     5     cumWeight  I
            5   25     6     cumUnique  I
            6   24     7             i  I
            8   22     8         count  I
            9   22     9        unique  I
           10   22    10        weight  I
           13   22    11          wpct  J
           14   22    13          upct  J
           15   22    15           len  D
    MethodParameters:
      Name  Flags
      name  

  public void print(java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // java.io.PrintStream out
         0: .line 334
            aload 0 /* this */
            ldc "hist"
            aload 1 /* out */
            invokevirtual com.sun.java.util.jar.pack.Histogram.print:(Ljava/lang/String;Ljava/io/PrintStream;)V
         1: .line 335
            return
        end local 1 // java.io.PrintStream out
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/java/util/jar/pack/Histogram;
            0    2     1   out  Ljava/io/PrintStream;
    MethodParameters:
      Name  Flags
      out   

  public void print(java.lang.String, java.io.PrintStream);
    descriptor: (Ljava/lang/String;Ljava/io/PrintStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // java.lang.String name
        start local 2 // java.io.PrintStream out
         0: .line 341
            aload 0 /* this */
            aload 1 /* name */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getRowTitles:(Ljava/lang/String;)[Ljava/lang/String;
            aload 2 /* out */
            invokevirtual com.sun.java.util.jar.pack.Histogram.print:(Ljava/lang/String;[Ljava/lang/String;Ljava/io/PrintStream;)V
         1: .line 342
            return
        end local 2 // java.io.PrintStream out
        end local 1 // java.lang.String name
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/java/util/jar/pack/Histogram;
            0    2     1  name  Ljava/lang/String;
            0    2     2   out  Ljava/io/PrintStream;
    MethodParameters:
      Name  Flags
      name  
      out   

  public void print(java.lang.String, java.lang.String[], java.io.PrintStream);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;Ljava/io/PrintStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=16, args_size=4
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String[] histTitles
        start local 3 // java.io.PrintStream out
         0: .line 348
            aload 0 /* this */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getTotalLength:()I
            istore 4 /* totalUnique */
        start local 4 // int totalUnique
         1: .line 349
            aload 0 /* this */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getTotalWeight:()I
            istore 5 /* ltotalWeight */
        start local 5 // int ltotalWeight
         2: .line 350
            aload 0 /* this */
            invokevirtual com.sun.java.util.jar.pack.Histogram.getBitLength:()D
            dstore 6 /* tlen */
        start local 6 // double tlen
         3: .line 351
            dload 6 /* tlen */
            iload 5 /* ltotalWeight */
            i2d
            ddiv
            dstore 8 /* avgLen */
        start local 8 // double avgLen
         4: .line 352
            iload 5 /* ltotalWeight */
            i2d
            iload 4 /* totalUnique */
            i2d
            ddiv
            dstore 10 /* avg */
        start local 10 // double avg
         5: .line 353
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 354
            ldc " len="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            dload 6 /* tlen */
            ldc 10.0
            invokestatic com.sun.java.util.jar.pack.Histogram.round:(DD)D
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
         7: .line 355
            ldc " avgLen="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            dload 8 /* avgLen */
            ldc 10.0
            invokestatic com.sun.java.util.jar.pack.Histogram.round:(DD)D
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
         8: .line 356
            ldc " weight("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* ltotalWeight */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 357
            ldc " unique["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* totalUnique */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 358
            ldc " avgWeight("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            dload 10 /* avg */
            ldc 100.0
            invokestatic com.sun.java.util.jar.pack.Histogram.round:(DD)D
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 353
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 12 /* title */
        start local 12 // java.lang.String title
        12: .line 359
            aload 2 /* histTitles */
            ifnonnull 15
        13: .line 360
            aload 3 /* out */
            aload 12 /* title */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 361
            goto 31
        15: .line 362
      StackMap locals: com.sun.java.util.jar.pack.Histogram java.lang.String java.lang.String[] java.io.PrintStream int int double double double java.lang.String
      StackMap stack:
            aload 3 /* out */
            new java.lang.StringBuilder
            dup
            aload 12 /* title */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        16: .line 363
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 13 /* buf */
        start local 13 // java.lang.StringBuffer buf
        17: .line 364
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        18: goto 29
        19: .line 365
      StackMap locals: java.lang.StringBuffer int
      StackMap stack:
            aload 13 /* buf */
            iconst_0
            invokevirtual java.lang.StringBuffer.setLength:(I)V
        20: .line 366
            aload 13 /* buf */
            ldc "  "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 2 /* histTitles */
            iload 14 /* i */
            aaload
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            ldc " {"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        21: .line 367
            iconst_1
            istore 15 /* j */
        start local 15 // int j
        22: goto 25
        23: .line 368
      StackMap locals: int
      StackMap stack:
            aload 13 /* buf */
            ldc " "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            iload 14 /* i */
            aaload
            iload 15 /* j */
            iaload
            invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
            pop
        24: .line 367
            iinc 15 /* j */ 1
      StackMap locals:
      StackMap stack:
        25: iload 15 /* j */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            iload 14 /* i */
            aaload
            arraylength
            if_icmplt 23
        end local 15 // int j
        26: .line 370
            aload 13 /* buf */
            ldc " }"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        27: .line 371
            aload 3 /* out */
            aload 13 /* buf */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
        28: .line 364
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 14 /* i */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
            arraylength
            if_icmplt 19
        end local 14 // int i
        30: .line 373
            aload 3 /* out */
            ldc "}"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 13 // java.lang.StringBuffer buf
        31: .line 375
      StackMap locals:
      StackMap stack:
            return
        end local 12 // java.lang.String title
        end local 10 // double avg
        end local 8 // double avgLen
        end local 6 // double tlen
        end local 5 // int ltotalWeight
        end local 4 // int totalUnique
        end local 3 // java.io.PrintStream out
        end local 2 // java.lang.String[] histTitles
        end local 1 // java.lang.String name
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   32     0          this  Lcom/sun/java/util/jar/pack/Histogram;
            0   32     1          name  Ljava/lang/String;
            0   32     2    histTitles  [Ljava/lang/String;
            0   32     3           out  Ljava/io/PrintStream;
            1   32     4   totalUnique  I
            2   32     5  ltotalWeight  I
            3   32     6          tlen  D
            4   32     8        avgLen  D
            5   32    10           avg  D
           12   32    12         title  Ljava/lang/String;
           17   31    13           buf  Ljava/lang/StringBuffer;
           18   30    14             i  I
           22   26    15             j  I
    MethodParameters:
            Name  Flags
      name        
      histTitles  
      out         

  private static int[][] makeMatrix(long[]);
    descriptor: ([J)[[I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=15, args_size=1
        start local 0 // long[] hist2col
         0: .line 391
            aload 0 /* hist2col */
            invokestatic java.util.Arrays.sort:([J)V
         1: .line 392
            aload 0 /* hist2col */
            arraylength
            newarray 10
            astore 1 /* counts */
        start local 1 // int[] counts
         2: .line 393
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 6
         4: .line 394
      StackMap locals: int[] int
      StackMap stack:
            aload 1 /* counts */
            iload 2 /* i */
            aload 0 /* hist2col */
            iload 2 /* i */
            laload
            bipush 32
            lushr
            l2i
            iastore
         5: .line 393
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 1 /* counts */
            arraylength
            if_icmplt 4
        end local 2 // int i
         7: .line 396
            aload 1 /* counts */
            invokestatic com.sun.java.util.jar.pack.Histogram.computeHistogram2Col:([I)[J
            astore 2 /* countHist */
        start local 2 // long[] countHist
         8: .line 397
            aload 2 /* countHist */
            arraylength
            anewarray int[]
            astore 3 /* matrix */
        start local 3 // int[][] matrix
         9: .line 398
            iconst_0
            istore 4 /* histp */
        start local 4 // int histp
        10: .line 399
            iconst_0
            istore 5 /* countp */
        start local 5 // int countp
        11: .line 401
            aload 3 /* matrix */
            arraylength
            istore 6 /* i */
        start local 6 // int i
        12: goto 26
        13: .line 402
      StackMap locals: long[] int[] long[] int[][] int int int
      StackMap stack:
            aload 2 /* countHist */
            iload 5 /* countp */
            iinc 5 /* countp */ 1
            laload
            lstore 7 /* countAndRep */
        start local 7 // long countAndRep
        14: .line 403
            lload 7 /* countAndRep */
            l2i
            istore 9 /* count */
        start local 9 // int count
        15: .line 404
            lload 7 /* countAndRep */
            bipush 32
            lushr
            l2i
            istore 10 /* repeat */
        start local 10 // int repeat
        16: .line 405
            iconst_1
            iload 10 /* repeat */
            iadd
            newarray 10
            astore 11 /* row */
        start local 11 // int[] row
        17: .line 406
            aload 11 /* row */
            iconst_0
            iload 9 /* count */
            iastore
        18: .line 407
            iconst_0
            istore 12 /* j */
        start local 12 // int j
        19: goto 24
        20: .line 408
      StackMap locals: long[] int[] long[] int[][] int int int long int int int[] int
      StackMap stack:
            aload 0 /* hist2col */
            iload 4 /* histp */
            iinc 4 /* histp */ 1
            laload
            lstore 13 /* countAndValue */
        start local 13 // long countAndValue
        21: .line 409
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 22
            lload 13 /* countAndValue */
            bipush 32
            lushr
            iload 9 /* count */
            i2l
            lcmp
            ifeq 22
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        22: .line 410
      StackMap locals: long
      StackMap stack:
            aload 11 /* row */
            iconst_1
            iload 12 /* j */
            iadd
            lload 13 /* countAndValue */
            l2i
            iastore
        end local 13 // long countAndValue
        23: .line 407
            iinc 12 /* j */ 1
      StackMap locals:
      StackMap stack:
        24: iload 12 /* j */
            iload 10 /* repeat */
            if_icmplt 20
        end local 12 // int j
        25: .line 412
            aload 3 /* matrix */
            iload 6 /* i */
            aload 11 /* row */
            aastore
        end local 11 // int[] row
        end local 10 // int repeat
        end local 9 // int count
        end local 7 // long countAndRep
        26: .line 401
      StackMap locals: long[] int[] long[] int[][] int int int
      StackMap stack:
            iinc 6 /* i */ -1
            iload 6 /* i */
            ifge 13
        end local 6 // int i
        27: .line 414
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 28
            iload 4 /* histp */
            aload 0 /* hist2col */
            arraylength
            if_icmpeq 28
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        28: .line 415
      StackMap locals:
      StackMap stack:
            aload 3 /* matrix */
            areturn
        end local 5 // int countp
        end local 4 // int histp
        end local 3 // int[][] matrix
        end local 2 // long[] countHist
        end local 1 // int[] counts
        end local 0 // long[] hist2col
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   29     0       hist2col  [J
            2   29     1         counts  [I
            3    7     2              i  I
            8   29     2      countHist  [J
            9   29     3         matrix  [[I
           10   29     4          histp  I
           11   29     5         countp  I
           12   27     6              i  I
           14   26     7    countAndRep  J
           15   26     9          count  I
           16   26    10         repeat  I
           17   26    11            row  [I
           19   25    12              j  I
           21   23    13  countAndValue  J
    MethodParameters:
          Name  Flags
      hist2col  

  private static int[][] makeTable(long[]);
    descriptor: ([J)[[I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // long[] hist2col
         0: .line 420
            iconst_2
            aload 0 /* hist2col */
            arraylength
            multianewarray [[I 2
            astore 1 /* table */
        start local 1 // int[][] table
         1: .line 423
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 424
      StackMap locals: int[][] int
      StackMap stack:
            aload 1 /* table */
            iconst_0
            aaload
            iload 2 /* i */
            aload 0 /* hist2col */
            iload 2 /* i */
            laload
            l2i
            iastore
         4: .line 425
            aload 1 /* table */
            iconst_1
            aaload
            iload 2 /* i */
            aload 0 /* hist2col */
            iload 2 /* i */
            laload
            bipush 32
            lushr
            l2i
            iastore
         5: .line 423
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* hist2col */
            arraylength
            if_icmplt 3
        end local 2 // int i
         7: .line 427
            aload 1 /* table */
            areturn
        end local 1 // int[][] table
        end local 0 // long[] hist2col
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0  hist2col  [J
            1    8     1     table  [[I
            2    7     2         i  I
    MethodParameters:
          Name  Flags
      hist2col  

  private static long[] computeHistogram2Col(int[]);
    descriptor: ([I)[J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=8, args_size=1
        start local 0 // int[] sortedValues
         0: .line 447
            aload 0 /* sortedValues */
            arraylength
            tableswitch { // 0 - 1
                    0: 1
                    1: 2
              default: 3
          }
         1: .line 449
      StackMap locals:
      StackMap stack:
            iconst_0
            newarray 11
            areturn
         2: .line 451
      StackMap locals:
      StackMap stack:
            iconst_1
            newarray 11
            dup
            iconst_0
            ldc 4294967296
            ldc 4294967295
            aload 0 /* sortedValues */
            iconst_0
            iaload
            i2l
            land
            lor
            lastore
            areturn
         3: .line 453
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* hist */
        start local 1 // long[] hist
         4: .line 454
            iconst_1
            istore 2 /* sizeOnly */
        start local 2 // boolean sizeOnly
         5: .line 455
      StackMap locals: long[] int
      StackMap stack:
            iconst_m1
            istore 3 /* prevIndex */
        start local 3 // int prevIndex
         6: .line 456
            aload 0 /* sortedValues */
            iconst_0
            iaload
            iconst_m1
            ixor
            istore 4 /* prevValue */
        start local 4 // int prevValue
         7: .line 457
            iconst_0
            istore 5 /* prevCount */
        start local 5 // int prevCount
         8: .line 458
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         9: goto 25
        10: .line 460
      StackMap locals: int[] long[] int int int int int
      StackMap stack:
            iload 6 /* i */
            aload 0 /* sortedValues */
            arraylength
            if_icmpge 13
        11: .line 461
            aload 0 /* sortedValues */
            iload 6 /* i */
            iaload
            istore 7 /* thisValue */
        start local 7 // int thisValue
        12: goto 14
        end local 7 // int thisValue
        13: .line 463
      StackMap locals:
      StackMap stack:
            iload 4 /* prevValue */
            iconst_m1
            ixor
            istore 7 /* thisValue */
        start local 7 // int thisValue
        14: .line 464
      StackMap locals: int
      StackMap stack:
            iload 7 /* thisValue */
            iload 4 /* prevValue */
            if_icmpne 17
        15: .line 465
            iinc 5 /* prevCount */ 1
        16: .line 466
            goto 24
        17: .line 468
      StackMap locals:
      StackMap stack:
            iload 2 /* sizeOnly */
            ifne 21
            iload 5 /* prevCount */
            ifeq 21
        18: .line 470
            aload 1 /* hist */
            iload 3 /* prevIndex */
            iload 5 /* prevCount */
            i2l
            bipush 32
            lshl
        19: .line 471
            ldc 4294967295
            iload 4 /* prevValue */
            i2l
            land
            lor
        20: .line 470
            lastore
        21: .line 473
      StackMap locals:
      StackMap stack:
            iload 7 /* thisValue */
            istore 4 /* prevValue */
        22: .line 474
            iconst_1
            istore 5 /* prevCount */
        23: .line 475
            iinc 3 /* prevIndex */ 1
        end local 7 // int thisValue
        24: .line 458
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 6 /* i */
            aload 0 /* sortedValues */
            arraylength
            if_icmple 10
        end local 6 // int i
        26: .line 478
            iload 2 /* sizeOnly */
            ifeq 29
        27: .line 480
            iload 3 /* prevIndex */
            newarray 11
            astore 1 /* hist */
        end local 5 // int prevCount
        end local 4 // int prevValue
        end local 3 // int prevIndex
        28: .line 454
            iconst_0
            istore 2 /* sizeOnly */
            goto 5
        end local 2 // boolean sizeOnly
        29: .line 485
      StackMap locals: int[] long[]
      StackMap stack:
            aload 1 /* hist */
            areturn
        end local 1 // long[] hist
        end local 0 // int[] sortedValues
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   30     0  sortedValues  [I
            4   30     1          hist  [J
            5   29     2      sizeOnly  Z
            6   28     3     prevIndex  I
            7   28     4     prevValue  I
            8   28     5     prevCount  I
            9   26     6             i  I
           12   13     7     thisValue  I
           14   24     7     thisValue  I
    MethodParameters:
              Name  Flags
      sortedValues  

  private static int[][] regroupHistogram(int[][], int[]);
    descriptor: ([[I[I)[[I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=17, args_size=2
        start local 0 // int[][] matrix
        start local 1 // int[] groups
         0: .line 497
            lconst_0
            lstore 2 /* oldEntries */
        start local 2 // long oldEntries
         1: .line 498
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 5
         3: .line 499
      StackMap locals: long int
      StackMap stack:
            lload 2 /* oldEntries */
            aload 0 /* matrix */
            iload 4 /* i */
            aaload
            arraylength
            iconst_1
            isub
            i2l
            ladd
            lstore 2 /* oldEntries */
         4: .line 498
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 4 /* i */
            aload 0 /* matrix */
            arraylength
            if_icmplt 3
        end local 4 // int i
         6: .line 501
            lconst_0
            lstore 4 /* newEntries */
        start local 4 // long newEntries
         7: .line 502
            iconst_0
            istore 6 /* ni */
        start local 6 // int ni
         8: goto 11
         9: .line 503
      StackMap locals: int[][] int[] long long int
      StackMap stack:
            lload 4 /* newEntries */
            aload 1 /* groups */
            iload 6 /* ni */
            iaload
            i2l
            ladd
            lstore 4 /* newEntries */
        10: .line 502
            iinc 6 /* ni */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* ni */
            aload 1 /* groups */
            arraylength
            if_icmplt 9
        end local 6 // int ni
        12: .line 505
            lload 4 /* newEntries */
            lload 2 /* oldEntries */
            lcmp
            ifle 28
        13: .line 506
            aload 1 /* groups */
            arraylength
            pop
        14: .line 507
            lload 2 /* oldEntries */
            lstore 6 /* ok */
        start local 6 // long ok
        15: .line 508
            iconst_0
            istore 8 /* ni */
        start local 8 // int ni
        16: goto 26
        17: .line 509
      StackMap locals: int[][] int[] long long long int
      StackMap stack:
            lload 6 /* ok */
            aload 1 /* groups */
            iload 8 /* ni */
            iaload
            i2l
            lcmp
            ifge 24
        18: .line 510
            iload 8 /* ni */
            iconst_1
            iadd
            newarray 10
            astore 9 /* newGroups */
        start local 9 // int[] newGroups
        19: .line 511
            aload 1 /* groups */
            iconst_0
            aload 9 /* newGroups */
            iconst_0
            iload 8 /* ni */
            iconst_1
            iadd
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        20: .line 512
            aload 9 /* newGroups */
            astore 1 /* groups */
        21: .line 513
            aload 1 /* groups */
            iload 8 /* ni */
            lload 6 /* ok */
            l2i
            iastore
        22: .line 514
            lconst_0
            lstore 6 /* ok */
        23: .line 515
            goto 33
        end local 9 // int[] newGroups
        24: .line 517
      StackMap locals:
      StackMap stack:
            lload 6 /* ok */
            aload 1 /* groups */
            iload 8 /* ni */
            iaload
            i2l
            lsub
            lstore 6 /* ok */
        25: .line 508
            iinc 8 /* ni */ 1
      StackMap locals:
      StackMap stack:
        26: iload 8 /* ni */
            aload 1 /* groups */
            arraylength
            if_icmplt 17
        end local 8 // int ni
        end local 6 // long ok
        27: .line 519
            goto 33
        28: .line 520
      StackMap locals:
      StackMap stack:
            lload 2 /* oldEntries */
            lload 4 /* newEntries */
            lsub
            lstore 6 /* excess */
        start local 6 // long excess
        29: .line 521
            aload 1 /* groups */
            arraylength
            iconst_1
            iadd
            newarray 10
            astore 8 /* newGroups */
        start local 8 // int[] newGroups
        30: .line 522
            aload 1 /* groups */
            iconst_0
            aload 8 /* newGroups */
            iconst_0
            aload 1 /* groups */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        31: .line 523
            aload 8 /* newGroups */
            aload 1 /* groups */
            arraylength
            lload 6 /* excess */
            l2i
            iastore
        32: .line 524
            aload 8 /* newGroups */
            astore 1 /* groups */
        end local 8 // int[] newGroups
        end local 6 // long excess
        33: .line 526
      StackMap locals:
      StackMap stack:
            aload 1 /* groups */
            arraylength
            anewarray int[]
            astore 6 /* newMatrix */
        start local 6 // int[][] newMatrix
        34: .line 528
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        35: .line 529
            iconst_1
            istore 8 /* jMin */
        start local 8 // int jMin
        36: .line 530
            aload 0 /* matrix */
            iload 7 /* i */
            aaload
            arraylength
            istore 9 /* jMax */
        start local 9 // int jMax
        37: .line 531
            iconst_0
            istore 10 /* ni */
        start local 10 // int ni
        38: goto 59
        39: .line 532
      StackMap locals: int[][] int[] long long int[][] int int int int
      StackMap stack:
            aload 1 /* groups */
            iload 10 /* ni */
            iaload
            istore 11 /* groupLength */
        start local 11 // int groupLength
        40: .line 533
            iconst_1
            iload 11 /* groupLength */
            iadd
            newarray 10
            astore 12 /* group */
        start local 12 // int[] group
        41: .line 534
            lconst_0
            lstore 13 /* groupWeight */
        start local 13 // long groupWeight
        42: .line 535
            aload 6 /* newMatrix */
            iload 10 /* ni */
            aload 12 /* group */
            aastore
        43: .line 536
            iconst_1
            istore 15 /* njFill */
        start local 15 // int njFill
        44: .line 537
            goto 55
        45: .line 538
      StackMap locals: int[][] int[] long long int[][] int int int int int int[] long int
      StackMap stack:
            aload 12 /* group */
            arraylength
            iload 15 /* njFill */
            isub
            istore 16 /* len */
        start local 16 // int len
        46: .line 539
            goto 49
        47: .line 540
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 8 /* jMin */
        48: .line 541
            aload 0 /* matrix */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            arraylength
            istore 9 /* jMax */
        49: .line 539
      StackMap locals:
      StackMap stack:
            iload 8 /* jMin */
            iload 9 /* jMax */
            if_icmpeq 47
        50: .line 543
            iload 16 /* len */
            iload 9 /* jMax */
            iload 8 /* jMin */
            isub
            if_icmple 51
            iload 9 /* jMax */
            iload 8 /* jMin */
            isub
            istore 16 /* len */
        51: .line 544
      StackMap locals:
      StackMap stack:
            lload 13 /* groupWeight */
            aload 0 /* matrix */
            iload 7 /* i */
            aaload
            iconst_0
            iaload
            i2l
            iload 16 /* len */
            i2l
            lmul
            ladd
            lstore 13 /* groupWeight */
        52: .line 545
            aload 0 /* matrix */
            iload 7 /* i */
            aaload
            iload 9 /* jMax */
            iload 16 /* len */
            isub
            aload 12 /* group */
            iload 15 /* njFill */
            iload 16 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        53: .line 546
            iload 9 /* jMax */
            iload 16 /* len */
            isub
            istore 9 /* jMax */
        54: .line 547
            iload 15 /* njFill */
            iload 16 /* len */
            iadd
            istore 15 /* njFill */
        end local 16 // int len
        55: .line 537
      StackMap locals:
      StackMap stack:
            iload 15 /* njFill */
            aload 12 /* group */
            arraylength
            if_icmplt 45
        56: .line 549
            aload 12 /* group */
            iconst_1
            aload 12 /* group */
            arraylength
            invokestatic java.util.Arrays.sort:([III)V
        57: .line 551
            aload 12 /* group */
            iconst_0
            lload 13 /* groupWeight */
            iload 11 /* groupLength */
            iconst_2
            idiv
            i2l
            ladd
            iload 11 /* groupLength */
            i2l
            ldiv
            l2i
            iastore
        end local 15 // int njFill
        end local 13 // long groupWeight
        end local 12 // int[] group
        end local 11 // int groupLength
        58: .line 531
            iinc 10 /* ni */ 1
      StackMap locals: int[][] int[] long long int[][] int int int int
      StackMap stack:
        59: iload 10 /* ni */
            aload 1 /* groups */
            arraylength
            if_icmplt 39
        end local 10 // int ni
        60: .line 553
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 61
            iload 8 /* jMin */
            iload 9 /* jMax */
            if_icmpeq 61
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        61: .line 554
      StackMap locals:
      StackMap stack:
            getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
            ifne 62
            iload 7 /* i */
            aload 0 /* matrix */
            arraylength
            iconst_1
            isub
            if_icmpeq 62
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        62: .line 555
      StackMap locals:
      StackMap stack:
            aload 6 /* newMatrix */
            areturn
        end local 9 // int jMax
        end local 8 // int jMin
        end local 7 // int i
        end local 6 // int[][] newMatrix
        end local 4 // long newEntries
        end local 2 // long oldEntries
        end local 1 // int[] groups
        end local 0 // int[][] matrix
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   63     0       matrix  [[I
            0   63     1       groups  [I
            1   63     2   oldEntries  J
            2    6     4            i  I
            7   63     4   newEntries  J
            8   12     6           ni  I
           15   27     6           ok  J
           16   27     8           ni  I
           19   24     9    newGroups  [I
           29   33     6       excess  J
           30   33     8    newGroups  [I
           34   63     6    newMatrix  [[I
           35   63     7            i  I
           36   63     8         jMin  I
           37   63     9         jMax  I
           38   60    10           ni  I
           40   58    11  groupLength  I
           41   58    12        group  [I
           42   58    13  groupWeight  J
           44   58    15       njFill  I
           46   55    16          len  I
    MethodParameters:
        Name  Flags
      matrix  
      groups  

  public static com.sun.java.util.jar.pack.Histogram makeByteHistogram(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Lcom/sun/java/util/jar/pack/Histogram;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.io.InputStream bytes
         0: .line 560
            sipush 4096
            newarray 8
            astore 1 /* buf */
        start local 1 // byte[] buf
         1: .line 561
            sipush 256
            newarray 10
            astore 2 /* tally */
        start local 2 // int[] tally
         2: .line 562
            goto 8
        start local 3 // int nr
         3: .line 563
      StackMap locals: byte[] int[] int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 564
      StackMap locals: int
      StackMap stack:
            aload 2 /* tally */
            aload 1 /* buf */
            iload 4 /* i */
            baload
            sipush 255
            iand
            dup2
            iaload
            iconst_1
            iadd
            iastore
         6: .line 563
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            iload 3 /* nr */
            if_icmplt 5
        end local 4 // int i
        end local 3 // int nr
         8: .line 562
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            aload 1 /* buf */
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 3 /* nr */
        start local 3 // int nr
         9: ifgt 3
        end local 3 // int nr
        10: .line 568
            sipush 256
            iconst_2
            multianewarray [[I 2
            astore 3 /* matrix */
        start local 3 // int[][] matrix
        11: .line 569
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        12: goto 16
        13: .line 570
      StackMap locals: int[][] int
      StackMap stack:
            aload 3 /* matrix */
            iload 4 /* i */
            aaload
            iconst_0
            aload 2 /* tally */
            iload 4 /* i */
            iaload
            iastore
        14: .line 571
            aload 3 /* matrix */
            iload 4 /* i */
            aaload
            iconst_1
            iload 4 /* i */
            iastore
        15: .line 569
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* i */
            aload 2 /* tally */
            arraylength
            if_icmplt 13
        end local 4 // int i
        17: .line 573
            new com.sun.java.util.jar.pack.Histogram
            dup
            aload 3 /* matrix */
            invokespecial com.sun.java.util.jar.pack.Histogram.<init>:([[I)V
            areturn
        end local 3 // int[][] matrix
        end local 2 // int[] tally
        end local 1 // byte[] buf
        end local 0 // java.io.InputStream bytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0   bytes  Ljava/io/InputStream;
            1   18     1     buf  [B
            2   18     2   tally  [I
            3    8     3      nr  I
            9   10     3      nr  I
            4    8     4       i  I
           11   18     3  matrix  [[I
           12   17     4       i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      bytes  

  private static int[] sortedSlice(int[], int, int);
    descriptor: ([III)[I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // int[] valueSequence
        start local 1 // int start
        start local 2 // int end
         0: .line 579
            iload 1 /* start */
            ifne 3
            iload 2 /* end */
            aload 0 /* valueSequence */
            arraylength
            if_icmpne 3
         1: .line 580
            aload 0 /* valueSequence */
            iconst_0
            iconst_0
            invokestatic com.sun.java.util.jar.pack.Histogram.isSorted:([IIZ)Z
            ifeq 3
         2: .line 581
            aload 0 /* valueSequence */
            areturn
         3: .line 583
      StackMap locals:
      StackMap stack:
            iload 2 /* end */
            iload 1 /* start */
            isub
            newarray 10
            astore 3 /* slice */
        start local 3 // int[] slice
         4: .line 584
            aload 0 /* valueSequence */
            iload 1 /* start */
            aload 3 /* slice */
            iconst_0
            aload 3 /* slice */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 585
            aload 3 /* slice */
            invokestatic java.util.Arrays.sort:([I)V
         6: .line 586
            aload 3 /* slice */
            areturn
        end local 3 // int[] slice
        end local 2 // int end
        end local 1 // int start
        end local 0 // int[] valueSequence
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0  valueSequence  [I
            0    7     1          start  I
            0    7     2            end  I
            4    7     3          slice  [I
    MethodParameters:
               Name  Flags
      valueSequence  
      start          
      end            

  private static boolean isSorted(int[], int, boolean);
    descriptor: ([IIZ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // int[] values
        start local 1 // int from
        start local 2 // boolean strict
         0: .line 593
            iload 1 /* from */
            iconst_1
            iadd
            istore 3 /* i */
        start local 3 // int i
         1: goto 6
         2: .line 594
      StackMap locals: int
      StackMap stack:
            iload 2 /* strict */
            ifeq 3
            aload 0 /* values */
            iload 3 /* i */
            iconst_1
            isub
            iaload
            aload 0 /* values */
            iload 3 /* i */
            iaload
            if_icmplt 5
            goto 4
         3: .line 595
      StackMap locals:
      StackMap stack:
            aload 0 /* values */
            iload 3 /* i */
            iconst_1
            isub
            iaload
            aload 0 /* values */
            iload 3 /* i */
            iaload
            if_icmple 5
         4: .line 596
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         5: .line 593
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 0 /* values */
            arraylength
            if_icmplt 2
        end local 3 // int i
         7: .line 599
            iconst_1
            ireturn
        end local 2 // boolean strict
        end local 1 // int from
        end local 0 // int[] values
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  values  [I
            0    8     1    from  I
            0    8     2  strict  Z
            1    7     3       i  I
    MethodParameters:
        Name  Flags
      values  
      from    
      strict  

  private static int[] maybeSort(int[]);
    descriptor: ([I)[I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int[] values
         0: .line 605
            aload 0 /* values */
            iconst_0
            iconst_0
            invokestatic com.sun.java.util.jar.pack.Histogram.isSorted:([IIZ)Z
            ifne 3
         1: .line 606
            aload 0 /* values */
            invokevirtual int[].clone:()Ljava/lang/Object;
            checkcast int[]
            astore 0 /* values */
         2: .line 607
            aload 0 /* values */
            invokestatic java.util.Arrays.sort:([I)V
         3: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* values */
            areturn
        end local 0 // int[] values
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  values  [I
    MethodParameters:
        Name  Flags
      values  

  private boolean assertWellFormed(int[]);
    descriptor: ([I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.sun.java.util.jar.pack.Histogram this
        start local 1 // int[] valueSequence
         0: .line 660
            iconst_1
            ireturn
        end local 1 // int[] valueSequence
        end local 0 // com.sun.java.util.jar.pack.Histogram this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/sun/java/util/jar/pack/Histogram;
            0    1     1  valueSequence  [I
    MethodParameters:
               Name  Flags
      valueSequence  
}
SourceFile: "Histogram.java"
NestMembers:
  com.sun.java.util.jar.pack.Histogram$1  com.sun.java.util.jar.pack.Histogram$BitMetric
InnerClasses:
  com.sun.java.util.jar.pack.Histogram$1
  public abstract BitMetric = com.sun.java.util.jar.pack.Histogram$BitMetric of com.sun.java.util.jar.pack.Histogram