public class org.apache.lucene.spatial.prefix.HeatmapFacetCounter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.lucene.spatial.prefix.HeatmapFacetCounter
  super_class: java.lang.Object
{
  public static final int MAX_ROWS_OR_COLUMNS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, 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 41
            ldc Lorg/apache/lucene/spatial/prefix/HeatmapFacetCounter;
            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 org.apache.lucene.spatial.prefix.HeatmapFacetCounter.$assertionsDisabled:Z
         3: .line 45
            getstatic org.apache.lucene.util.ArrayUtil.MAX_ARRAY_LENGTH:I
            i2d
            invokestatic java.lang.Math.sqrt:(D)D
            d2i
            putstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.MAX_ROWS_OR_COLUMNS:I
         4: .line 47
            getstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.MAX_ROWS_OR_COLUMNS:I
            getstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.MAX_ROWS_OR_COLUMNS:I
            invokestatic java.lang.Math.multiplyExact:(II)I
            pop
         5: .line 48
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap calcFacets(org.apache.lucene.spatial.prefix.PrefixTreeStrategy, org.apache.lucene.index.IndexReaderContext, org.apache.lucene.util.Bits, org.locationtech.spatial4j.shape.Shape, int, int);
    descriptor: (Lorg/apache/lucene/spatial/prefix/PrefixTreeStrategy;Lorg/apache/lucene/index/IndexReaderContext;Lorg/apache/lucene/util/Bits;Lorg/locationtech/spatial4j/shape/Shape;II)Lorg/apache/lucene/spatial/prefix/HeatmapFacetCounter$Heatmap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=17, locals=46, args_size=6
        start local 0 // org.apache.lucene.spatial.prefix.PrefixTreeStrategy strategy
        start local 1 // org.apache.lucene.index.IndexReaderContext context
        start local 2 // org.apache.lucene.util.Bits topAcceptDocs
        start local 3 // org.locationtech.spatial4j.shape.Shape inputShape
        start local 4 // int facetLevel
        start local 5 // int maxCells
         0: .line 93
            iload 5 /* maxCells */
            getstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.MAX_ROWS_OR_COLUMNS:I
            getstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.MAX_ROWS_OR_COLUMNS:I
            imul
            if_icmple 2
         1: .line 94
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "maxCells ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* maxCells */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") should be <= "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.MAX_ROWS_OR_COLUMNS:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 96
      StackMap locals:
      StackMap stack:
            aload 3 /* inputShape */
            ifnonnull 4
         3: .line 97
            aload 0 /* strategy */
            invokevirtual org.apache.lucene.spatial.prefix.PrefixTreeStrategy.getSpatialContext:()Lorg/locationtech/spatial4j/context/SpatialContext;
            invokevirtual org.locationtech.spatial4j.context.SpatialContext.getWorldBounds:()Lorg/locationtech/spatial4j/shape/Rectangle;
            astore 3 /* inputShape */
         4: .line 99
      StackMap locals:
      StackMap stack:
            aload 3 /* inputShape */
            invokeinterface org.locationtech.spatial4j.shape.Shape.getBoundingBox:()Lorg/locationtech/spatial4j/shape/Rectangle;
            astore 6 /* inputRect */
        start local 6 // org.locationtech.spatial4j.shape.Rectangle inputRect
         5: .line 101
            aload 0 /* strategy */
            invokevirtual org.apache.lucene.spatial.prefix.PrefixTreeStrategy.getGrid:()Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            astore 7 /* grid */
        start local 7 // org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree grid
         6: .line 102
            aload 7 /* grid */
            invokevirtual org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.getSpatialContext:()Lorg/locationtech/spatial4j/context/SpatialContext;
            astore 8 /* ctx */
        start local 8 // org.locationtech.spatial4j.context.SpatialContext ctx
         7: .line 103
            aload 8 /* ctx */
            aload 6 /* inputRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            aload 6 /* inputRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinY:()D
            invokevirtual org.locationtech.spatial4j.context.SpatialContext.makePoint:(DD)Lorg/locationtech/spatial4j/shape/Point;
            astore 9 /* cornerPt */
        start local 9 // org.locationtech.spatial4j.shape.Point cornerPt
         8: .line 104
            aload 7 /* grid */
            aload 9 /* cornerPt */
            iload 4 /* facetLevel */
            invokevirtual org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.getTreeCellIterator:(Lorg/locationtech/spatial4j/shape/Shape;I)Lorg/apache/lucene/spatial/prefix/tree/CellIterator;
            astore 10 /* cellIterator */
        start local 10 // org.apache.lucene.spatial.prefix.tree.CellIterator cellIterator
         9: .line 105
            aconst_null
            astore 11 /* cornerCell */
        start local 11 // org.apache.lucene.spatial.prefix.tree.Cell cornerCell
        10: .line 106
            goto 12
        11: .line 107
      StackMap locals: org.apache.lucene.spatial.prefix.PrefixTreeStrategy org.apache.lucene.index.IndexReaderContext org.apache.lucene.util.Bits org.locationtech.spatial4j.shape.Shape int int org.locationtech.spatial4j.shape.Rectangle org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree org.locationtech.spatial4j.context.SpatialContext org.locationtech.spatial4j.shape.Point org.apache.lucene.spatial.prefix.tree.CellIterator org.apache.lucene.spatial.prefix.tree.Cell
      StackMap stack:
            aload 10 /* cellIterator */
            invokevirtual org.apache.lucene.spatial.prefix.tree.CellIterator.next:()Lorg/apache/lucene/spatial/prefix/tree/Cell;
            astore 11 /* cornerCell */
        12: .line 106
      StackMap locals:
      StackMap stack:
            aload 10 /* cellIterator */
            invokevirtual org.apache.lucene.spatial.prefix.tree.CellIterator.hasNext:()Z
            ifne 11
        13: .line 109
            getstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.$assertionsDisabled:Z
            ifne 15
            aload 11 /* cornerCell */
            ifnull 14
            aload 11 /* cornerCell */
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.getLevel:()I
            iload 4 /* facetLevel */
            if_icmpeq 15
      StackMap locals:
      StackMap stack:
        14: new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cell not at target level: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* cornerCell */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        15: .line 110
      StackMap locals:
      StackMap stack:
            aload 11 /* cornerCell */
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.getShape:()Lorg/locationtech/spatial4j/shape/Shape;
            checkcast org.locationtech.spatial4j.shape.Rectangle
            astore 12 /* cornerRect */
        start local 12 // org.locationtech.spatial4j.shape.Rectangle cornerRect
        16: .line 111
            getstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.$assertionsDisabled:Z
            ifne 17
            aload 12 /* cornerRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.hasArea:()Z
            ifne 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 113
      StackMap locals: org.locationtech.spatial4j.shape.Rectangle
      StackMap stack:
            aload 12 /* cornerRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            dstore 13 /* heatMinX */
        start local 13 // double heatMinX
        18: .line 114
            aload 12 /* cornerRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getWidth:()D
            dstore 15 /* cellWidth */
        start local 15 // double cellWidth
        19: .line 115
            aload 8 /* ctx */
            invokevirtual org.locationtech.spatial4j.context.SpatialContext.getWorldBounds:()Lorg/locationtech/spatial4j/shape/Rectangle;
            astore 17 /* worldRect */
        start local 17 // org.locationtech.spatial4j.shape.Rectangle worldRect
        20: .line 116
            dload 15 /* cellWidth */
            dload 13 /* heatMinX */
            aload 6 /* inputRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getWidth:()D
            aload 6 /* inputRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            aload 17 /* worldRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getWidth:()D
            invokestatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.calcRowsOrCols:(DDDDD)I
            istore 18 /* columns */
        start local 18 // int columns
        21: .line 117
            aload 12 /* cornerRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinY:()D
            dstore 19 /* heatMinY */
        start local 19 // double heatMinY
        22: .line 118
            aload 12 /* cornerRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getHeight:()D
            dstore 21 /* cellHeight */
        start local 21 // double cellHeight
        23: .line 119
            dload 21 /* cellHeight */
            dload 19 /* heatMinY */
            aload 6 /* inputRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getHeight:()D
            aload 6 /* inputRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinY:()D
            aload 17 /* worldRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getHeight:()D
            invokestatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.calcRowsOrCols:(DDDDD)I
            istore 23 /* rows */
        start local 23 // int rows
        24: .line 120
            getstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.$assertionsDisabled:Z
            ifne 26
            iload 23 /* rows */
            ifle 25
            iload 18 /* columns */
            ifgt 26
      StackMap locals: org.apache.lucene.spatial.prefix.PrefixTreeStrategy org.apache.lucene.index.IndexReaderContext org.apache.lucene.util.Bits org.locationtech.spatial4j.shape.Shape int int org.locationtech.spatial4j.shape.Rectangle org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree org.locationtech.spatial4j.context.SpatialContext org.locationtech.spatial4j.shape.Point org.apache.lucene.spatial.prefix.tree.CellIterator org.apache.lucene.spatial.prefix.tree.Cell org.locationtech.spatial4j.shape.Rectangle double double org.locationtech.spatial4j.shape.Rectangle int double double int
      StackMap stack:
        25: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        26: .line 121
      StackMap locals:
      StackMap stack:
            iload 18 /* columns */
            getstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.MAX_ROWS_OR_COLUMNS:I
            if_icmpgt 27
            iload 23 /* rows */
            getstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.MAX_ROWS_OR_COLUMNS:I
            if_icmpgt 27
            iload 18 /* columns */
            iload 23 /* rows */
            imul
            iload 5 /* maxCells */
            if_icmple 30
        27: .line 122
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        28: .line 123
            new java.lang.StringBuilder
            dup
            ldc "Too many cells ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 18 /* columns */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " x "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 23 /* rows */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") for level "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* facetLevel */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " shape "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* inputRect */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 122
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 127
      StackMap locals:
      StackMap stack:
            dload 15 /* cellWidth */
            ldc 2.0
            ddiv
            dstore 24 /* halfCellWidth */
        start local 24 // double halfCellWidth
        31: .line 129
            iload 18 /* columns */
            i2d
            dload 15 /* cellWidth */
            dmul
            dload 24 /* halfCellWidth */
            dadd
            aload 17 /* worldRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getWidth:()D
            dcmpl
            ifle 33
        32: .line 130
            aload 17 /* worldRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            dstore 13 /* heatMinX */
        33: .line 132
      StackMap locals: double
      StackMap stack:
            dload 13 /* heatMinX */
            iload 18 /* columns */
            i2d
            dload 15 /* cellWidth */
            dmul
            dadd
            dstore 26 /* heatMaxX */
        start local 26 // double heatMaxX
        34: .line 133
            dload 26 /* heatMaxX */
            aload 17 /* worldRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            dsub
            invokestatic java.lang.Math.abs:(D)D
            dload 24 /* halfCellWidth */
            dcmpg
            ifge 37
        35: .line 134
            aload 17 /* worldRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            dstore 26 /* heatMaxX */
        36: .line 135
            goto 39
      StackMap locals: double
      StackMap stack:
        37: dload 26 /* heatMaxX */
            aload 17 /* worldRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            dcmpl
            ifle 39
        38: .line 136
            dload 26 /* heatMaxX */
            aload 17 /* worldRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            dsub
            aload 17 /* worldRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            dadd
            dstore 26 /* heatMaxX */
        39: .line 138
      StackMap locals:
      StackMap stack:
            dload 21 /* cellHeight */
            ldc 2.0
            ddiv
            dstore 28 /* halfCellHeight */
        start local 28 // double halfCellHeight
        40: .line 139
            dload 19 /* heatMinY */
            iload 23 /* rows */
            i2d
            dload 21 /* cellHeight */
            dmul
            dadd
            dstore 30 /* heatMaxY */
        start local 30 // double heatMaxY
        41: .line 140
            dload 30 /* heatMaxY */
            aload 17 /* worldRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxY:()D
            dsub
            invokestatic java.lang.Math.abs:(D)D
            dload 28 /* halfCellHeight */
            dcmpg
            ifge 43
        42: .line 141
            aload 17 /* worldRect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxY:()D
            dstore 30 /* heatMaxY */
        43: .line 144
      StackMap locals: double double
      StackMap stack:
            new org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap
            dup
            iload 18 /* columns */
            iload 23 /* rows */
            aload 8 /* ctx */
            dload 13 /* heatMinX */
            dload 26 /* heatMaxX */
            dload 19 /* heatMinY */
            dload 30 /* heatMaxY */
            invokevirtual org.locationtech.spatial4j.context.SpatialContext.makeRectangle:(DDDD)Lorg/locationtech/spatial4j/shape/Rectangle;
            invokespecial org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap.<init>:(IILorg/locationtech/spatial4j/shape/Rectangle;)V
            astore 32 /* heatmap */
        start local 32 // org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap heatmap
        44: .line 145
            aload 2 /* topAcceptDocs */
            instanceof org.apache.lucene.util.Bits$MatchNoBits
            ifeq 46
        45: .line 146
            aload 32 /* heatmap */
            areturn
        46: .line 152
      StackMap locals: org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap
      StackMap stack:
            iconst_1
            newarray 10
            astore 33 /* allCellsAncestorCount */
        start local 33 // int[] allCellsAncestorCount
        47: .line 154
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 34 /* ancestors */
        start local 34 // java.util.Map ancestors
        48: .line 157
            aload 0 /* strategy */
            aload 1 /* context */
            aload 2 /* topAcceptDocs */
            aload 3 /* inputShape */
            iload 4 /* facetLevel */
        49: .line 158
            new org.apache.lucene.spatial.prefix.HeatmapFacetCounter$1
            dup
            aload 32 /* heatmap */
            iload 4 /* facetLevel */
            dload 15 /* cellWidth */
            dload 19 /* heatMinY */
            dload 21 /* cellHeight */
            aload 33 /* allCellsAncestorCount */
            aload 34 /* ancestors */
            invokespecial org.apache.lucene.spatial.prefix.HeatmapFacetCounter$1.<init>:(Lorg/apache/lucene/spatial/prefix/HeatmapFacetCounter$Heatmap;IDDD[ILjava/util/Map;)V
        50: .line 157
            invokestatic org.apache.lucene.spatial.prefix.PrefixTreeFacetCounter.compute:(Lorg/apache/lucene/spatial/prefix/PrefixTreeStrategy;Lorg/apache/lucene/index/IndexReaderContext;Lorg/apache/lucene/util/Bits;Lorg/locationtech/spatial4j/shape/Shape;ILorg/apache/lucene/spatial/prefix/PrefixTreeFacetCounter$FacetVisitor;)V
        51: .line 196
            aload 33 /* allCellsAncestorCount */
            iconst_0
            iaload
            ifle 57
        52: .line 197
            iconst_0
            istore 35 /* i */
        start local 35 // int i
        53: goto 56
        54: .line 198
      StackMap locals: int[] java.util.Map int
      StackMap stack:
            aload 32 /* heatmap */
            getfield org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap.counts:[I
            iload 35 /* i */
            dup2
            iaload
            aload 33 /* allCellsAncestorCount */
            iconst_0
            iaload
            iadd
            iastore
        55: .line 197
            iinc 35 /* i */ 1
      StackMap locals:
      StackMap stack:
        56: iload 35 /* i */
            aload 32 /* heatmap */
            getfield org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap.counts:[I
            arraylength
            if_icmplt 54
        end local 35 // int i
        57: .line 208
      StackMap locals:
      StackMap stack:
            iconst_2
            newarray 10
            astore 35 /* pair */
        start local 35 // int[] pair
        58: .line 209
            aload 34 /* ancestors */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 37
            goto 83
      StackMap locals: org.apache.lucene.spatial.prefix.PrefixTreeStrategy org.apache.lucene.index.IndexReaderContext org.apache.lucene.util.Bits org.locationtech.spatial4j.shape.Shape int int org.locationtech.spatial4j.shape.Rectangle org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree org.locationtech.spatial4j.context.SpatialContext org.locationtech.spatial4j.shape.Point org.apache.lucene.spatial.prefix.tree.CellIterator org.apache.lucene.spatial.prefix.tree.Cell org.locationtech.spatial4j.shape.Rectangle double double org.locationtech.spatial4j.shape.Rectangle int double double int double double double double org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap int[] java.util.Map int[] top java.util.Iterator
      StackMap stack:
        59: aload 37
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 36 /* entry */
        start local 36 // java.util.Map$Entry entry
        60: .line 210
            aload 36 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.locationtech.spatial4j.shape.Rectangle
            astore 38 /* rect */
        start local 38 // org.locationtech.spatial4j.shape.Rectangle rect
        61: .line 211
            aload 36 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 39 /* count */
        start local 39 // int count
        62: .line 214
            dload 19 /* heatMinY */
            dload 30 /* heatMaxY */
            dload 21 /* cellHeight */
            iload 23 /* rows */
            aload 38 /* rect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinY:()D
            aload 38 /* rect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxY:()D
            aload 35 /* pair */
            invokestatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.intersectInterval:(DDDIDD[I)V
        63: .line 215
            aload 35 /* pair */
            iconst_0
            iaload
            istore 40 /* startRow */
        start local 40 // int startRow
        64: .line 216
            aload 35 /* pair */
            iconst_1
            iaload
            istore 41 /* endRow */
        start local 41 // int endRow
        65: .line 218
            aload 32 /* heatmap */
            getfield org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap.region:Lorg/locationtech/spatial4j/shape/Rectangle;
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getCrossesDateLine:()Z
            ifne 71
        66: .line 219
            dload 13 /* heatMinX */
            dload 26 /* heatMaxX */
            dload 15 /* cellWidth */
            iload 18 /* columns */
            aload 38 /* rect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            aload 38 /* rect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            aload 35 /* pair */
            invokestatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.intersectInterval:(DDDIDD[I)V
        67: .line 220
            aload 35 /* pair */
            iconst_0
            iaload
            istore 42 /* startCol */
        start local 42 // int startCol
        68: .line 221
            aload 35 /* pair */
            iconst_1
            iaload
            istore 43 /* endCol */
        start local 43 // int endCol
        69: .line 222
            aload 32 /* heatmap */
            iload 42 /* startCol */
            iload 43 /* endCol */
            iload 40 /* startRow */
            iload 41 /* endRow */
            iload 39 /* count */
            invokestatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.incrementRange:(Lorg/apache/lucene/spatial/prefix/HeatmapFacetCounter$Heatmap;IIIII)V
        end local 43 // int endCol
        end local 42 // int startCol
        70: .line 224
            goto 83
        71: .line 226
      StackMap locals: org.apache.lucene.spatial.prefix.PrefixTreeStrategy org.apache.lucene.index.IndexReaderContext org.apache.lucene.util.Bits org.locationtech.spatial4j.shape.Shape int int org.locationtech.spatial4j.shape.Rectangle org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree org.locationtech.spatial4j.context.SpatialContext org.locationtech.spatial4j.shape.Point org.apache.lucene.spatial.prefix.tree.CellIterator org.apache.lucene.spatial.prefix.tree.Cell org.locationtech.spatial4j.shape.Rectangle double double org.locationtech.spatial4j.shape.Rectangle int double double int double double double double org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap int[] java.util.Map int[] java.util.Map$Entry java.util.Iterator org.locationtech.spatial4j.shape.Rectangle int int int
      StackMap stack:
            ldc 180.0
            dload 13 /* heatMinX */
            dsub
            dload 15 /* cellWidth */
            ddiv
            invokestatic java.lang.Math.round:(D)J
            l2i
            istore 42 /* leftColumns */
        start local 42 // int leftColumns
        72: .line 227
            aload 32 /* heatmap */
            getfield org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap.columns:I
            iload 42 /* leftColumns */
            isub
            istore 43 /* rightColumns */
        start local 43 // int rightColumns
        73: .line 229
            aload 38 /* rect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            dload 13 /* heatMinX */
            dcmpl
            ifle 78
        74: .line 230
            dload 13 /* heatMinX */
            ldc 180.0
            dload 15 /* cellWidth */
            iload 42 /* leftColumns */
            aload 38 /* rect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            aload 38 /* rect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            aload 35 /* pair */
            invokestatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.intersectInterval:(DDDIDD[I)V
        75: .line 231
            aload 35 /* pair */
            iconst_0
            iaload
            istore 44 /* startCol */
        start local 44 // int startCol
        76: .line 232
            aload 35 /* pair */
            iconst_1
            iaload
            istore 45 /* endCol */
        start local 45 // int endCol
        77: .line 233
            aload 32 /* heatmap */
            iload 44 /* startCol */
            iload 45 /* endCol */
            iload 40 /* startRow */
            iload 41 /* endRow */
            iload 39 /* count */
            invokestatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.incrementRange:(Lorg/apache/lucene/spatial/prefix/HeatmapFacetCounter$Heatmap;IIIII)V
        end local 45 // int endCol
        end local 44 // int startCol
        78: .line 236
      StackMap locals: int int
      StackMap stack:
            aload 38 /* rect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            dload 26 /* heatMaxX */
            dcmpg
            ifge 83
        79: .line 237
            ldc -180.0
            dload 26 /* heatMaxX */
            dload 15 /* cellWidth */
            iload 43 /* rightColumns */
            aload 38 /* rect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            aload 38 /* rect */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            aload 35 /* pair */
            invokestatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.intersectInterval:(DDDIDD[I)V
        80: .line 238
            aload 35 /* pair */
            iconst_0
            iaload
            iload 42 /* leftColumns */
            iadd
            istore 44 /* startCol */
        start local 44 // int startCol
        81: .line 239
            aload 35 /* pair */
            iconst_1
            iaload
            iload 42 /* leftColumns */
            iadd
            istore 45 /* endCol */
        start local 45 // int endCol
        82: .line 240
            aload 32 /* heatmap */
            iload 44 /* startCol */
            iload 45 /* endCol */
            iload 40 /* startRow */
            iload 41 /* endRow */
            iload 39 /* count */
            invokestatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.incrementRange:(Lorg/apache/lucene/spatial/prefix/HeatmapFacetCounter$Heatmap;IIIII)V
        end local 45 // int endCol
        end local 44 // int startCol
        end local 43 // int rightColumns
        end local 42 // int leftColumns
        end local 41 // int endRow
        end local 40 // int startRow
        end local 39 // int count
        end local 38 // org.locationtech.spatial4j.shape.Rectangle rect
        end local 36 // java.util.Map$Entry entry
        83: .line 209
      StackMap locals: org.apache.lucene.spatial.prefix.PrefixTreeStrategy org.apache.lucene.index.IndexReaderContext org.apache.lucene.util.Bits org.locationtech.spatial4j.shape.Shape int int org.locationtech.spatial4j.shape.Rectangle org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree org.locationtech.spatial4j.context.SpatialContext org.locationtech.spatial4j.shape.Point org.apache.lucene.spatial.prefix.tree.CellIterator org.apache.lucene.spatial.prefix.tree.Cell org.locationtech.spatial4j.shape.Rectangle double double org.locationtech.spatial4j.shape.Rectangle int double double int double double double double org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap int[] java.util.Map int[] top java.util.Iterator
      StackMap stack:
            aload 37
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 59
        84: .line 245
            aload 32 /* heatmap */
            areturn
        end local 35 // int[] pair
        end local 34 // java.util.Map ancestors
        end local 33 // int[] allCellsAncestorCount
        end local 32 // org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap heatmap
        end local 30 // double heatMaxY
        end local 28 // double halfCellHeight
        end local 26 // double heatMaxX
        end local 24 // double halfCellWidth
        end local 23 // int rows
        end local 21 // double cellHeight
        end local 19 // double heatMinY
        end local 18 // int columns
        end local 17 // org.locationtech.spatial4j.shape.Rectangle worldRect
        end local 15 // double cellWidth
        end local 13 // double heatMinX
        end local 12 // org.locationtech.spatial4j.shape.Rectangle cornerRect
        end local 11 // org.apache.lucene.spatial.prefix.tree.Cell cornerCell
        end local 10 // org.apache.lucene.spatial.prefix.tree.CellIterator cellIterator
        end local 9 // org.locationtech.spatial4j.shape.Point cornerPt
        end local 8 // org.locationtech.spatial4j.context.SpatialContext ctx
        end local 7 // org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree grid
        end local 6 // org.locationtech.spatial4j.shape.Rectangle inputRect
        end local 5 // int maxCells
        end local 4 // int facetLevel
        end local 3 // org.locationtech.spatial4j.shape.Shape inputShape
        end local 2 // org.apache.lucene.util.Bits topAcceptDocs
        end local 1 // org.apache.lucene.index.IndexReaderContext context
        end local 0 // org.apache.lucene.spatial.prefix.PrefixTreeStrategy strategy
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   85     0               strategy  Lorg/apache/lucene/spatial/prefix/PrefixTreeStrategy;
            0   85     1                context  Lorg/apache/lucene/index/IndexReaderContext;
            0   85     2          topAcceptDocs  Lorg/apache/lucene/util/Bits;
            0   85     3             inputShape  Lorg/locationtech/spatial4j/shape/Shape;
            0   85     4             facetLevel  I
            0   85     5               maxCells  I
            5   85     6              inputRect  Lorg/locationtech/spatial4j/shape/Rectangle;
            6   85     7                   grid  Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            7   85     8                    ctx  Lorg/locationtech/spatial4j/context/SpatialContext;
            8   85     9               cornerPt  Lorg/locationtech/spatial4j/shape/Point;
            9   85    10           cellIterator  Lorg/apache/lucene/spatial/prefix/tree/CellIterator;
           10   85    11             cornerCell  Lorg/apache/lucene/spatial/prefix/tree/Cell;
           16   85    12             cornerRect  Lorg/locationtech/spatial4j/shape/Rectangle;
           18   85    13               heatMinX  D
           19   85    15              cellWidth  D
           20   85    17              worldRect  Lorg/locationtech/spatial4j/shape/Rectangle;
           21   85    18                columns  I
           22   85    19               heatMinY  D
           23   85    21             cellHeight  D
           24   85    23                   rows  I
           31   85    24          halfCellWidth  D
           34   85    26               heatMaxX  D
           40   85    28         halfCellHeight  D
           41   85    30               heatMaxY  D
           44   85    32                heatmap  Lorg/apache/lucene/spatial/prefix/HeatmapFacetCounter$Heatmap;
           47   85    33  allCellsAncestorCount  [I
           48   85    34              ancestors  Ljava/util/Map<Lorg/locationtech/spatial4j/shape/Rectangle;Ljava/lang/Integer;>;
           53   57    35                      i  I
           58   85    35                   pair  [I
           60   83    36                  entry  Ljava/util/Map$Entry<Lorg/locationtech/spatial4j/shape/Rectangle;Ljava/lang/Integer;>;
           61   83    38                   rect  Lorg/locationtech/spatial4j/shape/Rectangle;
           62   83    39                  count  I
           64   83    40               startRow  I
           65   83    41                 endRow  I
           68   70    42               startCol  I
           69   70    43                 endCol  I
           72   83    42            leftColumns  I
           73   83    43           rightColumns  I
           76   78    44               startCol  I
           77   78    45                 endCol  I
           81   83    44               startCol  I
           82   83    45                 endCol  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      strategy       
      context        
      topAcceptDocs  
      inputShape     
      facetLevel     final
      maxCells       

  private static void intersectInterval(double, double, double, int, double, double, int[]);
    descriptor: (DDDIDD[I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=7
        start local 0 // double heatMin
        start local 2 // double heatMax
        start local 4 // double heatCellLen
        start local 6 // int numCells
        start local 7 // double cellMin
        start local 9 // double cellMax
        start local 11 // int[] out
         0: .line 251
            getstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.$assertionsDisabled:Z
            ifne 2
            dload 0 /* heatMin */
            dload 2 /* heatMax */
            dcmpg
            ifge 1
            dload 7 /* cellMin */
            dload 9 /* cellMax */
            dcmpg
            iflt 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 253
      StackMap locals:
      StackMap stack:
            dload 0 /* heatMin */
            dload 7 /* cellMin */
            dcmpl
            iflt 5
         3: .line 254
            aload 11 /* out */
            iconst_0
            iconst_0
            iastore
         4: .line 255
            goto 6
         5: .line 256
      StackMap locals:
      StackMap stack:
            aload 11 /* out */
            iconst_0
            dload 7 /* cellMin */
            dload 0 /* heatMin */
            dsub
            dload 4 /* heatCellLen */
            ddiv
            invokestatic java.lang.Math.round:(D)J
            l2i
            iastore
         6: .line 258
      StackMap locals:
      StackMap stack:
            dload 2 /* heatMax */
            dload 9 /* cellMax */
            dcmpg
            ifgt 9
         7: .line 259
            aload 11 /* out */
            iconst_1
            iload 6 /* numCells */
            iconst_1
            isub
            iastore
         8: .line 260
            goto 10
         9: .line 261
      StackMap locals:
      StackMap stack:
            aload 11 /* out */
            iconst_1
            dload 9 /* cellMax */
            dload 0 /* heatMin */
            dsub
            dload 4 /* heatCellLen */
            ddiv
            invokestatic java.lang.Math.round:(D)J
            l2i
            iconst_1
            isub
            iastore
        10: .line 263
      StackMap locals:
      StackMap stack:
            return
        end local 11 // int[] out
        end local 9 // double cellMax
        end local 7 // double cellMin
        end local 6 // int numCells
        end local 4 // double heatCellLen
        end local 2 // double heatMax
        end local 0 // double heatMin
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0      heatMin  D
            0   11     2      heatMax  D
            0   11     4  heatCellLen  D
            0   11     6     numCells  I
            0   11     7      cellMin  D
            0   11     9      cellMax  D
            0   11    11          out  [I
    MethodParameters:
             Name  Flags
      heatMin      
      heatMax      
      heatCellLen  
      numCells     
      cellMin      
      cellMax      
      out          

  private static void incrementRange(org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap, int, int, int, int, int);
    descriptor: (Lorg/apache/lucene/spatial/prefix/HeatmapFacetCounter$Heatmap;IIIII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=6
        start local 0 // org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap heatmap
        start local 1 // int startColumn
        start local 2 // int endColumn
        start local 3 // int startRow
        start local 4 // int endRow
        start local 5 // int count
         0: .line 268
            iload 1 /* startColumn */
            ifge 3
         1: .line 269
            iload 2 /* endColumn */
            iload 1 /* startColumn */
            iadd
            istore 2 /* endColumn */
         2: .line 270
            iconst_0
            istore 1 /* startColumn */
         3: .line 272
      StackMap locals:
      StackMap stack:
            aload 0 /* heatmap */
            getfield org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap.columns:I
            iconst_1
            isub
            iload 2 /* endColumn */
            invokestatic java.lang.Math.min:(II)I
            istore 2 /* endColumn */
         4: .line 274
            iload 3 /* startRow */
            ifge 7
         5: .line 275
            iload 4 /* endRow */
            iload 3 /* startRow */
            iadd
            istore 4 /* endRow */
         6: .line 276
            iconst_0
            istore 3 /* startRow */
         7: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* heatmap */
            getfield org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap.rows:I
            iconst_1
            isub
            iload 4 /* endRow */
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* endRow */
         8: .line 280
            iload 3 /* startRow */
            iload 4 /* endRow */
            if_icmple 10
         9: .line 281
            return
        10: .line 283
      StackMap locals:
      StackMap stack:
            iload 1 /* startColumn */
            istore 6 /* c */
        start local 6 // int c
        11: goto 19
        12: .line 284
      StackMap locals: int
      StackMap stack:
            iload 6 /* c */
            aload 0 /* heatmap */
            getfield org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap.rows:I
            imul
            istore 7 /* cBase */
        start local 7 // int cBase
        13: .line 285
            iload 3 /* startRow */
            istore 8 /* r */
        start local 8 // int r
        14: goto 17
        15: .line 286
      StackMap locals: int int
      StackMap stack:
            aload 0 /* heatmap */
            getfield org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap.counts:[I
            iload 7 /* cBase */
            iload 8 /* r */
            iadd
            dup2
            iaload
            iload 5 /* count */
            iadd
            iastore
        16: .line 285
            iinc 8 /* r */ 1
      StackMap locals:
      StackMap stack:
        17: iload 8 /* r */
            iload 4 /* endRow */
            if_icmple 15
        end local 8 // int r
        end local 7 // int cBase
        18: .line 283
            iinc 6 /* c */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* c */
            iload 2 /* endColumn */
            if_icmple 12
        end local 6 // int c
        20: .line 289
            return
        end local 5 // int count
        end local 4 // int endRow
        end local 3 // int startRow
        end local 2 // int endColumn
        end local 1 // int startColumn
        end local 0 // org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap heatmap
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0      heatmap  Lorg/apache/lucene/spatial/prefix/HeatmapFacetCounter$Heatmap;
            0   21     1  startColumn  I
            0   21     2    endColumn  I
            0   21     3     startRow  I
            0   21     4       endRow  I
            0   21     5        count  I
           11   20     6            c  I
           13   18     7        cBase  I
           14   18     8            r  I
    MethodParameters:
             Name  Flags
      heatmap      
      startColumn  
      endColumn    
      startRow     
      endRow       
      count        

  private static int calcRowsOrCols(double, double, double, double, double);
    descriptor: (DDDDD)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=16, args_size=5
        start local 0 // double cellRange
        start local 2 // double cellMin
        start local 4 // double requestRange
        start local 6 // double requestMin
        start local 8 // double worldRange
         0: .line 294
            getstatic org.apache.lucene.spatial.prefix.HeatmapFacetCounter.$assertionsDisabled:Z
            ifne 1
            dload 6 /* requestMin */
            dload 2 /* cellMin */
            dcmpl
            ifge 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 296
      StackMap locals:
      StackMap stack:
            dload 4 /* requestRange */
            dload 6 /* requestMin */
            dload 2 /* cellMin */
            dsub
            dadd
            dstore 10 /* range */
        start local 10 // double range
         2: .line 297
            dload 10 /* range */
            dconst_0
            dcmpl
            ifne 4
         3: .line 298
            iconst_1
            ireturn
         4: .line 300
      StackMap locals: double
      StackMap stack:
            dload 10 /* range */
            dload 0 /* cellRange */
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            dstore 12 /* intervals */
        start local 12 // double intervals
         5: .line 301
            dload 12 /* intervals */
            ldc 2.147483647E9
            dcmpl
            ifle 7
         6: .line 302
            ldc 2147483647
            ireturn
         7: .line 305
      StackMap locals: double
      StackMap stack:
            dload 8 /* worldRange */
            dload 0 /* cellRange */
            ddiv
            invokestatic java.lang.Math.round:(D)J
            lstore 14 /* intervalsMax */
        start local 14 // long intervalsMax
         8: .line 306
            lload 14 /* intervalsMax */
            ldc 2147483647
            lcmp
            ifle 10
         9: .line 308
            dload 12 /* intervals */
            d2i
            ireturn
        10: .line 310
      StackMap locals: long
      StackMap stack:
            lload 14 /* intervalsMax */
            l2i
            dload 12 /* intervals */
            d2i
            invokestatic java.lang.Math.min:(II)I
            ireturn
        end local 14 // long intervalsMax
        end local 12 // double intervals
        end local 10 // double range
        end local 8 // double worldRange
        end local 6 // double requestMin
        end local 4 // double requestRange
        end local 2 // double cellMin
        end local 0 // double cellRange
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0     cellRange  D
            0   11     2       cellMin  D
            0   11     4  requestRange  D
            0   11     6    requestMin  D
            0   11     8    worldRange  D
            2   11    10         range  D
            5   11    12     intervals  D
            8   11    14  intervalsMax  J
    MethodParameters:
              Name  Flags
      cellRange     
      cellMin       
      requestRange  
      requestMin    
      worldRange    

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial.prefix.HeatmapFacetCounter this
         0: .line 313
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 314
            return
        end local 0 // org.apache.lucene.spatial.prefix.HeatmapFacetCounter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/lucene/spatial/prefix/HeatmapFacetCounter;
}
SourceFile: "HeatmapFacetCounter.java"
NestMembers:
  org.apache.lucene.spatial.prefix.HeatmapFacetCounter$1  org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  org.apache.lucene.spatial.prefix.HeatmapFacetCounter$1
  public Heatmap = org.apache.lucene.spatial.prefix.HeatmapFacetCounter$Heatmap of org.apache.lucene.spatial.prefix.HeatmapFacetCounter
  public abstract FacetVisitor = org.apache.lucene.spatial.prefix.PrefixTreeFacetCounter$FacetVisitor of org.apache.lucene.spatial.prefix.PrefixTreeFacetCounter
  public MatchNoBits = org.apache.lucene.util.Bits$MatchNoBits of org.apache.lucene.util.Bits