public abstract class org.apache.cassandra.dht.AbstractBounds<T extends org.apache.cassandra.dht.RingPosition<T>> implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.cassandra.dht.AbstractBounds
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final org.apache.cassandra.dht.IPartitionerDependentSerializer<org.apache.cassandra.dht.AbstractBounds<org.apache.cassandra.dht.Token>> tokenSerializer;
    descriptor: Lorg/apache/cassandra/dht/IPartitionerDependentSerializer;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/apache/cassandra/dht/IPartitionerDependentSerializer<Lorg/apache/cassandra/dht/AbstractBounds<Lorg/apache/cassandra/dht/Token;>;>;

  public static final org.apache.cassandra.dht.IPartitionerDependentSerializer<org.apache.cassandra.dht.AbstractBounds<org.apache.cassandra.db.PartitionPosition>> rowPositionSerializer;
    descriptor: Lorg/apache/cassandra/dht/IPartitionerDependentSerializer;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/apache/cassandra/dht/IPartitionerDependentSerializer<Lorg/apache/cassandra/dht/AbstractBounds<Lorg/apache/cassandra/db/PartitionPosition;>;>;

  public final T left;
    descriptor: Lorg/apache/cassandra/dht/RingPosition;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Signature: TT;

  public final T right;
    descriptor: Lorg/apache/cassandra/dht/RingPosition;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Signature: TT;

  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=3, locals=0, args_size=0
         0: .line 34
            ldc Lorg/apache/cassandra/dht/AbstractBounds;
            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.dht.AbstractBounds.$assertionsDisabled:Z
         3: .line 38
            new org.apache.cassandra.dht.AbstractBounds$AbstractBoundsSerializer
            dup
            getstatic org.apache.cassandra.dht.Token.serializer:Lorg/apache/cassandra/dht/Token$TokenSerializer;
            invokespecial org.apache.cassandra.dht.AbstractBounds$AbstractBoundsSerializer.<init>:(Lorg/apache/cassandra/dht/IPartitionerDependentSerializer;)V
         4: .line 37
            putstatic org.apache.cassandra.dht.AbstractBounds.tokenSerializer:Lorg/apache/cassandra/dht/IPartitionerDependentSerializer;
         5: .line 40
            new org.apache.cassandra.dht.AbstractBounds$AbstractBoundsSerializer
            dup
            getstatic org.apache.cassandra.db.PartitionPosition.serializer:Lorg/apache/cassandra/db/PartitionPosition$RowPositionSerializer;
            invokespecial org.apache.cassandra.dht.AbstractBounds$AbstractBoundsSerializer.<init>:(Lorg/apache/cassandra/dht/IPartitionerDependentSerializer;)V
         6: .line 39
            putstatic org.apache.cassandra.dht.AbstractBounds.rowPositionSerializer:Lorg/apache/cassandra/dht/IPartitionerDependentSerializer;
         7: .line 40
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(T, );
    descriptor: (Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.cassandra.dht.AbstractBounds this
        start local 1 // org.apache.cassandra.dht.RingPosition left
        start local 2 // org.apache.cassandra.dht.RingPosition right
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 53
            getstatic org.apache.cassandra.dht.AbstractBounds.$assertionsDisabled:Z
            ifne 2
            aload 1 /* left */
            invokeinterface org.apache.cassandra.dht.RingPosition.getPartitioner:()Lorg/apache/cassandra/dht/IPartitioner;
            aload 2 /* right */
            invokeinterface org.apache.cassandra.dht.RingPosition.getPartitioner:()Lorg/apache/cassandra/dht/IPartitioner;
            if_acmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 54
      StackMap locals: org.apache.cassandra.dht.AbstractBounds org.apache.cassandra.dht.RingPosition org.apache.cassandra.dht.RingPosition
      StackMap stack:
            aload 0 /* this */
            aload 1 /* left */
            putfield org.apache.cassandra.dht.AbstractBounds.left:Lorg/apache/cassandra/dht/RingPosition;
         3: .line 55
            aload 0 /* this */
            aload 2 /* right */
            putfield org.apache.cassandra.dht.AbstractBounds.right:Lorg/apache/cassandra/dht/RingPosition;
         4: .line 56
            return
        end local 2 // org.apache.cassandra.dht.RingPosition right
        end local 1 // org.apache.cassandra.dht.RingPosition left
        end local 0 // org.apache.cassandra.dht.AbstractBounds this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/apache/cassandra/dht/AbstractBounds<TT;>;
            0    5     1   left  TT;
            0    5     2  right  TT;
    Signature: (TT;TT;)V
    MethodParameters:
       Name  Flags
      left   
      right  

  public abstract org.apache.cassandra.utils.Pair<org.apache.cassandra.dht.AbstractBounds<T>, org.apache.cassandra.dht.AbstractBounds<T>> split(T);
    descriptor: (Lorg/apache/cassandra/dht/RingPosition;)Lorg/apache/cassandra/utils/Pair;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (TT;)Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/dht/AbstractBounds<TT;>;Lorg/apache/cassandra/dht/AbstractBounds<TT;>;>;
    MethodParameters:
          Name  Flags
      position  

  public abstract boolean inclusiveLeft();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean inclusiveRight();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public static <T extends org.apache.cassandra.dht.RingPosition<T>> boolean strictlyWrapsAround(T, );
    descriptor: (Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.dht.RingPosition left
        start local 1 // org.apache.cassandra.dht.RingPosition right
         0: .line 87
            aload 0 /* left */
            aload 1 /* right */
            invokeinterface org.apache.cassandra.dht.RingPosition.compareTo:(Ljava/lang/Object;)I
            ifle 1
            aload 1 /* right */
            invokeinterface org.apache.cassandra.dht.RingPosition.isMinimum:()Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // org.apache.cassandra.dht.RingPosition right
        end local 0 // org.apache.cassandra.dht.RingPosition left
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   left  TT;
            0    4     1  right  TT;
    Signature: <T::Lorg/apache/cassandra/dht/RingPosition<TT;>;>(TT;TT;)Z
    MethodParameters:
       Name  Flags
      left   
      right  

  public static <T extends org.apache.cassandra.dht.RingPosition<T>> boolean noneStrictlyWrapsAround(java.util.Collection<org.apache.cassandra.dht.AbstractBounds<T>>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.util.Collection bounds
         0: .line 92
            aload 0 /* bounds */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: java.util.Collection top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.AbstractBounds
            astore 1 /* b */
        start local 1 // org.apache.cassandra.dht.AbstractBounds b
         2: .line 94
            aload 1 /* b */
            getfield org.apache.cassandra.dht.AbstractBounds.left:Lorg/apache/cassandra/dht/RingPosition;
            aload 1 /* b */
            getfield org.apache.cassandra.dht.AbstractBounds.right:Lorg/apache/cassandra/dht/RingPosition;
            invokestatic org.apache.cassandra.dht.AbstractBounds.strictlyWrapsAround:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)Z
            ifeq 4
         3: .line 95
            iconst_0
            ireturn
        end local 1 // org.apache.cassandra.dht.AbstractBounds b
         4: .line 92
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 97
            iconst_1
            ireturn
        end local 0 // java.util.Collection bounds
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  bounds  Ljava/util/Collection<Lorg/apache/cassandra/dht/AbstractBounds<TT;>;>;
            2    4     1       b  Lorg/apache/cassandra/dht/AbstractBounds<TT;>;
    Signature: <T::Lorg/apache/cassandra/dht/RingPosition<TT;>;>(Ljava/util/Collection<Lorg/apache/cassandra/dht/AbstractBounds<TT;>;>;)Z
    MethodParameters:
        Name  Flags
      bounds  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.dht.AbstractBounds this
         0: .line 103
            bipush 31
            aload 0 /* this */
            getfield org.apache.cassandra.dht.AbstractBounds.left:Lorg/apache/cassandra/dht/RingPosition;
            invokevirtual java.lang.Object.hashCode:()I
            imul
            aload 0 /* this */
            getfield org.apache.cassandra.dht.AbstractBounds.right:Lorg/apache/cassandra/dht/RingPosition;
            invokevirtual java.lang.Object.hashCode:()I
            iadd
            ireturn
        end local 0 // org.apache.cassandra.dht.AbstractBounds this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/dht/AbstractBounds<TT;>;

  public boolean intersects(java.lang.Iterable<org.apache.cassandra.dht.Range<T>>);
    descriptor: (Ljava/lang/Iterable;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.cassandra.dht.AbstractBounds this
        start local 1 // java.lang.Iterable ranges
         0: .line 109
            aload 1 /* ranges */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.cassandra.dht.AbstractBounds java.lang.Iterable top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 2 /* range2 */
        start local 2 // org.apache.cassandra.dht.Range range2
         2: .line 111
            aload 2 /* range2 */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.dht.Range.intersects:(Lorg/apache/cassandra/dht/AbstractBounds;)Z
            ifeq 4
         3: .line 112
            iconst_1
            ireturn
        end local 2 // org.apache.cassandra.dht.Range range2
         4: .line 109
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 114
            iconst_0
            ireturn
        end local 1 // java.lang.Iterable ranges
        end local 0 // org.apache.cassandra.dht.AbstractBounds this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/cassandra/dht/AbstractBounds<TT;>;
            0    6     1  ranges  Ljava/lang/Iterable<Lorg/apache/cassandra/dht/Range<TT;>;>;
            2    4     2  range2  Lorg/apache/cassandra/dht/Range<TT;>;
    Signature: (Ljava/lang/Iterable<Lorg/apache/cassandra/dht/Range<TT;>;>;)Z
    MethodParameters:
        Name  Flags
      ranges  

  public abstract boolean contains();
    descriptor: (Lorg/apache/cassandra/dht/RingPosition;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (TT;)Z
    MethodParameters:
       Name  Flags
      start  

  public abstract java.util.List<? extends org.apache.cassandra.dht.AbstractBounds<T>> unwrap();
    descriptor: ()Ljava/util/List;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/List<+Lorg/apache/cassandra/dht/AbstractBounds<TT;>;>;

  public java.lang.String getString(org.apache.cassandra.db.marshal.AbstractType<?>);
    descriptor: (Lorg/apache/cassandra/db/marshal/AbstractType;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.dht.AbstractBounds this
        start local 1 // org.apache.cassandra.db.marshal.AbstractType keyValidator
         0: .line 123
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.cassandra.dht.AbstractBounds.getOpeningString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.dht.AbstractBounds.left:Lorg/apache/cassandra/dht/RingPosition;
            aload 1 /* keyValidator */
            invokevirtual org.apache.cassandra.dht.AbstractBounds.format:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/db/marshal/AbstractType;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.dht.AbstractBounds.right:Lorg/apache/cassandra/dht/RingPosition;
            aload 1 /* keyValidator */
            invokevirtual org.apache.cassandra.dht.AbstractBounds.format:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/db/marshal/AbstractType;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.dht.AbstractBounds.getClosingString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // org.apache.cassandra.db.marshal.AbstractType keyValidator
        end local 0 // org.apache.cassandra.dht.AbstractBounds this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/apache/cassandra/dht/AbstractBounds<TT;>;
            0    1     1  keyValidator  Lorg/apache/cassandra/db/marshal/AbstractType<*>;
    Signature: (Lorg/apache/cassandra/db/marshal/AbstractType<*>;)Ljava/lang/String;
    MethodParameters:
              Name  Flags
      keyValidator  

  private java.lang.String format(T, org.apache.cassandra.db.marshal.AbstractType<?>);
    descriptor: (Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/db/marshal/AbstractType;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.cassandra.dht.AbstractBounds this
        start local 1 // org.apache.cassandra.dht.RingPosition value
        start local 2 // org.apache.cassandra.db.marshal.AbstractType keyValidator
         0: .line 128
            aload 1 /* value */
            instanceof org.apache.cassandra.db.DecoratedKey
            ifeq 2
         1: .line 130
            aload 2 /* keyValidator */
            aload 1 /* value */
            checkcast org.apache.cassandra.db.DecoratedKey
            invokevirtual org.apache.cassandra.db.DecoratedKey.getKey:()Ljava/nio/ByteBuffer;
            invokevirtual org.apache.cassandra.db.marshal.AbstractType.getString:(Ljava/nio/ByteBuffer;)Ljava/lang/String;
            areturn
         2: .line 134
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 2 // org.apache.cassandra.db.marshal.AbstractType keyValidator
        end local 1 // org.apache.cassandra.dht.RingPosition value
        end local 0 // org.apache.cassandra.dht.AbstractBounds this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/apache/cassandra/dht/AbstractBounds<TT;>;
            0    3     1         value  TT;
            0    3     2  keyValidator  Lorg/apache/cassandra/db/marshal/AbstractType<*>;
    Signature: (TT;Lorg/apache/cassandra/db/marshal/AbstractType<*>;)Ljava/lang/String;
    MethodParameters:
              Name  Flags
      value         
      keyValidator  

  protected abstract java.lang.String getOpeningString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract java.lang.String getClosingString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  public abstract boolean isStartInclusive();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean isEndInclusive();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract org.apache.cassandra.dht.AbstractBounds<T> withNewRight(T);
    descriptor: (Lorg/apache/cassandra/dht/RingPosition;)Lorg/apache/cassandra/dht/AbstractBounds;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (TT;)Lorg/apache/cassandra/dht/AbstractBounds<TT;>;
    MethodParameters:
          Name  Flags
      newRight  

  public static <T extends org.apache.cassandra.dht.RingPosition<T>> org.apache.cassandra.dht.AbstractBounds<T> bounds(org.apache.cassandra.dht.AbstractBounds$Boundary<T>, org.apache.cassandra.dht.AbstractBounds$Boundary<T>);
    descriptor: (Lorg/apache/cassandra/dht/AbstractBounds$Boundary;Lorg/apache/cassandra/dht/AbstractBounds$Boundary;)Lorg/apache/cassandra/dht/AbstractBounds;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.dht.AbstractBounds$Boundary min
        start local 1 // org.apache.cassandra.dht.AbstractBounds$Boundary max
         0: .line 240
            aload 0 /* min */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.boundary:Lorg/apache/cassandra/dht/RingPosition;
            aload 0 /* min */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.inclusive:Z
            aload 1 /* max */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.boundary:Lorg/apache/cassandra/dht/RingPosition;
            aload 1 /* max */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.inclusive:Z
            invokestatic org.apache.cassandra.dht.AbstractBounds.bounds:(Lorg/apache/cassandra/dht/RingPosition;ZLorg/apache/cassandra/dht/RingPosition;Z)Lorg/apache/cassandra/dht/AbstractBounds;
            areturn
        end local 1 // org.apache.cassandra.dht.AbstractBounds$Boundary max
        end local 0 // org.apache.cassandra.dht.AbstractBounds$Boundary min
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   min  Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
            0    1     1   max  Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
    Signature: <T::Lorg/apache/cassandra/dht/RingPosition<TT;>;>(Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;)Lorg/apache/cassandra/dht/AbstractBounds<TT;>;
    MethodParameters:
      Name  Flags
      min   
      max   

  public static <T extends org.apache.cassandra.dht.RingPosition<T>> org.apache.cassandra.dht.AbstractBounds<T> bounds(T, boolean, T, boolean);
    descriptor: (Lorg/apache/cassandra/dht/RingPosition;ZLorg/apache/cassandra/dht/RingPosition;Z)Lorg/apache/cassandra/dht/AbstractBounds;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.cassandra.dht.RingPosition min
        start local 1 // boolean inclusiveMin
        start local 2 // org.apache.cassandra.dht.RingPosition max
        start local 3 // boolean inclusiveMax
         0: .line 244
            iload 1 /* inclusiveMin */
            ifeq 2
            iload 3 /* inclusiveMax */
            ifeq 2
         1: .line 245
            new org.apache.cassandra.dht.Bounds
            dup
            aload 0 /* min */
            aload 2 /* max */
            invokespecial org.apache.cassandra.dht.Bounds.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            areturn
         2: .line 246
      StackMap locals:
      StackMap stack:
            iload 3 /* inclusiveMax */
            ifeq 4
         3: .line 247
            new org.apache.cassandra.dht.Range
            dup
            aload 0 /* min */
            aload 2 /* max */
            invokespecial org.apache.cassandra.dht.Range.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            areturn
         4: .line 248
      StackMap locals:
      StackMap stack:
            iload 1 /* inclusiveMin */
            ifeq 6
         5: .line 249
            new org.apache.cassandra.dht.IncludingExcludingBounds
            dup
            aload 0 /* min */
            aload 2 /* max */
            invokespecial org.apache.cassandra.dht.IncludingExcludingBounds.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            areturn
         6: .line 251
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.dht.ExcludingBounds
            dup
            aload 0 /* min */
            aload 2 /* max */
            invokespecial org.apache.cassandra.dht.ExcludingBounds.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            areturn
        end local 3 // boolean inclusiveMax
        end local 2 // org.apache.cassandra.dht.RingPosition max
        end local 1 // boolean inclusiveMin
        end local 0 // org.apache.cassandra.dht.RingPosition min
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0           min  TT;
            0    7     1  inclusiveMin  Z
            0    7     2           max  TT;
            0    7     3  inclusiveMax  Z
    Signature: <T::Lorg/apache/cassandra/dht/RingPosition<TT;>;>(TT;ZTT;Z)Lorg/apache/cassandra/dht/AbstractBounds<TT;>;
    MethodParameters:
              Name  Flags
      min           
      inclusiveMin  
      max           
      inclusiveMax  

  public org.apache.cassandra.dht.AbstractBounds$Boundary<T> leftBoundary();
    descriptor: ()Lorg/apache/cassandra/dht/AbstractBounds$Boundary;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.cassandra.dht.AbstractBounds this
         0: .line 268
            new org.apache.cassandra.dht.AbstractBounds$Boundary
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.dht.AbstractBounds.left:Lorg/apache/cassandra/dht/RingPosition;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.dht.AbstractBounds.inclusiveLeft:()Z
            invokespecial org.apache.cassandra.dht.AbstractBounds$Boundary.<init>:(Lorg/apache/cassandra/dht/RingPosition;Z)V
            areturn
        end local 0 // org.apache.cassandra.dht.AbstractBounds this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/dht/AbstractBounds<TT;>;
    Signature: ()Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;

  public org.apache.cassandra.dht.AbstractBounds$Boundary<T> rightBoundary();
    descriptor: ()Lorg/apache/cassandra/dht/AbstractBounds$Boundary;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.cassandra.dht.AbstractBounds this
         0: .line 273
            new org.apache.cassandra.dht.AbstractBounds$Boundary
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.dht.AbstractBounds.right:Lorg/apache/cassandra/dht/RingPosition;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.dht.AbstractBounds.inclusiveRight:()Z
            invokespecial org.apache.cassandra.dht.AbstractBounds$Boundary.<init>:(Lorg/apache/cassandra/dht/RingPosition;Z)V
            areturn
        end local 0 // org.apache.cassandra.dht.AbstractBounds this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/dht/AbstractBounds<TT;>;
    Signature: ()Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;

  public static <T extends org.apache.cassandra.dht.RingPosition<T>> boolean isEmpty(org.apache.cassandra.dht.AbstractBounds$Boundary<T>, org.apache.cassandra.dht.AbstractBounds$Boundary<T>);
    descriptor: (Lorg/apache/cassandra/dht/AbstractBounds$Boundary;Lorg/apache/cassandra/dht/AbstractBounds$Boundary;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.cassandra.dht.AbstractBounds$Boundary left
        start local 1 // org.apache.cassandra.dht.AbstractBounds$Boundary right
         0: .line 278
            aload 0 /* left */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.boundary:Lorg/apache/cassandra/dht/RingPosition;
            aload 1 /* right */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.boundary:Lorg/apache/cassandra/dht/RingPosition;
            invokeinterface org.apache.cassandra.dht.RingPosition.compareTo:(Ljava/lang/Object;)I
            istore 2 /* c */
        start local 2 // int c
         1: .line 279
            iload 2 /* c */
            ifgt 3
            iload 2 /* c */
            ifne 2
            aload 0 /* left */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.inclusive:Z
            ifeq 3
            aload 1 /* right */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.inclusive:Z
            ifeq 3
      StackMap locals: int
      StackMap stack:
         2: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 2 // int c
        end local 1 // org.apache.cassandra.dht.AbstractBounds$Boundary right
        end local 0 // org.apache.cassandra.dht.AbstractBounds$Boundary left
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   left  Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
            0    4     1  right  Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
            1    4     2      c  I
    Signature: <T::Lorg/apache/cassandra/dht/RingPosition<TT;>;>(Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;)Z
    MethodParameters:
       Name  Flags
      left   
      right  

  public static <T extends org.apache.cassandra.dht.RingPosition<T>> org.apache.cassandra.dht.AbstractBounds$Boundary<T> minRight(org.apache.cassandra.dht.AbstractBounds$Boundary<T>, T, boolean);
    descriptor: (Lorg/apache/cassandra/dht/AbstractBounds$Boundary;Lorg/apache/cassandra/dht/RingPosition;Z)Lorg/apache/cassandra/dht/AbstractBounds$Boundary;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.cassandra.dht.AbstractBounds$Boundary right1
        start local 1 // org.apache.cassandra.dht.RingPosition right2
        start local 2 // boolean isInclusiveRight2
         0: .line 284
            aload 0 /* right1 */
            new org.apache.cassandra.dht.AbstractBounds$Boundary
            dup
            aload 1 /* right2 */
            iload 2 /* isInclusiveRight2 */
            invokespecial org.apache.cassandra.dht.AbstractBounds$Boundary.<init>:(Lorg/apache/cassandra/dht/RingPosition;Z)V
            invokestatic org.apache.cassandra.dht.AbstractBounds.minRight:(Lorg/apache/cassandra/dht/AbstractBounds$Boundary;Lorg/apache/cassandra/dht/AbstractBounds$Boundary;)Lorg/apache/cassandra/dht/AbstractBounds$Boundary;
            areturn
        end local 2 // boolean isInclusiveRight2
        end local 1 // org.apache.cassandra.dht.RingPosition right2
        end local 0 // org.apache.cassandra.dht.AbstractBounds$Boundary right1
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0             right1  Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
            0    1     1             right2  TT;
            0    1     2  isInclusiveRight2  Z
    Signature: <T::Lorg/apache/cassandra/dht/RingPosition<TT;>;>(Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;TT;Z)Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
    MethodParameters:
                   Name  Flags
      right1             
      right2             
      isInclusiveRight2  

  public static <T extends org.apache.cassandra.dht.RingPosition<T>> org.apache.cassandra.dht.AbstractBounds$Boundary<T> minRight(org.apache.cassandra.dht.AbstractBounds$Boundary<T>, org.apache.cassandra.dht.AbstractBounds$Boundary<T>);
    descriptor: (Lorg/apache/cassandra/dht/AbstractBounds$Boundary;Lorg/apache/cassandra/dht/AbstractBounds$Boundary;)Lorg/apache/cassandra/dht/AbstractBounds$Boundary;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.cassandra.dht.AbstractBounds$Boundary right1
        start local 1 // org.apache.cassandra.dht.AbstractBounds$Boundary right2
         0: .line 289
            aload 0 /* right1 */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.boundary:Lorg/apache/cassandra/dht/RingPosition;
            aload 1 /* right2 */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.boundary:Lorg/apache/cassandra/dht/RingPosition;
            invokeinterface org.apache.cassandra.dht.RingPosition.compareTo:(Ljava/lang/Object;)I
            istore 2 /* c */
        start local 2 // int c
         1: .line 290
            iload 2 /* c */
            ifeq 5
         2: .line 291
            iload 2 /* c */
            ifge 3
            aload 0 /* right1 */
            goto 4
      StackMap locals: int
      StackMap stack:
         3: aload 1 /* right2 */
      StackMap locals:
      StackMap stack: org.apache.cassandra.dht.AbstractBounds$Boundary
         4: areturn
         5: .line 293
      StackMap locals:
      StackMap stack:
            aload 1 /* right2 */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.inclusive:Z
            ifeq 6
            aload 0 /* right1 */
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 1 /* right2 */
      StackMap locals:
      StackMap stack: org.apache.cassandra.dht.AbstractBounds$Boundary
         7: areturn
        end local 2 // int c
        end local 1 // org.apache.cassandra.dht.AbstractBounds$Boundary right2
        end local 0 // org.apache.cassandra.dht.AbstractBounds$Boundary right1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  right1  Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
            0    8     1  right2  Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
            1    8     2       c  I
    Signature: <T::Lorg/apache/cassandra/dht/RingPosition<TT;>;>(Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;)Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
    MethodParameters:
        Name  Flags
      right1  
      right2  

  public static <T extends org.apache.cassandra.dht.RingPosition<T>> org.apache.cassandra.dht.AbstractBounds$Boundary<T> maxLeft(org.apache.cassandra.dht.AbstractBounds$Boundary<T>, T, boolean);
    descriptor: (Lorg/apache/cassandra/dht/AbstractBounds$Boundary;Lorg/apache/cassandra/dht/RingPosition;Z)Lorg/apache/cassandra/dht/AbstractBounds$Boundary;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.cassandra.dht.AbstractBounds$Boundary left1
        start local 1 // org.apache.cassandra.dht.RingPosition left2
        start local 2 // boolean isInclusiveLeft2
         0: .line 298
            aload 0 /* left1 */
            new org.apache.cassandra.dht.AbstractBounds$Boundary
            dup
            aload 1 /* left2 */
            iload 2 /* isInclusiveLeft2 */
            invokespecial org.apache.cassandra.dht.AbstractBounds$Boundary.<init>:(Lorg/apache/cassandra/dht/RingPosition;Z)V
            invokestatic org.apache.cassandra.dht.AbstractBounds.maxLeft:(Lorg/apache/cassandra/dht/AbstractBounds$Boundary;Lorg/apache/cassandra/dht/AbstractBounds$Boundary;)Lorg/apache/cassandra/dht/AbstractBounds$Boundary;
            areturn
        end local 2 // boolean isInclusiveLeft2
        end local 1 // org.apache.cassandra.dht.RingPosition left2
        end local 0 // org.apache.cassandra.dht.AbstractBounds$Boundary left1
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0             left1  Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
            0    1     1             left2  TT;
            0    1     2  isInclusiveLeft2  Z
    Signature: <T::Lorg/apache/cassandra/dht/RingPosition<TT;>;>(Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;TT;Z)Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
    MethodParameters:
                  Name  Flags
      left1             
      left2             
      isInclusiveLeft2  

  public static <T extends org.apache.cassandra.dht.RingPosition<T>> org.apache.cassandra.dht.AbstractBounds$Boundary<T> maxLeft(org.apache.cassandra.dht.AbstractBounds$Boundary<T>, org.apache.cassandra.dht.AbstractBounds$Boundary<T>);
    descriptor: (Lorg/apache/cassandra/dht/AbstractBounds$Boundary;Lorg/apache/cassandra/dht/AbstractBounds$Boundary;)Lorg/apache/cassandra/dht/AbstractBounds$Boundary;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.cassandra.dht.AbstractBounds$Boundary left1
        start local 1 // org.apache.cassandra.dht.AbstractBounds$Boundary left2
         0: .line 303
            aload 0 /* left1 */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.boundary:Lorg/apache/cassandra/dht/RingPosition;
            aload 1 /* left2 */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.boundary:Lorg/apache/cassandra/dht/RingPosition;
            invokeinterface org.apache.cassandra.dht.RingPosition.compareTo:(Ljava/lang/Object;)I
            istore 2 /* c */
        start local 2 // int c
         1: .line 304
            iload 2 /* c */
            ifeq 5
         2: .line 305
            iload 2 /* c */
            ifle 3
            aload 0 /* left1 */
            goto 4
      StackMap locals: int
      StackMap stack:
         3: aload 1 /* left2 */
      StackMap locals:
      StackMap stack: org.apache.cassandra.dht.AbstractBounds$Boundary
         4: areturn
         5: .line 307
      StackMap locals:
      StackMap stack:
            aload 1 /* left2 */
            getfield org.apache.cassandra.dht.AbstractBounds$Boundary.inclusive:Z
            ifeq 6
            aload 0 /* left1 */
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 1 /* left2 */
      StackMap locals:
      StackMap stack: org.apache.cassandra.dht.AbstractBounds$Boundary
         7: areturn
        end local 2 // int c
        end local 1 // org.apache.cassandra.dht.AbstractBounds$Boundary left2
        end local 0 // org.apache.cassandra.dht.AbstractBounds$Boundary left1
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0  left1  Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
            0    8     1  left2  Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
            1    8     2      c  I
    Signature: <T::Lorg/apache/cassandra/dht/RingPosition<TT;>;>(Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;)Lorg/apache/cassandra/dht/AbstractBounds$Boundary<TT;>;
    MethodParameters:
       Name  Flags
      left1  
      left2  
}
Signature: <T::Lorg/apache/cassandra/dht/RingPosition<TT;>;>Ljava/lang/Object;Ljava/io/Serializable;
SourceFile: "AbstractBounds.java"
NestMembers:
  org.apache.cassandra.dht.AbstractBounds$AbstractBoundsSerializer  org.apache.cassandra.dht.AbstractBounds$Boundary  org.apache.cassandra.dht.AbstractBounds$Type
InnerClasses:
  public AbstractBoundsSerializer = org.apache.cassandra.dht.AbstractBounds$AbstractBoundsSerializer of org.apache.cassandra.dht.AbstractBounds
  public Boundary = org.apache.cassandra.dht.AbstractBounds$Boundary of org.apache.cassandra.dht.AbstractBounds
  private final Type = org.apache.cassandra.dht.AbstractBounds$Type of org.apache.cassandra.dht.AbstractBounds