public class org.apache.cassandra.utils.btree.BTree
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.utils.btree.BTree
  super_class: java.lang.Object
{
  static final int FAN_SHIFT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int FAN_FACTOR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int MINIMAL_NODE_SIZE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.lang.Object[] EMPTY_LEAF;
    descriptor: [Ljava/lang/Object;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.lang.Object[] EMPTY_BRANCH;
    descriptor: [Ljava/lang/Object;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static java.lang.Object POSITIVE_INFINITY;
    descriptor: Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC

  static java.lang.Object NEGATIVE_INFINITY;
    descriptor: Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC

  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=4, locals=2, args_size=0
         0: .line 38
            ldc Lorg/apache/cassandra/utils/btree/BTree;
            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.cassandra.utils.btree.BTree.$assertionsDisabled:Z
         3: .line 62
            bipush 32
            istore 0 /* fanfactor */
        start local 0 // int fanfactor
         4: .line 63
            ldc "cassandra.btree.fanfactor"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 6
         5: .line 64
            ldc "cassandra.btree.fanfactor"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 0 /* fanfactor */
         6: .line 65
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 1 /* shift */
        start local 1 // int shift
         7: .line 66
            goto 9
         8: .line 67
      StackMap locals: int
      StackMap stack:
            iinc 1 /* shift */ 1
         9: .line 66
      StackMap locals:
      StackMap stack:
            iconst_1
            iload 1 /* shift */
            ishl
            iload 0 /* fanfactor */
            if_icmplt 8
        10: .line 68
            iload 1 /* shift */
            putstatic org.apache.cassandra.utils.btree.BTree.FAN_SHIFT:I
        end local 1 // int shift
        end local 0 // int fanfactor
        11: .line 71
            iconst_1
            getstatic org.apache.cassandra.utils.btree.BTree.FAN_SHIFT:I
            ishl
            putstatic org.apache.cassandra.utils.btree.BTree.FAN_FACTOR:I
        12: .line 73
            getstatic org.apache.cassandra.utils.btree.BTree.FAN_FACTOR:I
            iconst_1
            ishr
            putstatic org.apache.cassandra.utils.btree.BTree.MINIMAL_NODE_SIZE:I
        13: .line 76
            iconst_1
            anewarray java.lang.Object
            putstatic org.apache.cassandra.utils.btree.BTree.EMPTY_LEAF:[Ljava/lang/Object;
        14: .line 79
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_1
            iconst_0
            newarray 10
            aastore
            putstatic org.apache.cassandra.utils.btree.BTree.EMPTY_BRANCH:[Ljava/lang/Object;
        15: .line 1108
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic org.apache.cassandra.utils.btree.BTree.POSITIVE_INFINITY:Ljava/lang/Object;
        16: .line 1109
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic org.apache.cassandra.utils.btree.BTree.NEGATIVE_INFINITY:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            4   11     0  fanfactor  I
            7   11     1      shift  I

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.btree.BTree this
         0: .line 38
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.cassandra.utils.btree.BTree this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/btree/BTree;

  public static java.lang.Object[] empty();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 92
            getstatic org.apache.cassandra.utils.btree.BTree.EMPTY_LEAF:[Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.Object[] singleton(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Object value
         0: .line 97
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* value */
            aastore
            areturn
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public static <C, K extends C, V extends C> [] build(java.util.Collection<K>, org.apache.cassandra.utils.btree.UpdateFunction<K, V>);
    descriptor: (Ljava/util/Collection;Lorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.util.Collection source
        start local 1 // org.apache.cassandra.utils.btree.UpdateFunction updateF
         0: .line 102
            aload 0 /* source */
            aload 0 /* source */
            invokeinterface java.util.Collection.size:()I
            aload 1 /* updateF */
            invokestatic org.apache.cassandra.utils.btree.BTree.buildInternal:(Ljava/lang/Iterable;ILorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
            areturn
        end local 1 // org.apache.cassandra.utils.btree.UpdateFunction updateF
        end local 0 // java.util.Collection source
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0   source  Ljava/util/Collection<TK;>;
            0    1     1  updateF  Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;
    Signature: <C:Ljava/lang/Object;K:TC;V:TC;>(Ljava/util/Collection<TK;>;Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;)[Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      source   
      updateF  

  public static <C, K extends C, V extends C> [] build(java.lang.Iterable<K>, org.apache.cassandra.utils.btree.UpdateFunction<K, V>);
    descriptor: (Ljava/lang/Iterable;Lorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Iterable source
        start local 1 // org.apache.cassandra.utils.btree.UpdateFunction updateF
         0: .line 107
            aload 0 /* source */
            iconst_m1
            aload 1 /* updateF */
            invokestatic org.apache.cassandra.utils.btree.BTree.buildInternal:(Ljava/lang/Iterable;ILorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
            areturn
        end local 1 // org.apache.cassandra.utils.btree.UpdateFunction updateF
        end local 0 // java.lang.Iterable source
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0   source  Ljava/lang/Iterable<TK;>;
            0    1     1  updateF  Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;
    Signature: <C:Ljava/lang/Object;K:TC;V:TC;>(Ljava/lang/Iterable<TK;>;Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;)[Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      source   
      updateF  

  public static <C, K extends C, V extends C> [] build(java.lang.Iterable<K>, int, org.apache.cassandra.utils.btree.UpdateFunction<K, V>);
    descriptor: (Ljava/lang/Iterable;ILorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.Iterable source
        start local 1 // int size
        start local 2 // org.apache.cassandra.utils.btree.UpdateFunction updateF
         0: .line 119
            iload 1 /* size */
            ifge 2
         1: .line 120
            new java.lang.IllegalArgumentException
            dup
            iload 1 /* size */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            iload 1 /* size */
            aload 2 /* updateF */
            invokestatic org.apache.cassandra.utils.btree.BTree.buildInternal:(Ljava/lang/Iterable;ILorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
            areturn
        end local 2 // org.apache.cassandra.utils.btree.UpdateFunction updateF
        end local 1 // int size
        end local 0 // java.lang.Iterable source
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0   source  Ljava/lang/Iterable<TK;>;
            0    3     1     size  I
            0    3     2  updateF  Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;
    Signature: <C:Ljava/lang/Object;K:TC;V:TC;>(Ljava/lang/Iterable<TK;>;ILorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;)[Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      source   
      size     
      updateF  

  private static <C, K extends C, V extends C> [] buildInternal(java.lang.Iterable<K>, int, org.apache.cassandra.utils.btree.UpdateFunction<K, V>);
    descriptor: (Ljava/lang/Iterable;ILorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.lang.Iterable source
        start local 1 // int size
        start local 2 // org.apache.cassandra.utils.btree.UpdateFunction updateF
         0: .line 130
            iload 1 /* size */
            iflt 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: iload 1 /* size */
            getstatic org.apache.cassandra.utils.btree.BTree.FAN_FACTOR:I
            if_icmpge 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: int
         3: iconst_0
      StackMap locals: java.lang.Iterable int org.apache.cassandra.utils.btree.UpdateFunction
      StackMap stack: int int
         4: iand
            ifeq 16
         5: .line 132
            iload 1 /* size */
            ifne 7
         6: .line 133
            getstatic org.apache.cassandra.utils.btree.BTree.EMPTY_LEAF:[Ljava/lang/Object;
            areturn
         7: .line 135
      StackMap locals:
      StackMap stack:
            iload 1 /* size */
            iconst_1
            ior
            anewarray java.lang.Object
            astore 3 /* values */
        start local 3 // java.lang.Object[] values
         8: .line 137
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         9: .line 138
            aload 0 /* source */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 12
      StackMap locals: java.lang.Iterable int org.apache.cassandra.utils.btree.UpdateFunction java.lang.Object[] int top java.util.Iterator
      StackMap stack:
        10: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Object
            astore 5 /* k */
        start local 5 // java.lang.Object k
        11: .line 139
            aload 3 /* values */
            iload 4 /* i */
            iinc 4 /* i */ 1
            aload 2 /* updateF */
            aload 5 /* k */
            invokeinterface org.apache.cassandra.utils.btree.UpdateFunction.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        end local 5 // java.lang.Object k
        12: .line 138
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        end local 4 // int i
        13: .line 141
            aload 2 /* updateF */
            invokestatic org.apache.cassandra.utils.btree.UpdateFunction.noOp:()Lorg/apache/cassandra/utils/btree/UpdateFunction;
            if_acmpeq 15
        14: .line 142
            aload 2 /* updateF */
            aload 3 /* values */
            invokestatic org.apache.cassandra.utils.ObjectSizes.sizeOfArray:([Ljava/lang/Object;)J
            invokeinterface org.apache.cassandra.utils.btree.UpdateFunction.allocated:(J)V
        15: .line 143
      StackMap locals: java.lang.Iterable int org.apache.cassandra.utils.btree.UpdateFunction java.lang.Object[]
      StackMap stack:
            aload 3 /* values */
            areturn
        end local 3 // java.lang.Object[] values
        16: .line 146
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.utils.btree.TreeBuilder.newInstance:()Lorg/apache/cassandra/utils/btree/TreeBuilder;
            astore 3 /* builder */
        start local 3 // org.apache.cassandra.utils.btree.TreeBuilder builder
        17: .line 147
            aload 3 /* builder */
            aload 0 /* source */
            aload 2 /* updateF */
            iload 1 /* size */
            invokevirtual org.apache.cassandra.utils.btree.TreeBuilder.build:(Ljava/lang/Iterable;Lorg/apache/cassandra/utils/btree/UpdateFunction;I)[Ljava/lang/Object;
            astore 4 /* btree */
        start local 4 // java.lang.Object[] btree
        18: .line 149
            aload 4 /* btree */
            areturn
        end local 4 // java.lang.Object[] btree
        end local 3 // org.apache.cassandra.utils.btree.TreeBuilder builder
        end local 2 // org.apache.cassandra.utils.btree.UpdateFunction updateF
        end local 1 // int size
        end local 0 // java.lang.Iterable source
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0   source  Ljava/lang/Iterable<TK;>;
            0   19     1     size  I
            0   19     2  updateF  Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;
            8   16     3   values  [Ljava/lang/Object;
            9   13     4        i  I
           11   12     5        k  TK;
           17   19     3  builder  Lorg/apache/cassandra/utils/btree/TreeBuilder;
           18   19     4    btree  [Ljava/lang/Object;
    Signature: <C:Ljava/lang/Object;K:TC;V:TC;>(Ljava/lang/Iterable<TK;>;ILorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;)[Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      source   
      size     
      updateF  

  public static <C, K extends C, V extends C> [] update([], java.util.Comparator<C>, java.util.Collection<K>, org.apache.cassandra.utils.btree.UpdateFunction<K, V>);
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/util/Collection;Lorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // java.util.Collection updateWith
        start local 3 // org.apache.cassandra.utils.btree.UpdateFunction updateF
         0: .line 157
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* updateWith */
            aload 2 /* updateWith */
            invokeinterface java.util.Collection.size:()I
            aload 3 /* updateF */
            invokestatic org.apache.cassandra.utils.btree.BTree.update:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Iterable;ILorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
            areturn
        end local 3 // org.apache.cassandra.utils.btree.UpdateFunction updateF
        end local 2 // java.util.Collection updateWith
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0       btree  [Ljava/lang/Object;
            0    1     1  comparator  Ljava/util/Comparator<TC;>;
            0    1     2  updateWith  Ljava/util/Collection<TK;>;
            0    1     3     updateF  Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;
    Signature: <C:Ljava/lang/Object;K:TC;V:TC;>([Ljava/lang/Object;Ljava/util/Comparator<TC;>;Ljava/util/Collection<TK;>;Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;)[Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      btree       
      comparator  
      updateWith  
      updateF     

  public static <C, K extends C, V extends C> [] update([], java.util.Comparator<C>, java.lang.Iterable<K>, int, org.apache.cassandra.utils.btree.UpdateFunction<K, V>);
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Iterable;ILorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Iterable updateWith
        start local 3 // int updateWithLength
        start local 4 // org.apache.cassandra.utils.btree.UpdateFunction updateF
         0: .line 177
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.isEmpty:([Ljava/lang/Object;)Z
            ifeq 2
         1: .line 178
            aload 2 /* updateWith */
            iload 3 /* updateWithLength */
            aload 4 /* updateF */
            invokestatic org.apache.cassandra.utils.btree.BTree.build:(Ljava/lang/Iterable;ILorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
            areturn
         2: .line 181
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.utils.btree.TreeBuilder.newInstance:()Lorg/apache/cassandra/utils/btree/TreeBuilder;
            astore 5 /* builder */
        start local 5 // org.apache.cassandra.utils.btree.TreeBuilder builder
         3: .line 182
            aload 5 /* builder */
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* updateWith */
            aload 4 /* updateF */
            invokevirtual org.apache.cassandra.utils.btree.TreeBuilder.update:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Iterable;Lorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
            astore 0 /* btree */
         4: .line 183
            aload 0 /* btree */
            areturn
        end local 5 // org.apache.cassandra.utils.btree.TreeBuilder builder
        end local 4 // org.apache.cassandra.utils.btree.UpdateFunction updateF
        end local 3 // int updateWithLength
        end local 2 // java.lang.Iterable updateWith
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0             btree  [Ljava/lang/Object;
            0    5     1        comparator  Ljava/util/Comparator<TC;>;
            0    5     2        updateWith  Ljava/lang/Iterable<TK;>;
            0    5     3  updateWithLength  I
            0    5     4           updateF  Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;
            3    5     5           builder  Lorg/apache/cassandra/utils/btree/TreeBuilder;
    Signature: <C:Ljava/lang/Object;K:TC;V:TC;>([Ljava/lang/Object;Ljava/util/Comparator<TC;>;Ljava/lang/Iterable<TK;>;ILorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;)[Ljava/lang/Object;
    MethodParameters:
                  Name  Flags
      btree             
      comparator        
      updateWith        
      updateWithLength  
      updateF           

  public static <K> [] merge([], [], java.util.Comparator<? super K>, org.apache.cassandra.utils.btree.UpdateFunction<K, K>);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // java.lang.Object[] tree1
        start local 1 // java.lang.Object[] tree2
        start local 2 // java.util.Comparator comparator
        start local 3 // org.apache.cassandra.utils.btree.UpdateFunction updateF
         0: .line 188
            aload 0 /* tree1 */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            aload 1 /* tree2 */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            if_icmpge 4
         1: .line 190
            aload 0 /* tree1 */
            astore 4 /* tmp */
        start local 4 // java.lang.Object[] tmp
         2: .line 191
            aload 1 /* tree2 */
            astore 0 /* tree1 */
         3: .line 192
            aload 4 /* tmp */
            astore 1 /* tree2 */
        end local 4 // java.lang.Object[] tmp
         4: .line 194
      StackMap locals:
      StackMap stack:
            aload 0 /* tree1 */
            aload 2 /* comparator */
            new org.apache.cassandra.utils.btree.BTreeSet
            dup
            aload 1 /* tree2 */
            aload 2 /* comparator */
            invokespecial org.apache.cassandra.utils.btree.BTreeSet.<init>:([Ljava/lang/Object;Ljava/util/Comparator;)V
            aload 3 /* updateF */
            invokestatic org.apache.cassandra.utils.btree.BTree.update:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/util/Collection;Lorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
            areturn
        end local 3 // org.apache.cassandra.utils.btree.UpdateFunction updateF
        end local 2 // java.util.Comparator comparator
        end local 1 // java.lang.Object[] tree2
        end local 0 // java.lang.Object[] tree1
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0       tree1  [Ljava/lang/Object;
            0    5     1       tree2  [Ljava/lang/Object;
            0    5     2  comparator  Ljava/util/Comparator<-TK;>;
            0    5     3     updateF  Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TK;>;
            2    4     4         tmp  [Ljava/lang/Object;
    Signature: <K:Ljava/lang/Object;>([Ljava/lang/Object;[Ljava/lang/Object;Ljava/util/Comparator<-TK;>;Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TK;>;)[Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      tree1       
      tree2       
      comparator  
      updateF     

  public static <V> java.util.Iterator<V> iterator([]);
    descriptor: ([Ljava/lang/Object;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] btree
         0: .line 199
            aload 0 /* btree */
            getstatic org.apache.cassandra.utils.btree.BTree$Dir.ASC:Lorg/apache/cassandra/utils/btree/BTree$Dir;
            invokestatic org.apache.cassandra.utils.btree.BTree.iterator:([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/util/Iterator;
            areturn
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  btree  [Ljava/lang/Object;
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;)Ljava/util/Iterator<TV;>;
    MethodParameters:
       Name  Flags
      btree  

  public static <V> java.util.Iterator<V> iterator([], org.apache.cassandra.utils.btree.BTree$Dir);
    descriptor: ([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.Object[] btree
        start local 1 // org.apache.cassandra.utils.btree.BTree$Dir dir
         0: .line 204
            new org.apache.cassandra.utils.btree.BTreeSearchIterator
            dup
            aload 0 /* btree */
            aconst_null
            aload 1 /* dir */
            invokespecial org.apache.cassandra.utils.btree.BTreeSearchIterator.<init>:([Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/cassandra/utils/btree/BTree$Dir;)V
            areturn
        end local 1 // org.apache.cassandra.utils.btree.BTree$Dir dir
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  btree  [Ljava/lang/Object;
            0    1     1    dir  Lorg/apache/cassandra/utils/btree/BTree$Dir;
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/util/Iterator<TV;>;
    MethodParameters:
       Name  Flags
      btree  
      dir    

  public static <V> java.util.Iterator<V> iterator([], int, int, org.apache.cassandra.utils.btree.BTree$Dir);
    descriptor: ([Ljava/lang/Object;IILorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // java.lang.Object[] btree
        start local 1 // int lb
        start local 2 // int ub
        start local 3 // org.apache.cassandra.utils.btree.BTree$Dir dir
         0: .line 209
            new org.apache.cassandra.utils.btree.BTreeSearchIterator
            dup
            aload 0 /* btree */
            aconst_null
            aload 3 /* dir */
            iload 1 /* lb */
            iload 2 /* ub */
            invokespecial org.apache.cassandra.utils.btree.BTreeSearchIterator.<init>:([Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/cassandra/utils/btree/BTree$Dir;II)V
            areturn
        end local 3 // org.apache.cassandra.utils.btree.BTree$Dir dir
        end local 2 // int ub
        end local 1 // int lb
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  btree  [Ljava/lang/Object;
            0    1     1     lb  I
            0    1     2     ub  I
            0    1     3    dir  Lorg/apache/cassandra/utils/btree/BTree$Dir;
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;IILorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/util/Iterator<TV;>;
    MethodParameters:
       Name  Flags
      btree  
      lb     
      ub     
      dir    

  public static <V> java.lang.Iterable<V> iterable([]);
    descriptor: ([Ljava/lang/Object;)Ljava/lang/Iterable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] btree
         0: .line 214
            aload 0 /* btree */
            getstatic org.apache.cassandra.utils.btree.BTree$Dir.ASC:Lorg/apache/cassandra/utils/btree/BTree$Dir;
            invokestatic org.apache.cassandra.utils.btree.BTree.iterable:([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/lang/Iterable;
            areturn
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  btree  [Ljava/lang/Object;
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;)Ljava/lang/Iterable<TV;>;
    MethodParameters:
       Name  Flags
      btree  

  public static <V> java.lang.Iterable<V> iterable([], org.apache.cassandra.utils.btree.BTree$Dir);
    descriptor: ([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/lang/Iterable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object[] btree
        start local 1 // org.apache.cassandra.utils.btree.BTree$Dir dir
         0: .line 219
            aload 0 /* btree */
            aload 1 /* dir */
            invokedynamic iterator([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/lang/Iterable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/util/Iterator;
                  org/apache/cassandra/utils/btree/BTree.lambda$0([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/util/Iterator; (6)
                  ()Ljava/util/Iterator;
            areturn
        end local 1 // org.apache.cassandra.utils.btree.BTree$Dir dir
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  btree  [Ljava/lang/Object;
            0    1     1    dir  Lorg/apache/cassandra/utils/btree/BTree$Dir;
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/lang/Iterable<TV;>;
    MethodParameters:
       Name  Flags
      btree  
      dir    

  public static <V> java.lang.Iterable<V> iterable([], int, int, org.apache.cassandra.utils.btree.BTree$Dir);
    descriptor: ([Ljava/lang/Object;IILorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/lang/Iterable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.Object[] btree
        start local 1 // int lb
        start local 2 // int ub
        start local 3 // org.apache.cassandra.utils.btree.BTree$Dir dir
         0: .line 224
            aload 0 /* btree */
            iload 1 /* lb */
            iload 2 /* ub */
            aload 3 /* dir */
            invokedynamic iterator([Ljava/lang/Object;IILorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/lang/Iterable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/util/Iterator;
                  org/apache/cassandra/utils/btree/BTree.lambda$1([Ljava/lang/Object;IILorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/util/Iterator; (6)
                  ()Ljava/util/Iterator;
            areturn
        end local 3 // org.apache.cassandra.utils.btree.BTree$Dir dir
        end local 2 // int ub
        end local 1 // int lb
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  btree  [Ljava/lang/Object;
            0    1     1     lb  I
            0    1     2     ub  I
            0    1     3    dir  Lorg/apache/cassandra/utils/btree/BTree$Dir;
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;IILorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/lang/Iterable<TV;>;
    MethodParameters:
       Name  Flags
      btree  
      lb     
      ub     
      dir    

  public static <K, V> org.apache.cassandra.utils.btree.BTreeSearchIterator<K, V> slice([], java.util.Comparator<? super K>, org.apache.cassandra.utils.btree.BTree$Dir);
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Lorg/apache/cassandra/utils/btree/BTreeSearchIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // org.apache.cassandra.utils.btree.BTree$Dir dir
         0: .line 237
            new org.apache.cassandra.utils.btree.BTreeSearchIterator
            dup
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* dir */
            invokespecial org.apache.cassandra.utils.btree.BTreeSearchIterator.<init>:([Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/cassandra/utils/btree/BTree$Dir;)V
            areturn
        end local 2 // org.apache.cassandra.utils.btree.BTree$Dir dir
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0       btree  [Ljava/lang/Object;
            0    1     1  comparator  Ljava/util/Comparator<-TK;>;
            0    1     2         dir  Lorg/apache/cassandra/utils/btree/BTree$Dir;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TK;>;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
    MethodParameters:
            Name  Flags
      btree       
      comparator  
      dir         

  public static <K, V extends K> org.apache.cassandra.utils.btree.BTreeSearchIterator<K, V> slice([], java.util.Comparator<? super K>, K, K, org.apache.cassandra.utils.btree.BTree$Dir);
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Lorg/apache/cassandra/utils/btree/BTreeSearchIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object start
        start local 3 // java.lang.Object end
        start local 4 // org.apache.cassandra.utils.btree.BTree$Dir dir
         0: .line 250
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* start */
            iconst_1
            aload 3 /* end */
            iconst_0
            aload 4 /* dir */
            invokestatic org.apache.cassandra.utils.btree.BTree.slice:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;ZLjava/lang/Object;ZLorg/apache/cassandra/utils/btree/BTree$Dir;)Lorg/apache/cassandra/utils/btree/BTreeSearchIterator;
            areturn
        end local 4 // org.apache.cassandra.utils.btree.BTree$Dir dir
        end local 3 // java.lang.Object end
        end local 2 // java.lang.Object start
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0       btree  [Ljava/lang/Object;
            0    1     1  comparator  Ljava/util/Comparator<-TK;>;
            0    1     2       start  TK;
            0    1     3         end  TK;
            0    1     4         dir  Lorg/apache/cassandra/utils/btree/BTree$Dir;
    Signature: <K:Ljava/lang/Object;V:TK;>([Ljava/lang/Object;Ljava/util/Comparator<-TK;>;TK;TK;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
    MethodParameters:
            Name  Flags
      btree       
      comparator  
      start       
      end         
      dir         

  public static <K, V extends K> org.apache.cassandra.utils.btree.BTreeSearchIterator<K, V> slice([], java.util.Comparator<? super K>, K, boolean, K, boolean, org.apache.cassandra.utils.btree.BTree$Dir);
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;ZLjava/lang/Object;ZLorg/apache/cassandra/utils/btree/BTree$Dir;)Lorg/apache/cassandra/utils/btree/BTreeSearchIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=7
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object start
        start local 3 // boolean startInclusive
        start local 4 // java.lang.Object end
        start local 5 // boolean endInclusive
        start local 6 // org.apache.cassandra.utils.btree.BTree$Dir dir
         0: .line 265
            iconst_0
         1: .line 266
            aload 2 /* start */
            ifnonnull 2
            ldc -2147483648
            goto 4
         2: .line 267
      StackMap locals:
      StackMap stack: int
            iload 3 /* startInclusive */
            ifeq 3
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* start */
            invokestatic org.apache.cassandra.utils.btree.BTree.ceilIndex:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
            goto 4
         3: .line 268
      StackMap locals:
      StackMap stack: int
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* start */
            invokestatic org.apache.cassandra.utils.btree.BTree.higherIndex:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
         4: .line 265
      StackMap locals: java.lang.Object[] java.util.Comparator java.lang.Object int java.lang.Object int org.apache.cassandra.utils.btree.BTree$Dir
      StackMap stack: int int
            invokestatic java.lang.Math.max:(II)I
            istore 7 /* inclusiveLowerBound */
        start local 7 // int inclusiveLowerBound
         5: .line 269
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            iconst_1
            isub
         6: .line 270
            aload 4 /* end */
            ifnonnull 7
            ldc 2147483647
            goto 9
         7: .line 271
      StackMap locals: java.lang.Object[] java.util.Comparator java.lang.Object int java.lang.Object int org.apache.cassandra.utils.btree.BTree$Dir int
      StackMap stack: int
            iload 5 /* endInclusive */
            ifeq 8
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 4 /* end */
            invokestatic org.apache.cassandra.utils.btree.BTree.floorIndex:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
            goto 9
         8: .line 272
      StackMap locals:
      StackMap stack: int
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 4 /* end */
            invokestatic org.apache.cassandra.utils.btree.BTree.lowerIndex:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
         9: .line 269
      StackMap locals: java.lang.Object[] java.util.Comparator java.lang.Object int java.lang.Object int org.apache.cassandra.utils.btree.BTree$Dir int
      StackMap stack: int int
            invokestatic java.lang.Math.min:(II)I
            istore 8 /* inclusiveUpperBound */
        start local 8 // int inclusiveUpperBound
        10: .line 273
            new org.apache.cassandra.utils.btree.BTreeSearchIterator
            dup
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 6 /* dir */
            iload 7 /* inclusiveLowerBound */
            iload 8 /* inclusiveUpperBound */
            invokespecial org.apache.cassandra.utils.btree.BTreeSearchIterator.<init>:([Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/cassandra/utils/btree/BTree$Dir;II)V
            areturn
        end local 8 // int inclusiveUpperBound
        end local 7 // int inclusiveLowerBound
        end local 6 // org.apache.cassandra.utils.btree.BTree$Dir dir
        end local 5 // boolean endInclusive
        end local 4 // java.lang.Object end
        end local 3 // boolean startInclusive
        end local 2 // java.lang.Object start
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   11     0                btree  [Ljava/lang/Object;
            0   11     1           comparator  Ljava/util/Comparator<-TK;>;
            0   11     2                start  TK;
            0   11     3       startInclusive  Z
            0   11     4                  end  TK;
            0   11     5         endInclusive  Z
            0   11     6                  dir  Lorg/apache/cassandra/utils/btree/BTree$Dir;
            5   11     7  inclusiveLowerBound  I
           10   11     8  inclusiveUpperBound  I
    Signature: <K:Ljava/lang/Object;V:TK;>([Ljava/lang/Object;Ljava/util/Comparator<-TK;>;TK;ZTK;ZLorg/apache/cassandra/utils/btree/BTree$Dir;)Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
    MethodParameters:
                Name  Flags
      btree           
      comparator      
      start           
      startInclusive  
      end             
      endInclusive    
      dir             

  public static <V> V find([], java.util.Comparator<? super V>, );
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.Object[] node
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object find
         0: .line 283
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
            istore 3 /* keyEnd */
        start local 3 // int keyEnd
         1: .line 284
            aload 0 /* node */
            iconst_0
            iload 3 /* keyEnd */
            aload 2 /* find */
            aload 1 /* comparator */
            invokestatic java.util.Arrays.binarySearch:([Ljava/lang/Object;IILjava/lang/Object;Ljava/util/Comparator;)I
            istore 4 /* i */
        start local 4 // int i
         2: .line 286
            iload 4 /* i */
            iflt 4
         3: .line 287
            aload 0 /* node */
            iload 4 /* i */
            aaload
            areturn
         4: .line 289
      StackMap locals: int int
      StackMap stack:
            aload 0 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 6
         5: .line 290
            aconst_null
            areturn
         6: .line 292
      StackMap locals:
      StackMap stack:
            iconst_m1
            iload 4 /* i */
            isub
            istore 4 /* i */
         7: .line 293
            aload 0 /* node */
            iload 3 /* keyEnd */
            iload 4 /* i */
            iadd
            aaload
            checkcast java.lang.Object[]
            astore 0 /* node */
        end local 4 // int i
        end local 3 // int keyEnd
         8: .line 281
            goto 0
        end local 2 // java.lang.Object find
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] node
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        node  [Ljava/lang/Object;
            0    9     1  comparator  Ljava/util/Comparator<-TV;>;
            0    9     2        find  TV;
            1    8     3      keyEnd  I
            2    8     4           i  I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TV;>;TV;)TV;
    MethodParameters:
            Name  Flags
      node        
      comparator  
      find        

  public static <V> void replaceInSitu([], int, );
    descriptor: ([Ljava/lang/Object;ILjava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.Object[] tree
        start local 1 // int index
        start local 2 // java.lang.Object replace
         0: .line 304
            iload 1 /* index */
            ifge 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: iload 1 /* index */
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            if_icmplt 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: int
         3: iconst_0
      StackMap locals: java.lang.Object[] int java.lang.Object
      StackMap stack: int int
         4: ior
            ifeq 17
         5: .line 305
            new java.lang.IndexOutOfBoundsException
            dup
            new java.lang.StringBuilder
            dup
            iload 1 /* index */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " not in range [0.."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
            astore 3 /* sizeMap */
        start local 3 // int[] sizeMap
         7: .line 310
            aload 3 /* sizeMap */
            iload 1 /* index */
            invokestatic java.util.Arrays.binarySearch:([II)I
            istore 4 /* boundary */
        start local 4 // int boundary
         8: .line 311
            iload 4 /* boundary */
            iflt 12
         9: .line 314
            getstatic org.apache.cassandra.utils.btree.BTree.$assertionsDisabled:Z
            ifne 10
            iload 4 /* boundary */
            aload 3 /* sizeMap */
            arraylength
            iconst_1
            isub
            if_icmplt 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 315
      StackMap locals: int[] int
      StackMap stack:
            aload 0 /* tree */
            iload 4 /* boundary */
            aload 2 /* replace */
            aastore
        11: .line 316
            return
        12: .line 319
      StackMap locals:
      StackMap stack:
            iconst_m1
            iload 4 /* boundary */
            isub
            istore 4 /* boundary */
        13: .line 320
            iload 4 /* boundary */
            ifle 16
        14: .line 322
            getstatic org.apache.cassandra.utils.btree.BTree.$assertionsDisabled:Z
            ifne 15
            iload 4 /* boundary */
            aload 3 /* sizeMap */
            arraylength
            if_icmplt 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 323
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            iconst_1
            aload 3 /* sizeMap */
            iload 4 /* boundary */
            iconst_1
            isub
            iaload
            iadd
            isub
            istore 1 /* index */
        16: .line 325
      StackMap locals:
      StackMap stack:
            aload 0 /* tree */
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
            iload 4 /* boundary */
            iadd
            aaload
            checkcast java.lang.Object[]
            astore 0 /* tree */
        end local 4 // int boundary
        end local 3 // int[] sizeMap
        17: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 6
        18: .line 327
            getstatic org.apache.cassandra.utils.btree.BTree.$assertionsDisabled:Z
            ifne 19
            iload 1 /* index */
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getLeafKeyEnd:([Ljava/lang/Object;)I
            if_icmplt 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 328
      StackMap locals:
      StackMap stack:
            aload 0 /* tree */
            iload 1 /* index */
            aload 2 /* replace */
            aastore
        20: .line 329
            return
        end local 2 // java.lang.Object replace
        end local 1 // int index
        end local 0 // java.lang.Object[] tree
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   21     0      tree  [Ljava/lang/Object;
            0   21     1     index  I
            0   21     2   replace  TV;
            7   17     3   sizeMap  [I
            8   17     4  boundary  I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;ITV;)V
    MethodParameters:
         Name  Flags
      tree     
      index    
      replace  

  public static <V> void replaceInSitu([], java.util.Comparator<? super V>, V, );
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // java.lang.Object[] node
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object find
        start local 3 // java.lang.Object replace
         0: .line 339
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
            istore 4 /* keyEnd */
        start local 4 // int keyEnd
         1: .line 340
            aload 0 /* node */
            iconst_0
            iload 4 /* keyEnd */
            aload 2 /* find */
            aload 1 /* comparator */
            invokestatic java.util.Arrays.binarySearch:([Ljava/lang/Object;IILjava/lang/Object;Ljava/util/Comparator;)I
            istore 5 /* i */
        start local 5 // int i
         2: .line 342
            iload 5 /* i */
            iflt 6
         3: .line 344
            getstatic org.apache.cassandra.utils.btree.BTree.$assertionsDisabled:Z
            ifne 4
            aload 2 /* find */
            aload 0 /* node */
            iload 5 /* i */
            aaload
            if_acmpeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 345
      StackMap locals: int int
      StackMap stack:
            aload 0 /* node */
            iload 5 /* i */
            aload 3 /* replace */
            aastore
         5: .line 346
            return
         6: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 8
         7: .line 350
            new java.util.NoSuchElementException
            dup
            invokespecial java.util.NoSuchElementException.<init>:()V
            athrow
         8: .line 352
      StackMap locals:
      StackMap stack:
            iconst_m1
            iload 5 /* i */
            isub
            istore 5 /* i */
         9: .line 353
            aload 0 /* node */
            iload 4 /* keyEnd */
            iload 5 /* i */
            iadd
            aaload
            checkcast java.lang.Object[]
            astore 0 /* node */
        end local 5 // int i
        end local 4 // int keyEnd
        10: .line 337
            goto 0
        end local 3 // java.lang.Object replace
        end local 2 // java.lang.Object find
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] node
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        node  [Ljava/lang/Object;
            0   11     1  comparator  Ljava/util/Comparator<-TV;>;
            0   11     2        find  TV;
            0   11     3     replace  TV;
            1   10     4      keyEnd  I
            2   10     5           i  I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TV;>;TV;TV;)V
    MethodParameters:
            Name  Flags
      node        
      comparator  
      find        
      replace     

  public static <V> int findIndex([], java.util.Comparator<? super V>, );
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // java.lang.Object[] node
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object find
         0: .line 363
            iconst_0
            istore 3 /* lb */
        start local 3 // int lb
         1: .line 366
      StackMap locals: int
      StackMap stack:
            aload 0 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
            istore 4 /* keyEnd */
        start local 4 // int keyEnd
         2: .line 367
            aload 0 /* node */
            iconst_0
            iload 4 /* keyEnd */
            aload 2 /* find */
            aload 1 /* comparator */
            invokestatic java.util.Arrays.binarySearch:([Ljava/lang/Object;IILjava/lang/Object;Ljava/util/Comparator;)I
            istore 5 /* i */
        start local 5 // int i
         3: .line 368
            iload 5 /* i */
            iflt 4
            iconst_1
            goto 5
      StackMap locals: int int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 6 /* exact */
        start local 6 // boolean exact
         6: .line 370
            aload 0 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 10
         7: .line 371
            iload 6 /* exact */
            ifeq 8
            iload 3 /* lb */
            iload 5 /* i */
            iadd
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iload 5 /* i */
            iload 3 /* lb */
            isub
      StackMap locals:
      StackMap stack: int
         9: ireturn
        10: .line 373
      StackMap locals:
      StackMap stack:
            iload 6 /* exact */
            ifne 12
        11: .line 374
            iconst_m1
            iload 5 /* i */
            isub
            istore 5 /* i */
        12: .line 376
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
            astore 7 /* sizeMap */
        start local 7 // int[] sizeMap
        13: .line 377
            iload 6 /* exact */
            ifeq 15
        14: .line 378
            iload 3 /* lb */
            aload 7 /* sizeMap */
            iload 5 /* i */
            iaload
            iadd
            ireturn
        15: .line 379
      StackMap locals: int[]
      StackMap stack:
            iload 5 /* i */
            ifle 17
        16: .line 380
            iload 3 /* lb */
            aload 7 /* sizeMap */
            iload 5 /* i */
            iconst_1
            isub
            iaload
            iconst_1
            iadd
            iadd
            istore 3 /* lb */
        17: .line 382
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            iload 4 /* keyEnd */
            iload 5 /* i */
            iadd
            aaload
            checkcast java.lang.Object[]
            astore 0 /* node */
        end local 7 // int[] sizeMap
        end local 6 // boolean exact
        end local 5 // int i
        end local 4 // int keyEnd
        18: .line 364
            goto 1
        end local 3 // int lb
        end local 2 // java.lang.Object find
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] node
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        node  [Ljava/lang/Object;
            0   19     1  comparator  Ljava/util/Comparator<-TV;>;
            0   19     2        find  TV;
            1   19     3          lb  I
            2   18     4      keyEnd  I
            3   18     5           i  I
            6   18     6       exact  Z
           13   18     7     sizeMap  [I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TV;>;TV;)I
    MethodParameters:
            Name  Flags
      node        
      comparator  
      find        

  public static <V> V findByIndex([], );
    descriptor: ([Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.lang.Object[] tree
        start local 1 // int index
         0: .line 392
            iload 1 /* index */
            ifge 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: iload 1 /* index */
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            if_icmplt 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: int
         3: iconst_0
      StackMap locals: java.lang.Object[] int
      StackMap stack: int int
         4: ior
            ifeq 6
         5: .line 393
            new java.lang.IndexOutOfBoundsException
            dup
            new java.lang.StringBuilder
            dup
            iload 1 /* index */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " not in range [0.."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* tree */
            astore 2 /* node */
        start local 2 // java.lang.Object[] node
         7: .line 398
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 2 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 11
         8: .line 400
            aload 2 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getLeafKeyEnd:([Ljava/lang/Object;)I
            istore 3 /* keyEnd */
        start local 3 // int keyEnd
         9: .line 401
            getstatic org.apache.cassandra.utils.btree.BTree.$assertionsDisabled:Z
            ifne 10
            iload 1 /* index */
            iload 3 /* keyEnd */
            if_icmplt 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 402
      StackMap locals: int
      StackMap stack:
            aload 2 /* node */
            iload 1 /* index */
            aaload
            areturn
        end local 3 // int keyEnd
        11: .line 405
      StackMap locals:
      StackMap stack:
            aload 2 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
            astore 3 /* sizeMap */
        start local 3 // int[] sizeMap
        12: .line 406
            aload 3 /* sizeMap */
            iload 1 /* index */
            invokestatic java.util.Arrays.binarySearch:([II)I
            istore 4 /* boundary */
        start local 4 // int boundary
        13: .line 407
            iload 4 /* boundary */
            iflt 16
        14: .line 410
            getstatic org.apache.cassandra.utils.btree.BTree.$assertionsDisabled:Z
            ifne 15
            iload 4 /* boundary */
            aload 3 /* sizeMap */
            arraylength
            iconst_1
            isub
            if_icmplt 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 411
      StackMap locals: int[] int
      StackMap stack:
            aload 2 /* node */
            iload 4 /* boundary */
            aaload
            areturn
        16: .line 414
      StackMap locals:
      StackMap stack:
            iconst_m1
            iload 4 /* boundary */
            isub
            istore 4 /* boundary */
        17: .line 415
            iload 4 /* boundary */
            ifle 20
        18: .line 417
            getstatic org.apache.cassandra.utils.btree.BTree.$assertionsDisabled:Z
            ifne 19
            iload 4 /* boundary */
            aload 3 /* sizeMap */
            arraylength
            if_icmplt 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 418
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            iconst_1
            aload 3 /* sizeMap */
            iload 4 /* boundary */
            iconst_1
            isub
            iaload
            iadd
            isub
            istore 1 /* index */
        20: .line 420
      StackMap locals:
      StackMap stack:
            aload 2 /* node */
            aload 2 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
            iload 4 /* boundary */
            iadd
            aaload
            checkcast java.lang.Object[]
            astore 2 /* node */
        end local 4 // int boundary
        end local 3 // int[] sizeMap
        21: .line 396
            goto 7
        end local 2 // java.lang.Object[] node
        end local 1 // int index
        end local 0 // java.lang.Object[] tree
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      tree  [Ljava/lang/Object;
            0   22     1     index  I
            7   22     2      node  [Ljava/lang/Object;
            9   11     3    keyEnd  I
           12   21     3   sizeMap  [I
           13   21     4  boundary  I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;I)TV;
    MethodParameters:
       Name  Flags
      tree   
      index  

  public static <V> int lowerIndex([], java.util.Comparator<? super V>, );
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object find
         0: .line 433
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* find */
            invokestatic org.apache.cassandra.utils.btree.BTree.findIndex:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
            istore 3 /* i */
        start local 3 // int i
         1: .line 434
            iload 3 /* i */
            ifge 3
         2: .line 435
            iconst_m1
            iload 3 /* i */
            isub
            istore 3 /* i */
         3: .line 436
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            iconst_1
            isub
            ireturn
        end local 3 // int i
        end local 2 // java.lang.Object find
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0       btree  [Ljava/lang/Object;
            0    4     1  comparator  Ljava/util/Comparator<-TV;>;
            0    4     2        find  TV;
            1    4     3           i  I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TV;>;TV;)I
    MethodParameters:
            Name  Flags
      btree       
      comparator  
      find        

  public static <V> V lower([], java.util.Comparator<? super V>, );
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object find
         0: .line 441
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* find */
            invokestatic org.apache.cassandra.utils.btree.BTree.lowerIndex:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
            istore 3 /* i */
        start local 3 // int i
         1: .line 442
            iload 3 /* i */
            iflt 2
            aload 0 /* btree */
            iload 3 /* i */
            invokestatic org.apache.cassandra.utils.btree.BTree.findByIndex:([Ljava/lang/Object;I)Ljava/lang/Object;
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
         3: areturn
        end local 3 // int i
        end local 2 // java.lang.Object find
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0       btree  [Ljava/lang/Object;
            0    4     1  comparator  Ljava/util/Comparator<-TV;>;
            0    4     2        find  TV;
            1    4     3           i  I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TV;>;TV;)TV;
    MethodParameters:
            Name  Flags
      btree       
      comparator  
      find        

  public static <V> int floorIndex([], java.util.Comparator<? super V>, );
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object find
         0: .line 447
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* find */
            invokestatic org.apache.cassandra.utils.btree.BTree.findIndex:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
            istore 3 /* i */
        start local 3 // int i
         1: .line 448
            iload 3 /* i */
            ifge 3
         2: .line 449
            bipush -2
            iload 3 /* i */
            isub
            istore 3 /* i */
         3: .line 450
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            ireturn
        end local 3 // int i
        end local 2 // java.lang.Object find
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0       btree  [Ljava/lang/Object;
            0    4     1  comparator  Ljava/util/Comparator<-TV;>;
            0    4     2        find  TV;
            1    4     3           i  I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TV;>;TV;)I
    MethodParameters:
            Name  Flags
      btree       
      comparator  
      find        

  public static <V> V floor([], java.util.Comparator<? super V>, );
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object find
         0: .line 455
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* find */
            invokestatic org.apache.cassandra.utils.btree.BTree.floorIndex:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
            istore 3 /* i */
        start local 3 // int i
         1: .line 456
            iload 3 /* i */
            iflt 2
            aload 0 /* btree */
            iload 3 /* i */
            invokestatic org.apache.cassandra.utils.btree.BTree.findByIndex:([Ljava/lang/Object;I)Ljava/lang/Object;
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
         3: areturn
        end local 3 // int i
        end local 2 // java.lang.Object find
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0       btree  [Ljava/lang/Object;
            0    4     1  comparator  Ljava/util/Comparator<-TV;>;
            0    4     2        find  TV;
            1    4     3           i  I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TV;>;TV;)TV;
    MethodParameters:
            Name  Flags
      btree       
      comparator  
      find        

  public static <V> int higherIndex([], java.util.Comparator<? super V>, );
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object find
         0: .line 461
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* find */
            invokestatic org.apache.cassandra.utils.btree.BTree.findIndex:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
            istore 3 /* i */
        start local 3 // int i
         1: .line 462
            iload 3 /* i */
            ifge 2
            iconst_m1
            iload 3 /* i */
            isub
            istore 3 /* i */
            goto 3
         2: .line 463
      StackMap locals: int
      StackMap stack:
            iinc 3 /* i */ 1
         3: .line 464
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            ireturn
        end local 3 // int i
        end local 2 // java.lang.Object find
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0       btree  [Ljava/lang/Object;
            0    4     1  comparator  Ljava/util/Comparator<-TV;>;
            0    4     2        find  TV;
            1    4     3           i  I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TV;>;TV;)I
    MethodParameters:
            Name  Flags
      btree       
      comparator  
      find        

  public static <V> V higher([], java.util.Comparator<? super V>, );
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object find
         0: .line 469
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* find */
            invokestatic org.apache.cassandra.utils.btree.BTree.higherIndex:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
            istore 3 /* i */
        start local 3 // int i
         1: .line 470
            iload 3 /* i */
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            if_icmpge 2
            aload 0 /* btree */
            iload 3 /* i */
            invokestatic org.apache.cassandra.utils.btree.BTree.findByIndex:([Ljava/lang/Object;I)Ljava/lang/Object;
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
         3: areturn
        end local 3 // int i
        end local 2 // java.lang.Object find
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0       btree  [Ljava/lang/Object;
            0    4     1  comparator  Ljava/util/Comparator<-TV;>;
            0    4     2        find  TV;
            1    4     3           i  I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TV;>;TV;)TV;
    MethodParameters:
            Name  Flags
      btree       
      comparator  
      find        

  public static <V> int ceilIndex([], java.util.Comparator<? super V>, );
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object find
         0: .line 475
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* find */
            invokestatic org.apache.cassandra.utils.btree.BTree.findIndex:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
            istore 3 /* i */
        start local 3 // int i
         1: .line 476
            iload 3 /* i */
            ifge 3
         2: .line 477
            iconst_m1
            iload 3 /* i */
            isub
            istore 3 /* i */
         3: .line 478
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            ireturn
        end local 3 // int i
        end local 2 // java.lang.Object find
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0       btree  [Ljava/lang/Object;
            0    4     1  comparator  Ljava/util/Comparator<-TV;>;
            0    4     2        find  TV;
            1    4     3           i  I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TV;>;TV;)I
    MethodParameters:
            Name  Flags
      btree       
      comparator  
      find        

  public static <V> V ceil([], java.util.Comparator<? super V>, );
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator comparator
        start local 2 // java.lang.Object find
         0: .line 483
            aload 0 /* btree */
            aload 1 /* comparator */
            aload 2 /* find */
            invokestatic org.apache.cassandra.utils.btree.BTree.ceilIndex:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)I
            istore 3 /* i */
        start local 3 // int i
         1: .line 484
            iload 3 /* i */
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            if_icmpge 2
            aload 0 /* btree */
            iload 3 /* i */
            invokestatic org.apache.cassandra.utils.btree.BTree.findByIndex:([Ljava/lang/Object;I)Ljava/lang/Object;
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
         3: areturn
        end local 3 // int i
        end local 2 // java.lang.Object find
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0       btree  [Ljava/lang/Object;
            0    4     1  comparator  Ljava/util/Comparator<-TV;>;
            0    4     2        find  TV;
            1    4     3           i  I
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TV;>;TV;)TV;
    MethodParameters:
            Name  Flags
      btree       
      comparator  
      find        

  static int getKeyEnd(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object[] node
         0: .line 492
            aload 0 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 2
         1: .line 493
            aload 0 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getLeafKeyEnd:([Ljava/lang/Object;)I
            ireturn
         2: .line 495
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getBranchKeyEnd:([Ljava/lang/Object;)I
            ireturn
        end local 0 // java.lang.Object[] node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  node  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      node  

  static int getLeafKeyEnd(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Object[] node
         0: .line 501
            aload 0 /* node */
            arraylength
            istore 1 /* len */
        start local 1 // int len
         1: .line 502
            aload 0 /* node */
            iload 1 /* len */
            iconst_1
            isub
            aaload
            ifnonnull 2
            iload 1 /* len */
            iconst_1
            isub
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iload 1 /* len */
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // int len
        end local 0 // java.lang.Object[] node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  node  [Ljava/lang/Object;
            1    4     1   len  I
    MethodParameters:
      Name  Flags
      node  

  static int getBranchKeyEnd(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] branchNode
         0: .line 509
            aload 0 /* branchNode */
            arraylength
            iconst_2
            idiv
            iconst_1
            isub
            ireturn
        end local 0 // java.lang.Object[] branchNode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  branchNode  [Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      branchNode  

  static int getChildStart(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object[] branchNode
         0: .line 517
            aload 0 /* branchNode */
            invokestatic org.apache.cassandra.utils.btree.BTree.getBranchKeyEnd:([Ljava/lang/Object;)I
            ireturn
        end local 0 // java.lang.Object[] branchNode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  branchNode  [Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      branchNode  

  static int getChildEnd(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] branchNode
         0: .line 525
            aload 0 /* branchNode */
            arraylength
            iconst_1
            isub
            ireturn
        end local 0 // java.lang.Object[] branchNode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  branchNode  [Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      branchNode  

  static int getChildCount(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] branchNode
         0: .line 533
            aload 0 /* branchNode */
            arraylength
            iconst_2
            idiv
            ireturn
        end local 0 // java.lang.Object[] branchNode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  branchNode  [Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      branchNode  

  static int[] getSizeMap(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)[I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] branchNode
         0: .line 541
            aload 0 /* branchNode */
            aload 0 /* branchNode */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildEnd:([Ljava/lang/Object;)I
            aaload
            checkcast int[]
            areturn
        end local 0 // java.lang.Object[] branchNode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  branchNode  [Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      branchNode  

  static int lookupSizeMap(java.lang.Object[], int);
    descriptor: ([Ljava/lang/Object;I)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object[] branchNode
        start local 1 // int index
         0: .line 549
            aload 0 /* branchNode */
            invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
            iload 1 /* index */
            iaload
            ireturn
        end local 1 // int index
        end local 0 // java.lang.Object[] branchNode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  branchNode  [Ljava/lang/Object;
            0    1     1       index  I
    MethodParameters:
            Name  Flags
      branchNode  
      index       

  public static int size(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Object[] tree
         0: .line 555
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 2
         1: .line 556
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getLeafKeyEnd:([Ljava/lang/Object;)I
            ireturn
         2: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* tree */
            arraylength
            istore 1 /* length */
        start local 1 // int length
         3: .line 561
            aload 0 /* tree */
            iload 1 /* length */
            iconst_1
            isub
            aaload
            checkcast int[]
            iload 1 /* length */
            iconst_2
            idiv
            iconst_1
            isub
            iaload
            ireturn
        end local 1 // int length
        end local 0 // java.lang.Object[] tree
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    tree  [Ljava/lang/Object;
            3    4     1  length  I
    MethodParameters:
      Name  Flags
      tree  

  public static long sizeOfStructureOnHeap(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.Object[] tree
         0: .line 566
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.ObjectSizes.sizeOfArray:([Ljava/lang/Object;)J
            lstore 1 /* size */
        start local 1 // long size
         1: .line 567
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 3
         2: .line 568
            lload 1 /* size */
            lreturn
         3: .line 569
      StackMap locals: long
      StackMap stack:
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
            istore 3 /* i */
        start local 3 // int i
         4: goto 7
         5: .line 570
      StackMap locals: int
      StackMap stack:
            lload 1 /* size */
            aload 0 /* tree */
            iload 3 /* i */
            aaload
            checkcast java.lang.Object[]
            invokestatic org.apache.cassandra.utils.btree.BTree.sizeOfStructureOnHeap:([Ljava/lang/Object;)J
            ladd
            lstore 1 /* size */
         6: .line 569
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildEnd:([Ljava/lang/Object;)I
            if_icmplt 5
        end local 3 // int i
         8: .line 571
            lload 1 /* size */
            lreturn
        end local 1 // long size
        end local 0 // java.lang.Object[] tree
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  tree  [Ljava/lang/Object;
            1    9     1  size  J
            4    8     3     i  I
    MethodParameters:
      Name  Flags
      tree  

  static boolean isLeaf(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] node
         0: .line 577
            aload 0 /* node */
            arraylength
            iconst_1
            iand
            iconst_1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Object[] node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  node  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      node  

  public static boolean isEmpty(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] tree
         0: .line 582
            aload 0 /* tree */
            getstatic org.apache.cassandra.utils.btree.BTree.EMPTY_LEAF:[Ljava/lang/Object;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Object[] tree
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  tree  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      tree  

  public static int depth(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Object[] tree
         0: .line 587
            iconst_1
            istore 1 /* depth */
        start local 1 // int depth
         1: .line 588
            goto 4
         2: .line 590
      StackMap locals: int
      StackMap stack:
            iinc 1 /* depth */ 1
         3: .line 591
            aload 0 /* tree */
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
            aaload
            checkcast java.lang.Object[]
            astore 0 /* tree */
         4: .line 588
      StackMap locals:
      StackMap stack:
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 2
         5: .line 593
            iload 1 /* depth */
            ireturn
        end local 1 // int depth
        end local 0 // java.lang.Object[] tree
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   tree  [Ljava/lang/Object;
            1    6     1  depth  I
    MethodParameters:
      Name  Flags
      tree  

  public static int toArray(java.lang.Object[], java.lang.Object[], int);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.Object[] tree
        start local 1 // java.lang.Object[] target
        start local 2 // int targetOffset
         0: .line 605
            aload 0 /* tree */
            iconst_0
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            aload 1 /* target */
            iload 2 /* targetOffset */
            invokestatic org.apache.cassandra.utils.btree.BTree.toArray:([Ljava/lang/Object;II[Ljava/lang/Object;I)I
            ireturn
        end local 2 // int targetOffset
        end local 1 // java.lang.Object[] target
        end local 0 // java.lang.Object[] tree
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          tree  [Ljava/lang/Object;
            0    1     1        target  [Ljava/lang/Object;
            0    1     2  targetOffset  I
    MethodParameters:
              Name  Flags
      tree          
      target        
      targetOffset  

  public static int toArray(java.lang.Object[], int, int, java.lang.Object[], int);
    descriptor: ([Ljava/lang/Object;II[Ljava/lang/Object;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=5
        start local 0 // java.lang.Object[] tree
        start local 1 // int treeStart
        start local 2 // int treeEnd
        start local 3 // java.lang.Object[] target
        start local 4 // int targetOffset
         0: .line 609
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 4
         1: .line 611
            iload 2 /* treeEnd */
            iload 1 /* treeStart */
            isub
            istore 5 /* count */
        start local 5 // int count
         2: .line 612
            aload 0 /* tree */
            iload 1 /* treeStart */
            aload 3 /* target */
            iload 4 /* targetOffset */
            iload 5 /* count */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 613
            iload 5 /* count */
            ireturn
        end local 5 // int count
         4: .line 616
      StackMap locals:
      StackMap stack:
            iload 4 /* targetOffset */
            istore 5 /* newTargetOffset */
        start local 5 // int newTargetOffset
         5: .line 617
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildCount:([Ljava/lang/Object;)I
            istore 6 /* childCount */
        start local 6 // int childCount
         6: .line 618
            aload 0 /* tree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
            istore 7 /* childOffset */
        start local 7 // int childOffset
         7: .line 619
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         8: goto 18
         9: .line 621
      StackMap locals: java.lang.Object[] int int java.lang.Object[] int int int int int
      StackMap stack:
            aload 0 /* tree */
            iload 8 /* i */
            invokestatic org.apache.cassandra.utils.btree.BTree.treeIndexOffsetOfChild:([Ljava/lang/Object;I)I
            istore 9 /* childStart */
        start local 9 // int childStart
        10: .line 622
            aload 0 /* tree */
            iload 8 /* i */
            invokestatic org.apache.cassandra.utils.btree.BTree.treeIndexOfBranchKey:([Ljava/lang/Object;I)I
            istore 10 /* childEnd */
        start local 10 // int childEnd
        11: .line 623
            iload 9 /* childStart */
            iload 2 /* treeEnd */
            if_icmpgt 17
            iload 10 /* childEnd */
            iload 1 /* treeStart */
            if_icmplt 17
        12: .line 625
            iload 5 /* newTargetOffset */
            aload 0 /* tree */
            iload 7 /* childOffset */
            iload 8 /* i */
            iadd
            aaload
            checkcast java.lang.Object[]
            iconst_0
            iload 1 /* treeStart */
            iload 9 /* childStart */
            isub
            invokestatic java.lang.Math.max:(II)I
            iload 10 /* childEnd */
            iload 2 /* treeEnd */
            invokestatic java.lang.Math.min:(II)I
            iload 9 /* childStart */
            isub
        13: .line 626
            aload 3 /* target */
            iload 5 /* newTargetOffset */
        14: .line 625
            invokestatic org.apache.cassandra.utils.btree.BTree.toArray:([Ljava/lang/Object;II[Ljava/lang/Object;I)I
            iadd
            istore 5 /* newTargetOffset */
        15: .line 627
            iload 1 /* treeStart */
            iload 10 /* childEnd */
            if_icmpgt 17
            iload 2 /* treeEnd */
            iload 10 /* childEnd */
            if_icmple 17
        16: .line 628
            aload 3 /* target */
            iload 5 /* newTargetOffset */
            iinc 5 /* newTargetOffset */ 1
            aload 0 /* tree */
            iload 8 /* i */
            aaload
            aastore
        end local 10 // int childEnd
        end local 9 // int childStart
        17: .line 619
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 8 /* i */
            iload 6 /* childCount */
            if_icmplt 9
        end local 8 // int i
        19: .line 631
            iload 5 /* newTargetOffset */
            iload 4 /* targetOffset */
            isub
            ireturn
        end local 7 // int childOffset
        end local 6 // int childCount
        end local 5 // int newTargetOffset
        end local 4 // int targetOffset
        end local 3 // java.lang.Object[] target
        end local 2 // int treeEnd
        end local 1 // int treeStart
        end local 0 // java.lang.Object[] tree
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0             tree  [Ljava/lang/Object;
            0   20     1        treeStart  I
            0   20     2          treeEnd  I
            0   20     3           target  [Ljava/lang/Object;
            0   20     4     targetOffset  I
            2    4     5            count  I
            5   20     5  newTargetOffset  I
            6   20     6       childCount  I
            7   20     7      childOffset  I
            8   19     8                i  I
           10   17     9       childStart  I
           11   17    10         childEnd  I
    MethodParameters:
              Name  Flags
      tree          
      treeStart     
      treeEnd       
      target        
      targetOffset  

  public static <V> [] transformAndFilter([], com.google.common.base.Function<? super V, ? extends V>);
    descriptor: ([Ljava/lang/Object;Lcom/google/common/base/Function;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.lang.Object[] btree
        start local 1 // com.google.common.base.Function function
         0: .line 661
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.isEmpty:([Ljava/lang/Object;)Z
            ifeq 2
         1: .line 662
            aload 0 /* btree */
            areturn
         2: .line 665
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.utils.btree.BTree$FiltrationTracker
            dup
            aload 1 /* function */
            invokespecial org.apache.cassandra.utils.btree.BTree$FiltrationTracker.<init>:(Lcom/google/common/base/Function;)V
            astore 2 /* wrapped */
        start local 2 // org.apache.cassandra.utils.btree.BTree$FiltrationTracker wrapped
         3: .line 666
            aload 0 /* btree */
            aload 2 /* wrapped */
            invokestatic org.apache.cassandra.utils.btree.BTree.transformAndFilter:([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$FiltrationTracker;)[Ljava/lang/Object;
            astore 3 /* result */
        start local 3 // java.lang.Object[] result
         4: .line 667
            aload 2 /* wrapped */
            getfield org.apache.cassandra.utils.btree.BTree$FiltrationTracker.failed:Z
            ifne 6
         5: .line 668
            aload 3 /* result */
            areturn
         6: .line 671
      StackMap locals: org.apache.cassandra.utils.btree.BTree$FiltrationTracker java.lang.Object[]
      StackMap stack:
            aload 3 /* result */
            iconst_0
            aload 2 /* wrapped */
            getfield org.apache.cassandra.utils.btree.BTree$FiltrationTracker.index:I
            iconst_1
            isub
            getstatic org.apache.cassandra.utils.btree.BTree$Dir.ASC:Lorg/apache/cassandra/utils/btree/BTree$Dir;
            invokestatic org.apache.cassandra.utils.btree.BTree.iterable:([Ljava/lang/Object;IILorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/lang/Iterable;
            astore 4 /* head */
        start local 4 // java.lang.Iterable head
         7: .line 673
            aload 0 /* btree */
            aload 2 /* wrapped */
            getfield org.apache.cassandra.utils.btree.BTree$FiltrationTracker.index:I
            iconst_1
            iadd
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            iconst_1
            isub
            getstatic org.apache.cassandra.utils.btree.BTree$Dir.ASC:Lorg/apache/cassandra/utils/btree/BTree$Dir;
            invokestatic org.apache.cassandra.utils.btree.BTree.iterable:([Ljava/lang/Object;IILorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/lang/Iterable;
            astore 5 /* remainder */
        start local 5 // java.lang.Iterable remainder
         8: .line 674
            aload 5 /* remainder */
            aload 1 /* function */
            invokestatic com.google.common.collect.Iterables.transform:(Ljava/lang/Iterable;Lcom/google/common/base/Function;)Ljava/lang/Iterable;
            invokedynamic apply()Lcom/google/common/base/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/apache/cassandra/utils/btree/BTree.lambda$2(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/Object;)Z
            invokestatic com.google.common.collect.Iterables.filter:(Ljava/lang/Iterable;Lcom/google/common/base/Predicate;)Ljava/lang/Iterable;
            astore 5 /* remainder */
         9: .line 675
            aload 4 /* head */
            aload 5 /* remainder */
            invokestatic com.google.common.collect.Iterables.concat:(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/lang/Iterable;
            astore 6 /* build */
        start local 6 // java.lang.Iterable build
        10: .line 677
            aload 6 /* build */
            iconst_m1
            invokestatic org.apache.cassandra.utils.btree.UpdateFunction.noOp:()Lorg/apache/cassandra/utils/btree/UpdateFunction;
            invokestatic org.apache.cassandra.utils.btree.BTree.buildInternal:(Ljava/lang/Iterable;ILorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
            areturn
        end local 6 // java.lang.Iterable build
        end local 5 // java.lang.Iterable remainder
        end local 4 // java.lang.Iterable head
        end local 3 // java.lang.Object[] result
        end local 2 // org.apache.cassandra.utils.btree.BTree$FiltrationTracker wrapped
        end local 1 // com.google.common.base.Function function
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0      btree  [Ljava/lang/Object;
            0   11     1   function  Lcom/google/common/base/Function<-TV;+TV;>;
            3   11     2    wrapped  Lorg/apache/cassandra/utils/btree/BTree$FiltrationTracker<TV;>;
            4   11     3     result  [Ljava/lang/Object;
            7   11     4       head  Ljava/lang/Iterable<TV;>;
            8   11     5  remainder  Ljava/lang/Iterable<TV;>;
           10   11     6      build  Ljava/lang/Iterable<TV;>;
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Lcom/google/common/base/Function<-TV;+TV;>;)[Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      btree     
      function  

  private static <V> [] transformAndFilter([], org.apache.cassandra.utils.btree.BTree$FiltrationTracker<V>);
    descriptor: ([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$FiltrationTracker;)[Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // java.lang.Object[] btree
        start local 1 // org.apache.cassandra.utils.btree.BTree$FiltrationTracker function
         0: .line 682
            aload 0 /* btree */
            astore 2 /* result */
        start local 2 // java.lang.Object[] result
         1: .line 683
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            istore 3 /* isLeaf */
        start local 3 // boolean isLeaf
         2: .line 684
            iload 3 /* isLeaf */
            ifeq 3
            ldc 2147483647
            goto 4
      StackMap locals: java.lang.Object[] int
      StackMap stack:
         3: aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* childOffset */
        start local 4 // int childOffset
         5: .line 685
            iload 3 /* isLeaf */
            ifeq 6
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getLeafKeyEnd:([Ljava/lang/Object;)I
            goto 7
      StackMap locals: int
      StackMap stack:
         6: aload 0 /* btree */
            arraylength
            iconst_1
            isub
      StackMap locals:
      StackMap stack: int
         7: istore 5 /* limit */
        start local 5 // int limit
         8: .line 686
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         9: goto 26
        10: .line 689
      StackMap locals: int int
      StackMap stack:
            iload 3 /* isLeaf */
            ifeq 11
            iload 6 /* i */
            goto 14
      StackMap locals:
      StackMap stack:
        11: iload 6 /* i */
            iconst_2
            idiv
            iload 6 /* i */
            iconst_2
            irem
            ifne 12
            iload 4 /* childOffset */
            goto 13
      StackMap locals:
      StackMap stack: int
        12: iconst_0
      StackMap locals: java.lang.Object[] org.apache.cassandra.utils.btree.BTree$FiltrationTracker java.lang.Object[] int int int int
      StackMap stack: int int
        13: iadd
      StackMap locals:
      StackMap stack: int
        14: istore 7 /* idx */
        start local 7 // int idx
        15: .line 690
            aload 0 /* btree */
            iload 7 /* idx */
            aaload
            astore 8 /* current */
        start local 8 // java.lang.Object current
        16: .line 691
            iload 7 /* idx */
            iload 4 /* childOffset */
            if_icmpge 17
            aload 1 /* function */
            aload 8 /* current */
            invokevirtual org.apache.cassandra.utils.btree.BTree$FiltrationTracker.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            goto 18
      StackMap locals: int java.lang.Object
      StackMap stack:
        17: aload 8 /* current */
            checkcast java.lang.Object[]
            aload 1 /* function */
            invokestatic org.apache.cassandra.utils.btree.BTree.transformAndFilter:([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$FiltrationTracker;)[Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
        18: astore 9 /* updated */
        start local 9 // java.lang.Object updated
        19: .line 692
            aload 9 /* updated */
            aload 8 /* current */
            if_acmpeq 23
        20: .line 694
            aload 2 /* result */
            aload 0 /* btree */
            if_acmpne 22
        21: .line 695
            aload 0 /* btree */
            invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 2 /* result */
        22: .line 696
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* result */
            iload 7 /* idx */
            aload 9 /* updated */
            aastore
        23: .line 698
      StackMap locals:
      StackMap stack:
            aload 1 /* function */
            getfield org.apache.cassandra.utils.btree.BTree$FiltrationTracker.failed:Z
            ifeq 25
        24: .line 699
            aload 2 /* result */
            areturn
        end local 9 // java.lang.Object updated
        end local 8 // java.lang.Object current
        end local 7 // int idx
        25: .line 686
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 6 /* i */
            iload 5 /* limit */
            if_icmplt 10
        end local 6 // int i
        27: .line 701
            aload 2 /* result */
            areturn
        end local 5 // int limit
        end local 4 // int childOffset
        end local 3 // boolean isLeaf
        end local 2 // java.lang.Object[] result
        end local 1 // org.apache.cassandra.utils.btree.BTree$FiltrationTracker function
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   28     0        btree  [Ljava/lang/Object;
            0   28     1     function  Lorg/apache/cassandra/utils/btree/BTree$FiltrationTracker<TV;>;
            1   28     2       result  [Ljava/lang/Object;
            2   28     3       isLeaf  Z
            5   28     4  childOffset  I
            8   28     5        limit  I
            9   27     6            i  I
           15   25     7          idx  I
           16   25     8      current  Ljava/lang/Object;
           19   25     9      updated  Ljava/lang/Object;
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$FiltrationTracker<TV;>;)[Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      btree     
      function  

  public static boolean equals(java.lang.Object[], java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object[] a
        start local 1 // java.lang.Object[] b
         0: .line 706
            aload 0 /* a */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            aload 1 /* b */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            if_icmpne 1
            aload 0 /* a */
            invokestatic org.apache.cassandra.utils.btree.BTree.iterator:([Ljava/lang/Object;)Ljava/util/Iterator;
            aload 1 /* b */
            invokestatic org.apache.cassandra.utils.btree.BTree.iterator:([Ljava/lang/Object;)Ljava/util/Iterator;
            invokestatic com.google.common.collect.Iterators.elementsEqual:(Ljava/util/Iterator;Ljava/util/Iterator;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object[] b
        end local 0 // java.lang.Object[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [Ljava/lang/Object;
            0    2     1     b  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      a     
      b     

  public static int hashCode(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.Object[] btree
         0: .line 713
            iconst_1
            istore 1 /* result */
        start local 1 // int result
         1: .line 714
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.iterable:([Ljava/lang/Object;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.lang.Object[] int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* v */
        start local 2 // java.lang.Object v
         3: .line 715
            bipush 31
            iload 1 /* result */
            imul
            aload 2 /* v */
            invokestatic java.util.Objects.hashCode:(Ljava/lang/Object;)I
            iadd
            istore 1 /* result */
        end local 2 // java.lang.Object v
         4: .line 714
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 716
            iload 1 /* result */
            ireturn
        end local 1 // int result
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0   btree  [Ljava/lang/Object;
            1    6     1  result  I
            3    4     2       v  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      btree  

  public static int treeIndexOfKey(java.lang.Object[], int);
    descriptor: ([Ljava/lang/Object;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Object[] root
        start local 1 // int keyIndex
         0: .line 730
            aload 0 /* root */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 2
         1: .line 731
            iload 1 /* keyIndex */
            ireturn
         2: .line 732
      StackMap locals:
      StackMap stack:
            aload 0 /* root */
            invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
            astore 2 /* sizeMap */
        start local 2 // int[] sizeMap
         3: .line 733
            iload 1 /* keyIndex */
            iflt 4
            iconst_1
            goto 5
      StackMap locals: int[]
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: iload 1 /* keyIndex */
            aload 2 /* sizeMap */
            arraylength
            if_icmpge 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack: int
         6: iconst_0
      StackMap locals: java.lang.Object[] int int[]
      StackMap stack: int int
         7: iand
            ifeq 9
         8: .line 734
            aload 2 /* sizeMap */
            iload 1 /* keyIndex */
            iaload
            ireturn
         9: .line 736
      StackMap locals:
      StackMap stack:
            iload 1 /* keyIndex */
            ifge 11
        10: .line 737
            iconst_m1
            ireturn
        11: .line 738
      StackMap locals:
      StackMap stack:
            aload 2 /* sizeMap */
            iload 1 /* keyIndex */
            iconst_1
            isub
            iaload
            iconst_1
            iadd
            ireturn
        end local 2 // int[] sizeMap
        end local 1 // int keyIndex
        end local 0 // java.lang.Object[] root
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      root  [Ljava/lang/Object;
            0   12     1  keyIndex  I
            3   12     2   sizeMap  [I
    MethodParameters:
          Name  Flags
      root      
      keyIndex  

  public static int treeIndexOfLeafKey(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int keyIndex
         0: .line 747
            iload 0 /* keyIndex */
            ireturn
        end local 0 // int keyIndex
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  keyIndex  I
    MethodParameters:
          Name  Flags
      keyIndex  

  public static int treeIndexOfBranchKey(java.lang.Object[], int);
    descriptor: ([Ljava/lang/Object;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object[] root
        start local 1 // int keyIndex
         0: .line 757
            aload 0 /* root */
            iload 1 /* keyIndex */
            invokestatic org.apache.cassandra.utils.btree.BTree.lookupSizeMap:([Ljava/lang/Object;I)I
            ireturn
        end local 1 // int keyIndex
        end local 0 // java.lang.Object[] root
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      root  [Ljava/lang/Object;
            0    1     1  keyIndex  I
    MethodParameters:
          Name  Flags
      root      
      keyIndex  

  public static int treeIndexOffsetOfChild(java.lang.Object[], int);
    descriptor: ([Ljava/lang/Object;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Object[] root
        start local 1 // int childIndex
         0: .line 767
            iload 1 /* childIndex */
            ifne 2
         1: .line 768
            iconst_0
            ireturn
         2: .line 769
      StackMap locals:
      StackMap stack:
            iconst_1
            aload 0 /* root */
            iload 1 /* childIndex */
            iconst_1
            isub
            invokestatic org.apache.cassandra.utils.btree.BTree.lookupSizeMap:([Ljava/lang/Object;I)I
            iadd
            ireturn
        end local 1 // int childIndex
        end local 0 // java.lang.Object[] root
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        root  [Ljava/lang/Object;
            0    3     1  childIndex  I
    MethodParameters:
            Name  Flags
      root        
      childIndex  

  public static <V> org.apache.cassandra.utils.btree.BTree$Builder<V> builder(java.util.Comparator<? super V>);
    descriptor: (Ljava/util/Comparator;)Lorg/apache/cassandra/utils/btree/BTree$Builder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Comparator comparator
         0: .line 774
            new org.apache.cassandra.utils.btree.BTree$Builder
            dup
            aload 0 /* comparator */
            invokespecial org.apache.cassandra.utils.btree.BTree$Builder.<init>:(Ljava/util/Comparator;)V
            areturn
        end local 0 // java.util.Comparator comparator
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  comparator  Ljava/util/Comparator<-TV;>;
    Signature: <V:Ljava/lang/Object;>(Ljava/util/Comparator<-TV;>;)Lorg/apache/cassandra/utils/btree/BTree$Builder<TV;>;
    MethodParameters:
            Name  Flags
      comparator  

  public static <V> org.apache.cassandra.utils.btree.BTree$Builder<V> builder(java.util.Comparator<? super V>, int);
    descriptor: (Ljava/util/Comparator;I)Lorg/apache/cassandra/utils/btree/BTree$Builder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.Comparator comparator
        start local 1 // int initialCapacity
         0: .line 779
            new org.apache.cassandra.utils.btree.BTree$Builder
            dup
            aload 0 /* comparator */
            iload 1 /* initialCapacity */
            invokespecial org.apache.cassandra.utils.btree.BTree$Builder.<init>:(Ljava/util/Comparator;I)V
            areturn
        end local 1 // int initialCapacity
        end local 0 // java.util.Comparator comparator
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0       comparator  Ljava/util/Comparator<-TV;>;
            0    1     1  initialCapacity  I
    Signature: <V:Ljava/lang/Object;>(Ljava/util/Comparator<-TV;>;I)Lorg/apache/cassandra/utils/btree/BTree$Builder<TV;>;
    MethodParameters:
                 Name  Flags
      comparator       
      initialCapacity  

  static <V> int compare(java.util.Comparator<V>, , );
    descriptor: (Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.util.Comparator cmp
        start local 1 // java.lang.Object a
        start local 2 // java.lang.Object b
         0: .line 1099
            aload 1 /* a */
            aload 2 /* b */
            if_acmpne 2
         1: .line 1100
            iconst_0
            ireturn
         2: .line 1101
      StackMap locals:
      StackMap stack:
            aload 1 /* a */
            getstatic org.apache.cassandra.utils.btree.BTree.NEGATIVE_INFINITY:Ljava/lang/Object;
            if_acmpne 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: aload 2 /* b */
            getstatic org.apache.cassandra.utils.btree.BTree.POSITIVE_INFINITY:Ljava/lang/Object;
            if_acmpne 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_0
      StackMap locals: java.util.Comparator java.lang.Object java.lang.Object
      StackMap stack: int int
         6: ior
            ifeq 8
         7: .line 1102
            iconst_m1
            ireturn
         8: .line 1103
      StackMap locals:
      StackMap stack:
            aload 2 /* b */
            getstatic org.apache.cassandra.utils.btree.BTree.NEGATIVE_INFINITY:Ljava/lang/Object;
            if_acmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: aload 1 /* a */
            getstatic org.apache.cassandra.utils.btree.BTree.POSITIVE_INFINITY:Ljava/lang/Object;
            if_acmpne 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack: int
        11: iconst_0
      StackMap locals: java.util.Comparator java.lang.Object java.lang.Object
      StackMap stack: int int
        12: ior
            ifeq 14
        13: .line 1104
            iconst_1
            ireturn
        14: .line 1105
      StackMap locals:
      StackMap stack:
            aload 0 /* cmp */
            aload 1 /* a */
            aload 2 /* b */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ireturn
        end local 2 // java.lang.Object b
        end local 1 // java.lang.Object a
        end local 0 // java.util.Comparator cmp
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0   cmp  Ljava/util/Comparator<TV;>;
            0   15     1     a  Ljava/lang/Object;
            0   15     2     b  Ljava/lang/Object;
    Signature: <V:Ljava/lang/Object;>(Ljava/util/Comparator<TV;>;Ljava/lang/Object;Ljava/lang/Object;)I
    MethodParameters:
      Name  Flags
      cmp   
      a     
      b     

  public static boolean isWellFormed([], java.util.Comparator<? extends java.lang.Object>);
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.Comparator cmp
         0: .line 1113
            aload 1 /* cmp */
            aload 0 /* btree */
            iconst_1
            getstatic org.apache.cassandra.utils.btree.BTree.NEGATIVE_INFINITY:Ljava/lang/Object;
            getstatic org.apache.cassandra.utils.btree.BTree.POSITIVE_INFINITY:Ljava/lang/Object;
            invokestatic org.apache.cassandra.utils.btree.BTree.isWellFormed:(Ljava/util/Comparator;[Ljava/lang/Object;ZLjava/lang/Object;Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.util.Comparator cmp
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  btree  [Ljava/lang/Object;
            0    1     1    cmp  Ljava/util/Comparator<+Ljava/lang/Object;>;
    Signature: ([Ljava/lang/Object;Ljava/util/Comparator<+Ljava/lang/Object;>;)Z
    MethodParameters:
       Name  Flags
      btree  
      cmp    

  private static boolean isWellFormed(java.util.Comparator<?>, [], boolean, , );
    descriptor: (Ljava/util/Comparator;[Ljava/lang/Object;ZLjava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=12, args_size=5
        start local 0 // java.util.Comparator cmp
        start local 1 // java.lang.Object[] node
        start local 2 // boolean isRoot
        start local 3 // java.lang.Object min
        start local 4 // java.lang.Object max
         0: .line 1118
            aload 0 /* cmp */
            ifnull 2
            aload 0 /* cmp */
            aload 1 /* node */
            aload 3 /* min */
            aload 4 /* max */
            invokestatic org.apache.cassandra.utils.btree.BTree.isNodeWellFormed:(Ljava/util/Comparator;[Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 2
         1: .line 1119
            iconst_0
            ireturn
         2: .line 1121
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 8
         3: .line 1123
            iload 2 /* isRoot */
            ifeq 6
         4: .line 1124
            aload 1 /* node */
            arraylength
            getstatic org.apache.cassandra.utils.btree.BTree.FAN_FACTOR:I
            iconst_1
            iadd
            if_icmpgt 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
         6: .line 1125
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            arraylength
            getstatic org.apache.cassandra.utils.btree.BTree.FAN_FACTOR:I
            iconst_2
            idiv
            if_icmplt 7
            aload 1 /* node */
            arraylength
            getstatic org.apache.cassandra.utils.btree.BTree.FAN_FACTOR:I
            iconst_1
            iadd
            if_icmpgt 7
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
         8: .line 1128
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getBranchKeyEnd:([Ljava/lang/Object;)I
            istore 5 /* keyCount */
        start local 5 // int keyCount
         9: .line 1129
            iload 2 /* isRoot */
            ifne 10
            iload 5 /* keyCount */
            getstatic org.apache.cassandra.utils.btree.BTree.FAN_FACTOR:I
            iconst_2
            idiv
            if_icmplt 11
      StackMap locals: int
      StackMap stack:
        10: iload 5 /* keyCount */
            getstatic org.apache.cassandra.utils.btree.BTree.FAN_FACTOR:I
            iconst_1
            iadd
            if_icmple 12
        11: .line 1130
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        12: .line 1132
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* type */
        start local 6 // int type
        13: .line 1133
            iconst_m1
            istore 7 /* size */
        start local 7 // int size
        14: .line 1134
            aload 1 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
            astore 8 /* sizeMap */
        start local 8 // int[] sizeMap
        15: .line 1136
            aload 1 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
            istore 9 /* i */
        start local 9 // int i
        16: goto 31
        17: .line 1138
      StackMap locals: java.util.Comparator java.lang.Object[] int java.lang.Object java.lang.Object int int int int[] int
      StackMap stack:
            aload 1 /* node */
            iload 9 /* i */
            aaload
            checkcast java.lang.Object[]
            astore 10 /* child */
        start local 10 // java.lang.Object[] child
        18: .line 1139
            iload 7 /* size */
            aload 10 /* child */
            invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
            iconst_1
            iadd
            iadd
            istore 7 /* size */
        19: .line 1140
            aload 8 /* sizeMap */
            iload 9 /* i */
            aload 1 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
            isub
            iaload
            iload 7 /* size */
            if_icmpeq 21
        20: .line 1141
            iconst_0
            ireturn
        21: .line 1142
      StackMap locals: java.lang.Object[]
      StackMap stack:
            iload 9 /* i */
            aload 1 /* node */
            arraylength
            iconst_2
            isub
            if_icmpge 22
            aload 1 /* node */
            iload 9 /* i */
            aload 1 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
            isub
            aaload
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 4 /* max */
      StackMap locals:
      StackMap stack: java.lang.Object
        23: astore 11 /* localmax */
        start local 11 // java.lang.Object localmax
        24: .line 1143
            aload 0 /* cmp */
            aload 10 /* child */
            iconst_0
            aload 3 /* min */
            aload 11 /* localmax */
            invokestatic org.apache.cassandra.utils.btree.BTree.isWellFormed:(Ljava/util/Comparator;[Ljava/lang/Object;ZLjava/lang/Object;Ljava/lang/Object;)Z
            ifne 26
        25: .line 1144
            iconst_0
            ireturn
        26: .line 1145
      StackMap locals: java.lang.Object
      StackMap stack:
            iload 6 /* type */
            aload 10 /* child */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            ifeq 27
            iconst_1
            goto 28
      StackMap locals:
      StackMap stack: int
        27: iconst_2
      StackMap locals: java.util.Comparator java.lang.Object[] int java.lang.Object java.lang.Object int int int int[] int java.lang.Object[] java.lang.Object
      StackMap stack: int int
        28: ior
            istore 6 /* type */
        29: .line 1146
            aload 11 /* localmax */
            astore 3 /* min */
        end local 11 // java.lang.Object localmax
        end local 10 // java.lang.Object[] child
        30: .line 1136
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 9 /* i */
            aload 1 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildEnd:([Ljava/lang/Object;)I
            if_icmplt 17
        end local 9 // int i
        32: .line 1148
            iload 6 /* type */
            iconst_3
            if_icmpge 33
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        33: iconst_0
            ireturn
        end local 8 // int[] sizeMap
        end local 7 // int size
        end local 6 // int type
        end local 5 // int keyCount
        end local 4 // java.lang.Object max
        end local 3 // java.lang.Object min
        end local 2 // boolean isRoot
        end local 1 // java.lang.Object[] node
        end local 0 // java.util.Comparator cmp
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   34     0       cmp  Ljava/util/Comparator<*>;
            0   34     1      node  [Ljava/lang/Object;
            0   34     2    isRoot  Z
            0   34     3       min  Ljava/lang/Object;
            0   34     4       max  Ljava/lang/Object;
            9   34     5  keyCount  I
           13   34     6      type  I
           14   34     7      size  I
           15   34     8   sizeMap  [I
           16   32     9         i  I
           18   30    10     child  [Ljava/lang/Object;
           24   30    11  localmax  Ljava/lang/Object;
    Signature: (Ljava/util/Comparator<*>;[Ljava/lang/Object;ZLjava/lang/Object;Ljava/lang/Object;)Z
    MethodParameters:
        Name  Flags
      cmp     
      node    
      isRoot  
      min     
      max     

  private static boolean isNodeWellFormed(java.util.Comparator<?>, [], , );
    descriptor: (Ljava/util/Comparator;[Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // java.util.Comparator cmp
        start local 1 // java.lang.Object[] node
        start local 2 // java.lang.Object min
        start local 3 // java.lang.Object max
         0: .line 1153
            aload 2 /* min */
            astore 4 /* previous */
        start local 4 // java.lang.Object previous
         1: .line 1154
            aload 1 /* node */
            invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
            istore 5 /* end */
        start local 5 // int end
         2: .line 1155
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: goto 9
         4: .line 1157
      StackMap locals: java.lang.Object int int
      StackMap stack:
            aload 1 /* node */
            iload 6 /* i */
            aaload
            astore 7 /* current */
        start local 7 // java.lang.Object current
         5: .line 1158
            aload 0 /* cmp */
            aload 4 /* previous */
            aload 7 /* current */
            invokestatic org.apache.cassandra.utils.btree.BTree.compare:(Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)I
            iflt 7
         6: .line 1159
            iconst_0
            ireturn
         7: .line 1160
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 7 /* current */
            astore 4 /* previous */
        end local 7 // java.lang.Object current
         8: .line 1155
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* i */
            iload 5 /* end */
            if_icmplt 4
        end local 6 // int i
        10: .line 1162
            aload 0 /* cmp */
            aload 4 /* previous */
            aload 3 /* max */
            invokestatic org.apache.cassandra.utils.btree.BTree.compare:(Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)I
            ifge 11
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        11: iconst_0
            ireturn
        end local 5 // int end
        end local 4 // java.lang.Object previous
        end local 3 // java.lang.Object max
        end local 2 // java.lang.Object min
        end local 1 // java.lang.Object[] node
        end local 0 // java.util.Comparator cmp
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0       cmp  Ljava/util/Comparator<*>;
            0   12     1      node  [Ljava/lang/Object;
            0   12     2       min  Ljava/lang/Object;
            0   12     3       max  Ljava/lang/Object;
            1   12     4  previous  Ljava/lang/Object;
            2   12     5       end  I
            3   10     6         i  I
            5    8     7   current  Ljava/lang/Object;
    Signature: (Ljava/util/Comparator<*>;[Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
    MethodParameters:
      Name  Flags
      cmp   
      node  
      min   
      max   

  public static <V> void apply([], java.util.function.Consumer<V>, );
    descriptor: ([Ljava/lang/Object;Ljava/util/function/Consumer;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.function.Consumer function
        start local 2 // boolean reversed
         0: .line 1173
            iload 2 /* reversed */
            ifeq 2
         1: .line 1174
            aload 0 /* btree */
            aload 1 /* function */
            aconst_null
            invokestatic org.apache.cassandra.utils.btree.BTree.applyReverse:([Ljava/lang/Object;Ljava/util/function/Consumer;Lcom/google/common/base/Predicate;)Z
            pop
            goto 3
         2: .line 1176
      StackMap locals:
      StackMap stack:
            aload 0 /* btree */
            aload 1 /* function */
            aconst_null
            invokestatic org.apache.cassandra.utils.btree.BTree.applyForwards:([Ljava/lang/Object;Ljava/util/function/Consumer;Lcom/google/common/base/Predicate;)Z
            pop
         3: .line 1177
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean reversed
        end local 1 // java.util.function.Consumer function
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0     btree  [Ljava/lang/Object;
            0    4     1  function  Ljava/util/function/Consumer<TV;>;
            0    4     2  reversed  Z
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/function/Consumer<TV;>;Z)V
    MethodParameters:
          Name  Flags
      btree     
      function  
      reversed  

  public static <V> void apply([], java.util.function.Consumer<V>, com.google.common.base.Predicate<V>, );
    descriptor: ([Ljava/lang/Object;Ljava/util/function/Consumer;Lcom/google/common/base/Predicate;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.function.Consumer function
        start local 2 // com.google.common.base.Predicate stopCondition
        start local 3 // boolean reversed
         0: .line 1187
            iload 3 /* reversed */
            ifeq 2
         1: .line 1188
            aload 0 /* btree */
            aload 1 /* function */
            aload 2 /* stopCondition */
            invokestatic org.apache.cassandra.utils.btree.BTree.applyReverse:([Ljava/lang/Object;Ljava/util/function/Consumer;Lcom/google/common/base/Predicate;)Z
            pop
            goto 3
         2: .line 1190
      StackMap locals:
      StackMap stack:
            aload 0 /* btree */
            aload 1 /* function */
            aload 2 /* stopCondition */
            invokestatic org.apache.cassandra.utils.btree.BTree.applyForwards:([Ljava/lang/Object;Ljava/util/function/Consumer;Lcom/google/common/base/Predicate;)Z
            pop
         3: .line 1191
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean reversed
        end local 2 // com.google.common.base.Predicate stopCondition
        end local 1 // java.util.function.Consumer function
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0          btree  [Ljava/lang/Object;
            0    4     1       function  Ljava/util/function/Consumer<TV;>;
            0    4     2  stopCondition  Lcom/google/common/base/Predicate<TV;>;
            0    4     3       reversed  Z
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/function/Consumer<TV;>;Lcom/google/common/base/Predicate<TV;>;Z)V
    MethodParameters:
               Name  Flags
      btree          
      function       
      stopCondition  
      reversed       

  private static <V> boolean applyForwards([], java.util.function.Consumer<V>, com.google.common.base.Predicate<V>);
    descriptor: ([Ljava/lang/Object;Ljava/util/function/Consumer;Lcom/google/common/base/Predicate;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.function.Consumer function
        start local 2 // com.google.common.base.Predicate stopCondition
         0: .line 1207
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            istore 3 /* isLeaf */
        start local 3 // boolean isLeaf
         1: .line 1208
            iload 3 /* isLeaf */
            ifeq 2
            ldc 2147483647
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* childOffset */
        start local 4 // int childOffset
         4: .line 1209
            iload 3 /* isLeaf */
            ifeq 5
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getLeafKeyEnd:([Ljava/lang/Object;)I
            goto 6
      StackMap locals: int
      StackMap stack:
         5: aload 0 /* btree */
            arraylength
            iconst_1
            isub
      StackMap locals:
      StackMap stack: int
         6: istore 5 /* limit */
        start local 5 // int limit
         7: .line 1210
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         8: goto 24
         9: .line 1213
      StackMap locals: int int
      StackMap stack:
            iload 3 /* isLeaf */
            ifeq 10
            iload 6 /* i */
            goto 13
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            iconst_2
            idiv
            iload 6 /* i */
            iconst_2
            irem
            ifne 11
            iload 4 /* childOffset */
            goto 12
      StackMap locals:
      StackMap stack: int
        11: iconst_0
      StackMap locals: java.lang.Object[] java.util.function.Consumer com.google.common.base.Predicate int int int int
      StackMap stack: int int
        12: iadd
      StackMap locals:
      StackMap stack: int
        13: istore 7 /* idx */
        start local 7 // int idx
        14: .line 1214
            aload 0 /* btree */
            iload 7 /* idx */
            aaload
            astore 8 /* current */
        start local 8 // java.lang.Object current
        15: .line 1215
            iload 7 /* idx */
            iload 4 /* childOffset */
            if_icmpge 21
        16: .line 1217
            aload 8 /* current */
            astore 9 /* castedCurrent */
        start local 9 // java.lang.Object castedCurrent
        17: .line 1218
            aload 2 /* stopCondition */
            ifnull 19
            aload 2 /* stopCondition */
            aload 9 /* castedCurrent */
            invokeinterface com.google.common.base.Predicate.apply:(Ljava/lang/Object;)Z
            ifeq 19
        18: .line 1219
            iconst_1
            ireturn
        19: .line 1221
      StackMap locals: int java.lang.Object java.lang.Object
      StackMap stack:
            aload 1 /* function */
            aload 9 /* castedCurrent */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
        end local 9 // java.lang.Object castedCurrent
        20: .line 1222
            goto 23
        21: .line 1225
      StackMap locals:
      StackMap stack:
            aload 8 /* current */
            checkcast java.lang.Object[]
            aload 1 /* function */
            aload 2 /* stopCondition */
            invokestatic org.apache.cassandra.utils.btree.BTree.applyForwards:([Ljava/lang/Object;Ljava/util/function/Consumer;Lcom/google/common/base/Predicate;)Z
            ifeq 23
        22: .line 1226
            iconst_1
            ireturn
        end local 8 // java.lang.Object current
        end local 7 // int idx
        23: .line 1210
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 6 /* i */
            iload 5 /* limit */
            if_icmplt 9
        end local 6 // int i
        25: .line 1230
            iconst_0
            ireturn
        end local 5 // int limit
        end local 4 // int childOffset
        end local 3 // boolean isLeaf
        end local 2 // com.google.common.base.Predicate stopCondition
        end local 1 // java.util.function.Consumer function
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0          btree  [Ljava/lang/Object;
            0   26     1       function  Ljava/util/function/Consumer<TV;>;
            0   26     2  stopCondition  Lcom/google/common/base/Predicate<TV;>;
            1   26     3         isLeaf  Z
            4   26     4    childOffset  I
            7   26     5          limit  I
            8   25     6              i  I
           14   23     7            idx  I
           15   23     8        current  Ljava/lang/Object;
           17   20     9  castedCurrent  TV;
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/function/Consumer<TV;>;Lcom/google/common/base/Predicate<TV;>;)Z
    MethodParameters:
               Name  Flags
      btree          
      function       
      stopCondition  

  private static <V> boolean applyReverse([], java.util.function.Consumer<V>, com.google.common.base.Predicate<V>);
    descriptor: ([Ljava/lang/Object;Ljava/util/function/Consumer;Lcom/google/common/base/Predicate;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=11, args_size=3
        start local 0 // java.lang.Object[] btree
        start local 1 // java.util.function.Consumer function
        start local 2 // com.google.common.base.Predicate stopCondition
         0: .line 1244
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
            istore 3 /* isLeaf */
        start local 3 // boolean isLeaf
         1: .line 1245
            iload 3 /* isLeaf */
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* childOffset */
        start local 4 // int childOffset
         4: .line 1246
            iload 3 /* isLeaf */
            ifeq 5
            aload 0 /* btree */
            invokestatic org.apache.cassandra.utils.btree.BTree.getLeafKeyEnd:([Ljava/lang/Object;)I
            goto 6
      StackMap locals: int
      StackMap stack:
         5: aload 0 /* btree */
            arraylength
            iconst_1
            isub
      StackMap locals:
      StackMap stack: int
         6: istore 5 /* limit */
        start local 5 // int limit
         7: .line 1247
            iload 5 /* limit */
            iconst_1
            isub
            istore 6 /* i */
        start local 6 // int i
         8: iconst_0
            istore 7 /* visited */
        start local 7 // int visited
         9: goto 27
        10: .line 1249
      StackMap locals: int int int
      StackMap stack:
            iload 6 /* i */
            istore 8 /* idx */
        start local 8 // int idx
        11: .line 1252
            iload 3 /* isLeaf */
            ifne 17
        12: .line 1254
            iload 7 /* visited */
            iconst_2
            idiv
            istore 9 /* typeOffset */
        start local 9 // int typeOffset
        13: .line 1256
            iload 6 /* i */
            iconst_2
            irem
            ifne 16
        14: .line 1260
            iload 8 /* idx */
            iload 9 /* typeOffset */
            iadd
            istore 8 /* idx */
        15: .line 1261
            goto 17
        16: .line 1266
      StackMap locals: int int
      StackMap stack:
            iload 6 /* i */
            iload 4 /* childOffset */
            isub
            iload 9 /* typeOffset */
            iadd
            istore 8 /* idx */
        end local 9 // int typeOffset
        17: .line 1270
      StackMap locals:
      StackMap stack:
            aload 0 /* btree */
            iload 8 /* idx */
            aaload
            astore 9 /* current */
        start local 9 // java.lang.Object current
        18: .line 1271
            iload 3 /* isLeaf */
            ifne 19
            iload 8 /* idx */
            iload 4 /* childOffset */
            if_icmpge 24
        19: .line 1273
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 9 /* current */
            astore 10 /* castedCurrent */
        start local 10 // java.lang.Object castedCurrent
        20: .line 1274
            aload 2 /* stopCondition */
            ifnull 22
            aload 2 /* stopCondition */
            aload 10 /* castedCurrent */
            invokeinterface com.google.common.base.Predicate.apply:(Ljava/lang/Object;)Z
            ifeq 22
        21: .line 1275
            iconst_1
            ireturn
        22: .line 1277
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* function */
            aload 10 /* castedCurrent */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
        end local 10 // java.lang.Object castedCurrent
        23: .line 1278
            goto 26
        24: .line 1281
      StackMap locals:
      StackMap stack:
            aload 9 /* current */
            checkcast java.lang.Object[]
            aload 1 /* function */
            aload 2 /* stopCondition */
            invokestatic org.apache.cassandra.utils.btree.BTree.applyReverse:([Ljava/lang/Object;Ljava/util/function/Consumer;Lcom/google/common/base/Predicate;)Z
            ifeq 26
        25: .line 1282
            iconst_1
            ireturn
        end local 9 // java.lang.Object current
        end local 8 // int idx
        26: .line 1247
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ -1
            iinc 7 /* visited */ 1
      StackMap locals:
      StackMap stack:
        27: iload 6 /* i */
            ifge 10
        end local 7 // int visited
        end local 6 // int i
        28: .line 1286
            iconst_0
            ireturn
        end local 5 // int limit
        end local 4 // int childOffset
        end local 3 // boolean isLeaf
        end local 2 // com.google.common.base.Predicate stopCondition
        end local 1 // java.util.function.Consumer function
        end local 0 // java.lang.Object[] btree
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   29     0          btree  [Ljava/lang/Object;
            0   29     1       function  Ljava/util/function/Consumer<TV;>;
            0   29     2  stopCondition  Lcom/google/common/base/Predicate<TV;>;
            1   29     3         isLeaf  Z
            4   29     4    childOffset  I
            7   29     5          limit  I
            8   28     6              i  I
            9   28     7        visited  I
           11   26     8            idx  I
           13   17     9     typeOffset  I
           18   26     9        current  Ljava/lang/Object;
           20   23    10  castedCurrent  TV;
    Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/function/Consumer<TV;>;Lcom/google/common/base/Predicate<TV;>;)Z
    MethodParameters:
               Name  Flags
      btree          
      function       
      stopCondition  

  private static java.util.Iterator lambda$0(java.lang.Object[], org.apache.cassandra.utils.btree.BTree$Dir);
    descriptor: ([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/util/Iterator;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 219
            aload 0
            aload 1
            invokestatic org.apache.cassandra.utils.btree.BTree.iterator:([Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/util/Iterator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.util.Iterator lambda$1(java.lang.Object[], int, int, org.apache.cassandra.utils.btree.BTree$Dir);
    descriptor: ([Ljava/lang/Object;IILorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/util/Iterator;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 224
            aload 0
            iload 1
            iload 2
            aload 3
            invokestatic org.apache.cassandra.utils.btree.BTree.iterator:([Ljava/lang/Object;IILorg/apache/cassandra/utils/btree/BTree$Dir;)Ljava/util/Iterator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean lambda$2(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object x
         0: .line 674
            aload 0 /* x */
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.Object x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     x  TV;
}
SourceFile: "BTree.java"
NestMembers:
  org.apache.cassandra.utils.btree.BTree$Builder  org.apache.cassandra.utils.btree.BTree$Builder$QuickResolver  org.apache.cassandra.utils.btree.BTree$Builder$Resolver  org.apache.cassandra.utils.btree.BTree$Dir  org.apache.cassandra.utils.btree.BTree$FiltrationTracker
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Builder = org.apache.cassandra.utils.btree.BTree$Builder of org.apache.cassandra.utils.btree.BTree
  public final Dir = org.apache.cassandra.utils.btree.BTree$Dir of org.apache.cassandra.utils.btree.BTree
  private FiltrationTracker = org.apache.cassandra.utils.btree.BTree$FiltrationTracker of org.apache.cassandra.utils.btree.BTree