public class com.netflix.hystrix.util.HystrixRollingNumber
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.netflix.hystrix.util.HystrixRollingNumber
  super_class: java.lang.Object
{
  private static final com.netflix.hystrix.util.HystrixRollingNumber$Time ACTUAL_TIME;
    descriptor: Lcom/netflix/hystrix/util/HystrixRollingNumber$Time;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final com.netflix.hystrix.util.HystrixRollingNumber$Time time;
    descriptor: Lcom/netflix/hystrix/util/HystrixRollingNumber$Time;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final int timeInMilliseconds;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int numberOfBuckets;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int bucketSizeInMillseconds;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray buckets;
    descriptor: Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
    flags: (0x0010) ACC_FINAL

  private final com.netflix.hystrix.util.HystrixRollingNumber$CumulativeSum cumulativeSum;
    descriptor: Lcom/netflix/hystrix/util/HystrixRollingNumber$CumulativeSum;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.util.concurrent.locks.ReentrantLock newBucketLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 51
            new com.netflix.hystrix.util.HystrixRollingNumber$ActualTime
            dup
            invokespecial com.netflix.hystrix.util.HystrixRollingNumber$ActualTime.<init>:()V
            putstatic com.netflix.hystrix.util.HystrixRollingNumber.ACTUAL_TIME:Lcom/netflix/hystrix/util/HystrixRollingNumber$Time;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(com.netflix.hystrix.strategy.properties.HystrixProperty<java.lang.Integer>, com.netflix.hystrix.strategy.properties.HystrixProperty<java.lang.Integer>);
    descriptor: (Lcom/netflix/hystrix/strategy/properties/HystrixProperty;Lcom/netflix/hystrix/strategy/properties/HystrixProperty;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
        start local 1 // com.netflix.hystrix.strategy.properties.HystrixProperty timeInMilliseconds
        start local 2 // com.netflix.hystrix.strategy.properties.HystrixProperty numberOfBuckets
         0: .line 70
            aload 0 /* this */
            aload 1 /* timeInMilliseconds */
            invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 2 /* numberOfBuckets */
            invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokespecial com.netflix.hystrix.util.HystrixRollingNumber.<init>:(II)V
         1: .line 71
            return
        end local 2 // com.netflix.hystrix.strategy.properties.HystrixProperty numberOfBuckets
        end local 1 // com.netflix.hystrix.strategy.properties.HystrixProperty timeInMilliseconds
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            0    2     1  timeInMilliseconds  Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;
            0    2     2     numberOfBuckets  Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;
    Signature: (Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                    Name  Flags
      timeInMilliseconds  
      numberOfBuckets     

  public void <init>(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
        start local 1 // int timeInMilliseconds
        start local 2 // int numberOfBuckets
         0: .line 74
            aload 0 /* this */
            getstatic com.netflix.hystrix.util.HystrixRollingNumber.ACTUAL_TIME:Lcom/netflix/hystrix/util/HystrixRollingNumber$Time;
            iload 1 /* timeInMilliseconds */
            iload 2 /* numberOfBuckets */
            invokespecial com.netflix.hystrix.util.HystrixRollingNumber.<init>:(Lcom/netflix/hystrix/util/HystrixRollingNumber$Time;II)V
         1: .line 75
            return
        end local 2 // int numberOfBuckets
        end local 1 // int timeInMilliseconds
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            0    2     1  timeInMilliseconds  I
            0    2     2     numberOfBuckets  I
    MethodParameters:
                    Name  Flags
      timeInMilliseconds  
      numberOfBuckets     

  void <init>(com.netflix.hystrix.util.HystrixRollingNumber$Time, int, int);
    descriptor: (Lcom/netflix/hystrix/util/HystrixRollingNumber$Time;II)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
        start local 1 // com.netflix.hystrix.util.HystrixRollingNumber$Time time
        start local 2 // int timeInMilliseconds
        start local 3 // int numberOfBuckets
         0: .line 77
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 58
            aload 0 /* this */
            new com.netflix.hystrix.util.HystrixRollingNumber$CumulativeSum
            dup
            invokespecial com.netflix.hystrix.util.HystrixRollingNumber$CumulativeSum.<init>:()V
            putfield com.netflix.hystrix.util.HystrixRollingNumber.cumulativeSum:Lcom/netflix/hystrix/util/HystrixRollingNumber$CumulativeSum;
         2: .line 252
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield com.netflix.hystrix.util.HystrixRollingNumber.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
         3: .line 78
            aload 0 /* this */
            aload 1 /* time */
            putfield com.netflix.hystrix.util.HystrixRollingNumber.time:Lcom/netflix/hystrix/util/HystrixRollingNumber$Time;
         4: .line 79
            aload 0 /* this */
            iload 2 /* timeInMilliseconds */
            putfield com.netflix.hystrix.util.HystrixRollingNumber.timeInMilliseconds:I
         5: .line 80
            aload 0 /* this */
            iload 3 /* numberOfBuckets */
            putfield com.netflix.hystrix.util.HystrixRollingNumber.numberOfBuckets:I
         6: .line 82
            iload 2 /* timeInMilliseconds */
            iload 3 /* numberOfBuckets */
            irem
            ifeq 8
         7: .line 83
            new java.lang.IllegalArgumentException
            dup
            ldc "The timeInMilliseconds must divide equally into numberOfBuckets. For example 1000/10 is ok, 1000/11 is not."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 85
      StackMap locals: com.netflix.hystrix.util.HystrixRollingNumber com.netflix.hystrix.util.HystrixRollingNumber$Time int int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* timeInMilliseconds */
            iload 3 /* numberOfBuckets */
            idiv
            putfield com.netflix.hystrix.util.HystrixRollingNumber.bucketSizeInMillseconds:I
         9: .line 87
            aload 0 /* this */
            new com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray
            dup
            iload 3 /* numberOfBuckets */
            invokespecial com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.<init>:(I)V
            putfield com.netflix.hystrix.util.HystrixRollingNumber.buckets:Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
        10: .line 88
            return
        end local 3 // int numberOfBuckets
        end local 2 // int timeInMilliseconds
        end local 1 // com.netflix.hystrix.util.HystrixRollingNumber$Time time
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0                this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            0   11     1                time  Lcom/netflix/hystrix/util/HystrixRollingNumber$Time;
            0   11     2  timeInMilliseconds  I
            0   11     3     numberOfBuckets  I
    MethodParameters:
                    Name  Flags
      time                
      timeInMilliseconds  
      numberOfBuckets     

  public void increment(com.netflix.hystrix.util.HystrixRollingNumberEvent);
    descriptor: (Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
        start local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
         0: .line 99
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            aload 1 /* type */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$Bucket.getAdder:(Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)Lcom/netflix/hystrix/util/LongAdder;
            invokevirtual com.netflix.hystrix.util.LongAdder.increment:()V
         1: .line 100
            return
        end local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            0    2     1  type  Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;
    MethodParameters:
      Name  Flags
      type  

  public void add(com.netflix.hystrix.util.HystrixRollingNumberEvent, long);
    descriptor: (Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
        start local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
        start local 2 // long value
         0: .line 113
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            aload 1 /* type */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$Bucket.getAdder:(Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)Lcom/netflix/hystrix/util/LongAdder;
            lload 2 /* value */
            invokevirtual com.netflix.hystrix.util.LongAdder.add:(J)V
         1: .line 114
            return
        end local 2 // long value
        end local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            0    2     1   type  Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;
            0    2     2  value  J
    MethodParameters:
       Name  Flags
      type   
      value  

  public void updateRollingMax(com.netflix.hystrix.util.HystrixRollingNumberEvent, long);
    descriptor: (Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
        start local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
        start local 2 // long value
         0: .line 125
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            aload 1 /* type */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$Bucket.getMaxUpdater:(Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)Lcom/netflix/hystrix/util/LongMaxUpdater;
            lload 2 /* value */
            invokevirtual com.netflix.hystrix.util.LongMaxUpdater.update:(J)V
         1: .line 126
            return
        end local 2 // long value
        end local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            0    2     1   type  Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;
            0    2     2  value  J
    MethodParameters:
       Name  Flags
      type   
      value  

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
         0: .line 135
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.buckets:Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.peekLast:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            astore 1 /* lastBucket */
        start local 1 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket lastBucket
         1: .line 136
            aload 1 /* lastBucket */
            ifnull 3
         2: .line 137
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.cumulativeSum:Lcom/netflix/hystrix/util/HystrixRollingNumber$CumulativeSum;
            aload 1 /* lastBucket */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$CumulativeSum.addBucket:(Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;)V
         3: .line 141
      StackMap locals: com.netflix.hystrix.util.HystrixRollingNumber$Bucket
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.buckets:Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.clear:()V
         4: .line 142
            return
        end local 1 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket lastBucket
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            1    5     1  lastBucket  Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;

  public long getCumulativeSum(com.netflix.hystrix.util.HystrixRollingNumberEvent);
    descriptor: (Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
        start local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
         0: .line 158
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber.getValueOfLatestBucket:(Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)J
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.cumulativeSum:Lcom/netflix/hystrix/util/HystrixRollingNumber$CumulativeSum;
            aload 1 /* type */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$CumulativeSum.get:(Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)J
            ladd
            lreturn
        end local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            0    1     1  type  Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;
    MethodParameters:
      Name  Flags
      type  

  public long getRollingSum(com.netflix.hystrix.util.HystrixRollingNumberEvent);
    descriptor: (Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
        start local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
         0: .line 172
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            astore 2 /* lastBucket */
        start local 2 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket lastBucket
         1: .line 173
            aload 2 /* lastBucket */
            ifnonnull 3
         2: .line 174
            lconst_0
            lreturn
         3: .line 176
      StackMap locals: com.netflix.hystrix.util.HystrixRollingNumber$Bucket
      StackMap stack:
            lconst_0
            lstore 3 /* sum */
        start local 3 // long sum
         4: .line 177
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.buckets:Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.iterator:()Ljava/util/Iterator;
            astore 6
            goto 7
      StackMap locals: com.netflix.hystrix.util.HystrixRollingNumber com.netflix.hystrix.util.HystrixRollingNumberEvent com.netflix.hystrix.util.HystrixRollingNumber$Bucket long top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.netflix.hystrix.util.HystrixRollingNumber$Bucket
            astore 5 /* b */
        start local 5 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket b
         6: .line 178
            lload 3 /* sum */
            aload 5 /* b */
            aload 1 /* type */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$Bucket.getAdder:(Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)Lcom/netflix/hystrix/util/LongAdder;
            invokevirtual com.netflix.hystrix.util.LongAdder.sum:()J
            ladd
            lstore 3 /* sum */
        end local 5 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket b
         7: .line 177
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 180
            lload 3 /* sum */
            lreturn
        end local 3 // long sum
        end local 2 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket lastBucket
        end local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            0    9     1        type  Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;
            1    9     2  lastBucket  Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            4    9     3         sum  J
            6    7     5           b  Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
    MethodParameters:
      Name  Flags
      type  

  public long getValueOfLatestBucket(com.netflix.hystrix.util.HystrixRollingNumberEvent);
    descriptor: (Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
        start local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
         0: .line 194
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            astore 2 /* lastBucket */
        start local 2 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket lastBucket
         1: .line 195
            aload 2 /* lastBucket */
            ifnonnull 3
         2: .line 196
            lconst_0
            lreturn
         3: .line 198
      StackMap locals: com.netflix.hystrix.util.HystrixRollingNumber$Bucket
      StackMap stack:
            aload 2 /* lastBucket */
            aload 1 /* type */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$Bucket.get:(Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)J
            lreturn
        end local 2 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket lastBucket
        end local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            0    4     1        type  Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;
            1    4     2  lastBucket  Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
    MethodParameters:
      Name  Flags
      type  

  public long[] getValues(com.netflix.hystrix.util.HystrixRollingNumberEvent);
    descriptor: (Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)[J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
        start local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
         0: .line 213
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            astore 2 /* lastBucket */
        start local 2 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket lastBucket
         1: .line 214
            aload 2 /* lastBucket */
            ifnonnull 3
         2: .line 215
            iconst_0
            newarray 11
            areturn
         3: .line 218
      StackMap locals: com.netflix.hystrix.util.HystrixRollingNumber$Bucket
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.buckets:Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.getArray:()[Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            astore 3 /* bucketArray */
        start local 3 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket[] bucketArray
         4: .line 221
            aload 3 /* bucketArray */
            arraylength
            newarray 11
            astore 4 /* values */
        start local 4 // long[] values
         5: .line 222
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: .line 223
            aload 3 /* bucketArray */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 14
      StackMap locals: com.netflix.hystrix.util.HystrixRollingNumber com.netflix.hystrix.util.HystrixRollingNumberEvent com.netflix.hystrix.util.HystrixRollingNumber$Bucket com.netflix.hystrix.util.HystrixRollingNumber$Bucket[] long[] int top int int com.netflix.hystrix.util.HystrixRollingNumber$Bucket[]
      StackMap stack:
         7: aload 9
            iload 7
            aaload
            astore 6 /* bucket */
        start local 6 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket bucket
         8: .line 224
            aload 1 /* type */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumberEvent.isCounter:()Z
            ifeq 11
         9: .line 225
            aload 4 /* values */
            iload 5 /* i */
            iinc 5 /* i */ 1
            aload 6 /* bucket */
            aload 1 /* type */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$Bucket.getAdder:(Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)Lcom/netflix/hystrix/util/LongAdder;
            invokevirtual com.netflix.hystrix.util.LongAdder.sum:()J
            lastore
        10: .line 226
            goto 13
      StackMap locals: com.netflix.hystrix.util.HystrixRollingNumber com.netflix.hystrix.util.HystrixRollingNumberEvent com.netflix.hystrix.util.HystrixRollingNumber$Bucket com.netflix.hystrix.util.HystrixRollingNumber$Bucket[] long[] int com.netflix.hystrix.util.HystrixRollingNumber$Bucket int int com.netflix.hystrix.util.HystrixRollingNumber$Bucket[]
      StackMap stack:
        11: aload 1 /* type */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumberEvent.isMaxUpdater:()Z
            ifeq 13
        12: .line 227
            aload 4 /* values */
            iload 5 /* i */
            iinc 5 /* i */ 1
            aload 6 /* bucket */
            aload 1 /* type */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$Bucket.getMaxUpdater:(Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)Lcom/netflix/hystrix/util/LongMaxUpdater;
            invokevirtual com.netflix.hystrix.util.LongMaxUpdater.max:()J
            lastore
        end local 6 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket bucket
        13: .line 223
      StackMap locals: com.netflix.hystrix.util.HystrixRollingNumber com.netflix.hystrix.util.HystrixRollingNumberEvent com.netflix.hystrix.util.HystrixRollingNumber$Bucket com.netflix.hystrix.util.HystrixRollingNumber$Bucket[] long[] int top int int com.netflix.hystrix.util.HystrixRollingNumber$Bucket[]
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        14: iload 7
            iload 8
            if_icmplt 7
        15: .line 230
            aload 4 /* values */
            areturn
        end local 5 // int i
        end local 4 // long[] values
        end local 3 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket[] bucketArray
        end local 2 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket lastBucket
        end local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            0   16     1         type  Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;
            1   16     2   lastBucket  Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            4   16     3  bucketArray  [Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            5   16     4       values  [J
            6   16     5            i  I
            8   13     6       bucket  Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
    MethodParameters:
      Name  Flags
      type  

  public long getRollingMaxValue(com.netflix.hystrix.util.HystrixRollingNumberEvent);
    descriptor: (Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
        start local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
         0: .line 243
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber.getValues:(Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;)[J
            astore 2 /* values */
        start local 2 // long[] values
         1: .line 244
            aload 2 /* values */
            arraylength
            ifne 3
         2: .line 245
            lconst_0
            lreturn
         3: .line 247
      StackMap locals: long[]
      StackMap stack:
            aload 2 /* values */
            invokestatic java.util.Arrays.sort:([J)V
         4: .line 248
            aload 2 /* values */
            aload 2 /* values */
            arraylength
            iconst_1
            isub
            laload
            lreturn
        end local 2 // long[] values
        end local 1 // com.netflix.hystrix.util.HystrixRollingNumberEvent type
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            0    5     1    type  Lcom/netflix/hystrix/util/HystrixRollingNumberEvent;
            1    5     2  values  [J
    MethodParameters:
      Name  Flags
      type  

  com.netflix.hystrix.util.HystrixRollingNumber$Bucket getCurrentBucket();
    descriptor: ()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
    flags: (0x0000) 
    Code:
      stack=7, locals=8, args_size=1
        start local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
         0: .line 255
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.time:Lcom/netflix/hystrix/util/HystrixRollingNumber$Time;
            invokeinterface com.netflix.hystrix.util.HystrixRollingNumber$Time.getCurrentTimeInMillis:()J
            lstore 1 /* currentTime */
        start local 1 // long currentTime
         1: .line 264
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.buckets:Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.peekLast:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            astore 3 /* currentBucket */
        start local 3 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket currentBucket
         2: .line 265
            aload 3 /* currentBucket */
            ifnull 4
            lload 1 /* currentTime */
            aload 3 /* currentBucket */
            getfield com.netflix.hystrix.util.HystrixRollingNumber$Bucket.windowStart:J
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.bucketSizeInMillseconds:I
            i2l
            ladd
            lcmp
            ifge 4
         3: .line 269
            aload 3 /* currentBucket */
            areturn
         4: .line 296
      StackMap locals: long com.netflix.hystrix.util.HystrixRollingNumber$Bucket
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
            ifeq 33
         5: .line 298
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.buckets:Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.peekLast:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            ifnonnull 11
         6: .line 300
            new com.netflix.hystrix.util.HystrixRollingNumber$Bucket
            dup
            lload 1 /* currentTime */
            invokespecial com.netflix.hystrix.util.HystrixRollingNumber$Bucket.<init>:(J)V
            astore 4 /* newBucket */
        start local 4 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket newBucket
         7: .line 301
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.buckets:Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
            aload 4 /* newBucket */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.addLast:(Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;)V
         8: .line 302
            aload 4 /* newBucket */
            astore 7
         9: .line 330
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 302
            aload 7
            areturn
        end local 4 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket newBucket
        11: .line 306
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        12: goto 26
        13: .line 308
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.buckets:Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.peekLast:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            astore 5 /* lastBucket */
        start local 5 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket lastBucket
        14: .line 309
            lload 1 /* currentTime */
            aload 5 /* lastBucket */
            getfield com.netflix.hystrix.util.HystrixRollingNumber$Bucket.windowStart:J
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.bucketSizeInMillseconds:I
            i2l
            ladd
            lcmp
            ifge 18
        15: .line 313
            aload 5 /* lastBucket */
            astore 7
        16: .line 330
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        17: .line 313
            aload 7
            areturn
        18: .line 314
      StackMap locals: com.netflix.hystrix.util.HystrixRollingNumber$Bucket
      StackMap stack:
            lload 1 /* currentTime */
            aload 5 /* lastBucket */
            getfield com.netflix.hystrix.util.HystrixRollingNumber$Bucket.windowStart:J
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.bucketSizeInMillseconds:I
            i2l
            ladd
            lsub
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.timeInMilliseconds:I
            i2l
            lcmp
            ifle 23
        19: .line 316
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber.reset:()V
        20: .line 318
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            astore 7
        21: .line 330
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        22: .line 318
            aload 7
            areturn
        23: .line 321
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.buckets:Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
            new com.netflix.hystrix.util.HystrixRollingNumber$Bucket
            dup
            aload 5 /* lastBucket */
            getfield com.netflix.hystrix.util.HystrixRollingNumber$Bucket.windowStart:J
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.bucketSizeInMillseconds:I
            i2l
            ladd
            invokespecial com.netflix.hystrix.util.HystrixRollingNumber$Bucket.<init>:(J)V
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.addLast:(Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;)V
        24: .line 323
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.cumulativeSum:Lcom/netflix/hystrix/util/HystrixRollingNumber$CumulativeSum;
            aload 5 /* lastBucket */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$CumulativeSum.addBucket:(Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;)V
        end local 5 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket lastBucket
        25: .line 306
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 4 /* i */
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.numberOfBuckets:I
            if_icmplt 13
        end local 4 // int i
        27: .line 327
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.buckets:Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.peekLast:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            astore 7
        28: .line 330
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        29: .line 327
            aload 7
            areturn
        30: .line 329
      StackMap locals: com.netflix.hystrix.util.HystrixRollingNumber long com.netflix.hystrix.util.HystrixRollingNumber$Bucket
      StackMap stack: java.lang.Throwable
            astore 6
        31: .line 330
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        32: .line 331
            aload 6
            athrow
        33: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.util.HystrixRollingNumber.buckets:Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.peekLast:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            astore 3 /* currentBucket */
        34: .line 334
            aload 3 /* currentBucket */
            ifnull 36
        35: .line 336
            aload 3 /* currentBucket */
            areturn
        36: .line 341
      StackMap locals:
      StackMap stack:
            ldc 5
            invokestatic java.lang.Thread.sleep:(J)V
        37: .line 342
            goto 39
      StackMap locals:
      StackMap stack: java.lang.Exception
        38: pop
        39: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.util.HystrixRollingNumber.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            areturn
        end local 3 // com.netflix.hystrix.util.HystrixRollingNumber$Bucket currentBucket
        end local 1 // long currentTime
        end local 0 // com.netflix.hystrix.util.HystrixRollingNumber this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   40     0           this  Lcom/netflix/hystrix/util/HystrixRollingNumber;
            1   40     1    currentTime  J
            2   40     3  currentBucket  Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
            7   11     4      newBucket  Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
           12   27     4              i  I
           14   25     5     lastBucket  Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
      Exception table:
        from    to  target  type
           5     9      30  any
          11    16      30  any
          18    21      30  any
          23    28      30  any
          36    37      38  Class java.lang.Exception
}
SourceFile: "HystrixRollingNumber.java"
NestMembers:
  com.netflix.hystrix.util.HystrixRollingNumber$ActualTime  com.netflix.hystrix.util.HystrixRollingNumber$Bucket  com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray  com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState  com.netflix.hystrix.util.HystrixRollingNumber$CumulativeSum  com.netflix.hystrix.util.HystrixRollingNumber$Time
InnerClasses:
  private ActualTime = com.netflix.hystrix.util.HystrixRollingNumber$ActualTime of com.netflix.hystrix.util.HystrixRollingNumber
  Bucket = com.netflix.hystrix.util.HystrixRollingNumber$Bucket of com.netflix.hystrix.util.HystrixRollingNumber
  BucketCircularArray = com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray of com.netflix.hystrix.util.HystrixRollingNumber
  CumulativeSum = com.netflix.hystrix.util.HystrixRollingNumber$CumulativeSum of com.netflix.hystrix.util.HystrixRollingNumber
  abstract Time = com.netflix.hystrix.util.HystrixRollingNumber$Time of com.netflix.hystrix.util.HystrixRollingNumber