class com.google.common.collect.MinMaxPriorityQueue$Heap
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.google.common.collect.MinMaxPriorityQueue$Heap
  super_class: java.lang.Object
{
  final com.google.common.collect.Ordering<E> ordering;
    descriptor: Lcom/google/common/collect/Ordering;
    flags: (0x0010) ACC_FINAL
    Signature: Lcom/google/common/collect/Ordering<TE;>;

  com.google.common.collect.MinMaxPriorityQueue<E>.Heap otherHeap;
    descriptor: Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
    flags: (0x0000) 
    Signature: Lcom/google/common/collect/MinMaxPriorityQueue<TE;>.Heap;
    RuntimeInvisibleAnnotations: 
      com.google.j2objc.annotations.Weak()
    RuntimeVisibleTypeAnnotations: 
      FIELD, location=[INNER_TYPE]
        org.checkerframework.checker.nullness.qual.MonotonicNonNull()

  final com.google.common.collect.MinMaxPriorityQueue this$0;
    descriptor: Lcom/google/common/collect/MinMaxPriorityQueue;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.google.common.collect.Ordering<E>);
    descriptor: (Lcom/google/common/collect/MinMaxPriorityQueue;Lcom/google/common/collect/Ordering;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 2 // com.google.common.collect.Ordering ordering
         0: .line 510
            aload 0 /* this */
            aload 1
            putfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 511
            aload 0 /* this */
            aload 2 /* ordering */
            putfield com.google.common.collect.MinMaxPriorityQueue$Heap.ordering:Lcom/google/common/collect/Ordering;
         2: .line 512
            return
        end local 2 // com.google.common.collect.Ordering ordering
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0    3     2  ordering  Lcom/google/common/collect/Ordering<TE;>;
    Signature: (Lcom/google/common/collect/Ordering<TE;>;)V
    MethodParameters:
          Name  Flags
      this$0    final
      ordering  

  int compareElements(int, int);
    descriptor: (II)I
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int a
        start local 2 // int b
         0: .line 515
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.ordering:Lcom/google/common/collect/Ordering;
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            iload 1 /* a */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            iload 2 /* b */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
            invokevirtual com.google.common.collect.Ordering.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ireturn
        end local 2 // int b
        end local 1 // int a
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0    1     1     a  I
            0    1     2     b  I
    MethodParameters:
      Name  Flags
      a     
      b     

  com.google.common.collect.MinMaxPriorityQueue$MoveDesc<E> tryCrossOverAndBubbleUp(int, int, E);
    descriptor: (IILjava/lang/Object;)Lcom/google/common/collect/MinMaxPriorityQueue$MoveDesc;
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int removeIndex
        start local 2 // int vacated
        start local 3 // java.lang.Object toTrickle
         0: .line 523
            aload 0 /* this */
            iload 2 /* vacated */
            aload 3 /* toTrickle */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.crossOver:(ILjava/lang/Object;)I
            istore 4 /* crossOver */
        start local 4 // int crossOver
         1: .line 524
            iload 4 /* crossOver */
            iload 2 /* vacated */
            if_icmpne 3
         2: .line 525
            aconst_null
            areturn
         3: .line 533
      StackMap locals: int
      StackMap stack:
            iload 4 /* crossOver */
            iload 1 /* removeIndex */
            if_icmpge 6
         4: .line 536
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            iload 1 /* removeIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
            astore 5 /* parent */
        start local 5 // java.lang.Object parent
         5: .line 537
            goto 7
        end local 5 // java.lang.Object parent
         6: .line 538
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            aload 0 /* this */
            iload 1 /* removeIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getParentIndex:(I)I
            invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
            astore 5 /* parent */
        start local 5 // java.lang.Object parent
         7: .line 541
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.otherHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            iload 4 /* crossOver */
            aload 3 /* toTrickle */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.bubbleUpAlternatingLevels:(ILjava/lang/Object;)I
            iload 1 /* removeIndex */
            if_icmpge 9
         8: .line 542
            new com.google.common.collect.MinMaxPriorityQueue$MoveDesc
            dup
            aload 3 /* toTrickle */
            aload 5 /* parent */
            invokespecial com.google.common.collect.MinMaxPriorityQueue$MoveDesc.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
            areturn
         9: .line 544
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // java.lang.Object parent
        end local 4 // int crossOver
        end local 3 // java.lang.Object toTrickle
        end local 2 // int vacated
        end local 1 // int removeIndex
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0   10     1  removeIndex  I
            0   10     2      vacated  I
            0   10     3    toTrickle  TE;
            1   10     4    crossOver  I
            5    6     5       parent  TE;
            7   10     5       parent  TE;
    Signature: (IITE;)Lcom/google/common/collect/MinMaxPriorityQueue$MoveDesc<TE;>;
    MethodParameters:
             Name  Flags
      removeIndex  
      vacated      
      toTrickle    

  void bubbleUp(int, );
    descriptor: (ILjava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int index
        start local 2 // java.lang.Object x
         0: .line 550
            aload 0 /* this */
            iload 1 /* index */
            aload 2 /* x */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.crossOverUp:(ILjava/lang/Object;)I
            istore 3 /* crossOver */
        start local 3 // int crossOver
         1: .line 553
            iload 3 /* crossOver */
            iload 1 /* index */
            if_icmpne 4
         2: .line 554
            aload 0 /* this */
            astore 4 /* heap */
        start local 4 // com.google.common.collect.MinMaxPriorityQueue$Heap heap
         3: .line 555
            goto 6
        end local 4 // com.google.common.collect.MinMaxPriorityQueue$Heap heap
         4: .line 556
      StackMap locals: int
      StackMap stack:
            iload 3 /* crossOver */
            istore 1 /* index */
         5: .line 557
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.otherHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            astore 4 /* heap */
        start local 4 // com.google.common.collect.MinMaxPriorityQueue$Heap heap
         6: .line 559
      StackMap locals: com.google.common.collect.MinMaxPriorityQueue$Heap
      StackMap stack:
            aload 4 /* heap */
            iload 1 /* index */
            aload 2 /* x */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.bubbleUpAlternatingLevels:(ILjava/lang/Object;)I
            pop
         7: .line 560
            return
        end local 4 // com.google.common.collect.MinMaxPriorityQueue$Heap heap
        end local 3 // int crossOver
        end local 2 // java.lang.Object x
        end local 1 // int index
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0    8     1      index  I
            0    8     2          x  TE;
            1    8     3  crossOver  I
            3    4     4       heap  Lcom/google/common/collect/MinMaxPriorityQueue<TE;>.Heap;
            6    8     4       heap  Lcom/google/common/collect/MinMaxPriorityQueue<TE;>.Heap;
    Signature: (ITE;)V
    MethodParameters:
       Name  Flags
      index  
      x      

  int bubbleUpAlternatingLevels(int, );
    descriptor: (ILjava/lang/Object;)I
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int index
        start local 2 // java.lang.Object x
         0: .line 568
            goto 7
         1: .line 569
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* index */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getGrandparentIndex:(I)I
            istore 3 /* grandParentIndex */
        start local 3 // int grandParentIndex
         2: .line 570
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            iload 3 /* grandParentIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
            astore 4 /* e */
        start local 4 // java.lang.Object e
         3: .line 571
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.ordering:Lcom/google/common/collect/Ordering;
            aload 4 /* e */
            aload 2 /* x */
            invokevirtual com.google.common.collect.Ordering.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifgt 5
         4: .line 572
            goto 8
         5: .line 574
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
            iload 1 /* index */
            aload 4 /* e */
            aastore
         6: .line 575
            iload 3 /* grandParentIndex */
            istore 1 /* index */
        end local 4 // java.lang.Object e
        end local 3 // int grandParentIndex
         7: .line 568
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            iconst_2
            if_icmpgt 1
         8: .line 577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
            iload 1 /* index */
            aload 2 /* x */
            aastore
         9: .line 578
            iload 1 /* index */
            ireturn
        end local 2 // java.lang.Object x
        end local 1 // int index
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0              this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0   10     1             index  I
            0   10     2                 x  TE;
            2    7     3  grandParentIndex  I
            3    7     4                 e  TE;
    Signature: (ITE;)I
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
       Name  Flags
      index  
      x      

  int findMin(int, int);
    descriptor: (II)I
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int index
        start local 2 // int len
         0: .line 586
            iload 1 /* index */
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.size:I
            if_icmplt 2
         1: .line 587
            iconst_m1
            ireturn
         2: .line 589
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            ifle 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: invokestatic com.google.common.base.Preconditions.checkState:(Z)V
         5: .line 590
            iload 1 /* index */
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.size:I
            iload 2 /* len */
            isub
            invokestatic java.lang.Math.min:(II)I
            iload 2 /* len */
            iadd
            istore 3 /* limit */
        start local 3 // int limit
         6: .line 591
            iload 1 /* index */
            istore 4 /* minIndex */
        start local 4 // int minIndex
         7: .line 592
            iload 1 /* index */
            iconst_1
            iadd
            istore 5 /* i */
        start local 5 // int i
         8: goto 12
         9: .line 593
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            iload 5 /* i */
            iload 4 /* minIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.compareElements:(II)I
            ifge 11
        10: .line 594
            iload 5 /* i */
            istore 4 /* minIndex */
        11: .line 592
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            iload 3 /* limit */
            if_icmplt 9
        end local 5 // int i
        13: .line 597
            iload 4 /* minIndex */
            ireturn
        end local 4 // int minIndex
        end local 3 // int limit
        end local 2 // int len
        end local 1 // int index
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0   14     1     index  I
            0   14     2       len  I
            6   14     3     limit  I
            7   14     4  minIndex  I
            8   13     5         i  I
    MethodParameters:
       Name  Flags
      index  
      len    

  int findMinChild(int);
    descriptor: (I)I
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int index
         0: .line 602
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* index */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getLeftChildIndex:(I)I
            iconst_2
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.findMin:(II)I
            ireturn
        end local 1 // int index
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  

  int findMinGrandChild(int);
    descriptor: (I)I
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int index
         0: .line 607
            aload 0 /* this */
            iload 1 /* index */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getLeftChildIndex:(I)I
            istore 2 /* leftChildIndex */
        start local 2 // int leftChildIndex
         1: .line 608
            iload 2 /* leftChildIndex */
            ifge 3
         2: .line 609
            iconst_m1
            ireturn
         3: .line 611
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            iload 2 /* leftChildIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getLeftChildIndex:(I)I
            iconst_4
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.findMin:(II)I
            ireturn
        end local 2 // int leftChildIndex
        end local 1 // int index
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0    4     1           index  I
            1    4     2  leftChildIndex  I
    MethodParameters:
       Name  Flags
      index  

  int crossOverUp(int, );
    descriptor: (ILjava/lang/Object;)I
    flags: (0x0000) 
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int index
        start local 2 // java.lang.Object x
         0: .line 619
            iload 1 /* index */
            ifne 3
         1: .line 620
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
            iconst_0
            aload 2 /* x */
            aastore
         2: .line 621
            iconst_0
            ireturn
         3: .line 623
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* index */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getParentIndex:(I)I
            istore 3 /* parentIndex */
        start local 3 // int parentIndex
         4: .line 624
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            iload 3 /* parentIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
            astore 4 /* parentElement */
        start local 4 // java.lang.Object parentElement
         5: .line 625
            iload 3 /* parentIndex */
            ifeq 13
         6: .line 630
            aload 0 /* this */
            iload 3 /* parentIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getParentIndex:(I)I
            istore 5 /* grandparentIndex */
        start local 5 // int grandparentIndex
         7: .line 631
            aload 0 /* this */
            iload 5 /* grandparentIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getRightChildIndex:(I)I
            istore 6 /* uncleIndex */
        start local 6 // int uncleIndex
         8: .line 632
            iload 6 /* uncleIndex */
            iload 3 /* parentIndex */
            if_icmpeq 13
            aload 0 /* this */
            iload 6 /* uncleIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getLeftChildIndex:(I)I
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.size:I
            if_icmplt 13
         9: .line 633
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            iload 6 /* uncleIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
            astore 7 /* uncleElement */
        start local 7 // java.lang.Object uncleElement
        10: .line 634
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.ordering:Lcom/google/common/collect/Ordering;
            aload 7 /* uncleElement */
            aload 4 /* parentElement */
            invokevirtual com.google.common.collect.Ordering.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifge 13
        11: .line 635
            iload 6 /* uncleIndex */
            istore 3 /* parentIndex */
        12: .line 636
            aload 7 /* uncleElement */
            astore 4 /* parentElement */
        end local 7 // java.lang.Object uncleElement
        end local 6 // int uncleIndex
        end local 5 // int grandparentIndex
        13: .line 640
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.ordering:Lcom/google/common/collect/Ordering;
            aload 4 /* parentElement */
            aload 2 /* x */
            invokevirtual com.google.common.collect.Ordering.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifge 17
        14: .line 641
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
            iload 1 /* index */
            aload 4 /* parentElement */
            aastore
        15: .line 642
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
            iload 3 /* parentIndex */
            aload 2 /* x */
            aastore
        16: .line 643
            iload 3 /* parentIndex */
            ireturn
        17: .line 645
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
            iload 1 /* index */
            aload 2 /* x */
            aastore
        18: .line 646
            iload 1 /* index */
            ireturn
        end local 4 // java.lang.Object parentElement
        end local 3 // int parentIndex
        end local 2 // java.lang.Object x
        end local 1 // int index
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   19     0              this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0   19     1             index  I
            0   19     2                 x  TE;
            4   19     3       parentIndex  I
            5   19     4     parentElement  TE;
            7   13     5  grandparentIndex  I
            8   13     6        uncleIndex  I
           10   13     7      uncleElement  TE;
    Signature: (ITE;)I
    MethodParameters:
       Name  Flags
      index  
      x      

  int swapWithConceptuallyLastElement();
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // java.lang.Object actualLastElement
         0: .line 659
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.size:I
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getParentIndex:(I)I
            istore 2 /* parentIndex */
        start local 2 // int parentIndex
         1: .line 660
            iload 2 /* parentIndex */
            ifeq 10
         2: .line 661
            aload 0 /* this */
            iload 2 /* parentIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getParentIndex:(I)I
            istore 3 /* grandparentIndex */
        start local 3 // int grandparentIndex
         3: .line 662
            aload 0 /* this */
            iload 3 /* grandparentIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getRightChildIndex:(I)I
            istore 4 /* uncleIndex */
        start local 4 // int uncleIndex
         4: .line 663
            iload 4 /* uncleIndex */
            iload 2 /* parentIndex */
            if_icmpeq 10
            aload 0 /* this */
            iload 4 /* uncleIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getLeftChildIndex:(I)I
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.size:I
            if_icmplt 10
         5: .line 664
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            iload 4 /* uncleIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
            astore 5 /* uncleElement */
        start local 5 // java.lang.Object uncleElement
         6: .line 665
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.ordering:Lcom/google/common/collect/Ordering;
            aload 5 /* uncleElement */
            aload 1 /* actualLastElement */
            invokevirtual com.google.common.collect.Ordering.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifge 10
         7: .line 666
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
            iload 4 /* uncleIndex */
            aload 1 /* actualLastElement */
            aastore
         8: .line 667
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.size:I
            aload 5 /* uncleElement */
            aastore
         9: .line 668
            iload 4 /* uncleIndex */
            ireturn
        end local 5 // java.lang.Object uncleElement
        end local 4 // int uncleIndex
        end local 3 // int grandparentIndex
        10: .line 672
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.size:I
            ireturn
        end local 2 // int parentIndex
        end local 1 // java.lang.Object actualLastElement
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   11     0               this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0   11     1  actualLastElement  TE;
            1   11     2        parentIndex  I
            3   10     3   grandparentIndex  I
            4   10     4         uncleIndex  I
            6   10     5       uncleElement  TE;
    Signature: (TE;)I
    MethodParameters:
                   Name  Flags
      actualLastElement  

  int crossOver(int, );
    descriptor: (ILjava/lang/Object;)I
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int index
        start local 2 // java.lang.Object x
         0: .line 682
            aload 0 /* this */
            iload 1 /* index */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.findMinChild:(I)I
            istore 3 /* minChildIndex */
        start local 3 // int minChildIndex
         1: .line 685
            iload 3 /* minChildIndex */
            ifle 5
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.ordering:Lcom/google/common/collect/Ordering;
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            iload 3 /* minChildIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
            aload 2 /* x */
            invokevirtual com.google.common.collect.Ordering.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifge 5
         2: .line 686
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
            iload 1 /* index */
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            iload 3 /* minChildIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
            aastore
         3: .line 687
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
            iload 3 /* minChildIndex */
            aload 2 /* x */
            aastore
         4: .line 688
            iload 3 /* minChildIndex */
            ireturn
         5: .line 690
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* index */
            aload 2 /* x */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.crossOverUp:(ILjava/lang/Object;)I
            ireturn
        end local 3 // int minChildIndex
        end local 2 // java.lang.Object x
        end local 1 // int index
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0    6     1          index  I
            0    6     2              x  TE;
            1    6     3  minChildIndex  I
    Signature: (ITE;)I
    MethodParameters:
       Name  Flags
      index  
      x      

  int fillHoleAt(int);
    descriptor: (I)I
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int index
         0: .line 702
            goto 3
        start local 2 // int minGrandchildIndex
         1: .line 703
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
            iload 1 /* index */
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            iload 2 /* minGrandchildIndex */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
            aastore
         2: .line 704
            iload 2 /* minGrandchildIndex */
            istore 1 /* index */
        end local 2 // int minGrandchildIndex
         3: .line 702
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* index */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.findMinGrandChild:(I)I
            dup
            istore 2 /* minGrandchildIndex */
        start local 2 // int minGrandchildIndex
         4: ifgt 1
         5: .line 706
            iload 1 /* index */
            ireturn
        end local 2 // int minGrandchildIndex
        end local 1 // int index
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0    6     1               index  I
            1    3     2  minGrandchildIndex  I
            4    6     2  minGrandchildIndex  I
    MethodParameters:
       Name  Flags
      index  

  private boolean verifyIndex(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int i
         0: .line 710
            aload 0 /* this */
            iload 1 /* i */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getLeftChildIndex:(I)I
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.size:I
            if_icmpge 2
            aload 0 /* this */
            iload 1 /* i */
            aload 0 /* this */
            iload 1 /* i */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getLeftChildIndex:(I)I
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.compareElements:(II)I
            ifle 2
         1: .line 711
            iconst_0
            ireturn
         2: .line 713
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* i */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getRightChildIndex:(I)I
            aload 0 /* this */
            getfield com.google.common.collect.MinMaxPriorityQueue$Heap.this$0:Lcom/google/common/collect/MinMaxPriorityQueue;
            getfield com.google.common.collect.MinMaxPriorityQueue.size:I
            if_icmpge 4
            aload 0 /* this */
            iload 1 /* i */
            aload 0 /* this */
            iload 1 /* i */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getRightChildIndex:(I)I
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.compareElements:(II)I
            ifle 4
         3: .line 714
            iconst_0
            ireturn
         4: .line 716
      StackMap locals:
      StackMap stack:
            iload 1 /* i */
            ifle 6
            aload 0 /* this */
            iload 1 /* i */
            aload 0 /* this */
            iload 1 /* i */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getParentIndex:(I)I
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.compareElements:(II)I
            ifle 6
         5: .line 717
            iconst_0
            ireturn
         6: .line 719
      StackMap locals:
      StackMap stack:
            iload 1 /* i */
            iconst_2
            if_icmple 8
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* i */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getGrandparentIndex:(I)I
            iload 1 /* i */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.compareElements:(II)I
            ifle 8
         7: .line 720
            iconst_0
            ireturn
         8: .line 722
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // int i
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0    9     1     i  I
    MethodParameters:
      Name  Flags
      i     

  private int getLeftChildIndex(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int i
         0: .line 728
            iload 1 /* i */
            iconst_2
            imul
            iconst_1
            iadd
            ireturn
        end local 1 // int i
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  private int getRightChildIndex(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int i
         0: .line 732
            iload 1 /* i */
            iconst_2
            imul
            iconst_2
            iadd
            ireturn
        end local 1 // int i
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  private int getParentIndex(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int i
         0: .line 736
            iload 1 /* i */
            iconst_1
            isub
            iconst_2
            idiv
            ireturn
        end local 1 // int i
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  private int getGrandparentIndex(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
        start local 1 // int i
         0: .line 740
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* i */
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getParentIndex:(I)I
            invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.getParentIndex:(I)I
            ireturn
        end local 1 // int i
        end local 0 // com.google.common.collect.MinMaxPriorityQueue$Heap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     
}
SourceFile: "MinMaxPriorityQueue.java"
NestHost: com.google.common.collect.MinMaxPriorityQueue
InnerClasses:
  private Heap = com.google.common.collect.MinMaxPriorityQueue$Heap of com.google.common.collect.MinMaxPriorityQueue
  MoveDesc = com.google.common.collect.MinMaxPriorityQueue$MoveDesc of com.google.common.collect.MinMaxPriorityQueue