public class org.apache.cassandra.locator.DynamicEndpointSnitch extends org.apache.cassandra.locator.AbstractEndpointSnitch implements org.apache.cassandra.locator.ILatencySubscriber, org.apache.cassandra.locator.DynamicEndpointSnitchMBean
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.locator.DynamicEndpointSnitch
  super_class: org.apache.cassandra.locator.AbstractEndpointSnitch
{
  private static final boolean USE_SEVERITY;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final double ALPHA;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.75

  private static final int WINDOW_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  private volatile int dynamicUpdateInterval;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int dynamicResetInterval;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile double dynamicBadnessThreshold;
    descriptor: D
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private static final double RANGE_MERGING_PREFERENCE;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1.5

  private java.lang.String mbeanName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private boolean registered;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private volatile java.util.HashMap<java.net.InetAddress, java.lang.Double> scores;
    descriptor: Ljava/util/HashMap;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/util/HashMap<Ljava/net/InetAddress;Ljava/lang/Double;>;

  private final java.util.concurrent.ConcurrentHashMap<java.net.InetAddress, com.codahale.metrics.ExponentiallyDecayingReservoir> samples;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/net/InetAddress;Lcom/codahale/metrics/ExponentiallyDecayingReservoir;>;

  public final org.apache.cassandra.locator.IEndpointSnitch subsnitch;
    descriptor: Lorg/apache/cassandra/locator/IEndpointSnitch;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  private volatile java.util.concurrent.ScheduledFuture<?> updateSchedular;
    descriptor: Ljava/util/concurrent/ScheduledFuture;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/util/concurrent/ScheduledFuture<*>;

  private volatile java.util.concurrent.ScheduledFuture<?> resetSchedular;
    descriptor: Ljava/util/concurrent/ScheduledFuture;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/util/concurrent/ScheduledFuture<*>;

  private final java.lang.Runnable update;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Runnable reset;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 46
            ldc Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            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.locator.DynamicEndpointSnitch.$assertionsDisabled:Z
         3: .line 48
            ldc "cassandra.ignore_dynamic_snitch_severity"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            ifeq 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: putstatic org.apache.cassandra.locator.DynamicEndpointSnitch.USE_SEVERITY:Z
         6: .line 59
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.cassandra.locator.IEndpointSnitch);
    descriptor: (Lorg/apache/cassandra/locator/IEndpointSnitch;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // org.apache.cassandra.locator.IEndpointSnitch snitch
         0: .line 77
            aload 0 /* this */
            aload 1 /* snitch */
            aconst_null
            invokespecial org.apache.cassandra.locator.DynamicEndpointSnitch.<init>:(Lorg/apache/cassandra/locator/IEndpointSnitch;Ljava/lang/String;)V
         1: .line 78
            return
        end local 1 // org.apache.cassandra.locator.IEndpointSnitch snitch
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0    2     1  snitch  Lorg/apache/cassandra/locator/IEndpointSnitch;
    MethodParameters:
        Name  Flags
      snitch  

  public void <init>(org.apache.cassandra.locator.IEndpointSnitch, java.lang.String);
    descriptor: (Lorg/apache/cassandra/locator/IEndpointSnitch;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // org.apache.cassandra.locator.IEndpointSnitch snitch
        start local 2 // java.lang.String instance
         0: .line 80
            aload 0 /* this */
            invokespecial org.apache.cassandra.locator.AbstractEndpointSnitch.<init>:()V
         1: .line 53
            aload 0 /* this */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicUpdateInterval:()I
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicUpdateInterval:I
         2: .line 54
            aload 0 /* this */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicResetInterval:()I
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicResetInterval:I
         3: .line 55
            aload 0 /* this */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicBadnessThreshold:()D
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicBadnessThreshold:D
         4: .line 62
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.registered:Z
         5: .line 64
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.scores:Ljava/util/HashMap;
         6: .line 65
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.samples:Ljava/util/concurrent/ConcurrentHashMap;
         7: .line 82
            aload 0 /* this */
            ldc "org.apache.cassandra.db:type=DynamicEndpointSnitch"
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.mbeanName:Ljava/lang/String;
         8: .line 83
            aload 2 /* instance */
            ifnull 10
         9: .line 84
            aload 0 /* this */
            dup
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.mbeanName:Ljava/lang/String;
            new java.lang.StringBuilder
            dup_x1
            swap
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ",instance="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* instance */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.mbeanName:Ljava/lang/String;
        10: .line 85
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch org.apache.cassandra.locator.IEndpointSnitch java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* snitch */
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.subsnitch:Lorg/apache/cassandra/locator/IEndpointSnitch;
        11: .line 86
            aload 0 /* this */
            new org.apache.cassandra.locator.DynamicEndpointSnitch$1
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.locator.DynamicEndpointSnitch$1.<init>:(Lorg/apache/cassandra/locator/DynamicEndpointSnitch;)V
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.update:Ljava/lang/Runnable;
        12: .line 93
            aload 0 /* this */
            new org.apache.cassandra.locator.DynamicEndpointSnitch$2
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.locator.DynamicEndpointSnitch$2.<init>:(Lorg/apache/cassandra/locator/DynamicEndpointSnitch;)V
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.reset:Ljava/lang/Runnable;
        13: .line 103
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.isDaemonInitialized:()Z
            ifeq 17
        14: .line 105
            aload 0 /* this */
            getstatic org.apache.cassandra.concurrent.ScheduledExecutors.scheduledTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.update:Ljava/lang/Runnable;
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicUpdateInterval:I
            i2l
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicUpdateInterval:I
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.scheduleWithFixedDelay:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.updateSchedular:Ljava/util/concurrent/ScheduledFuture;
        15: .line 106
            aload 0 /* this */
            getstatic org.apache.cassandra.concurrent.ScheduledExecutors.scheduledTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.reset:Ljava/lang/Runnable;
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicResetInterval:I
            i2l
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicResetInterval:I
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.scheduleWithFixedDelay:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.resetSchedular:Ljava/util/concurrent/ScheduledFuture;
        16: .line 107
            aload 0 /* this */
            invokevirtual org.apache.cassandra.locator.DynamicEndpointSnitch.registerMBean:()V
        17: .line 109
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String instance
        end local 1 // org.apache.cassandra.locator.IEndpointSnitch snitch
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0   18     1    snitch  Lorg/apache/cassandra/locator/IEndpointSnitch;
            0   18     2  instance  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      snitch    
      instance  

  public void applyConfigChanges();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
         0: .line 117
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicUpdateInterval:I
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicUpdateInterval:()I
            if_icmpeq 5
         1: .line 119
            aload 0 /* this */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicUpdateInterval:()I
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicUpdateInterval:I
         2: .line 120
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.isDaemonInitialized:()Z
            ifeq 5
         3: .line 122
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.updateSchedular:Ljava/util/concurrent/ScheduledFuture;
            iconst_0
            invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
            pop
         4: .line 123
            aload 0 /* this */
            getstatic org.apache.cassandra.concurrent.ScheduledExecutors.scheduledTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.update:Ljava/lang/Runnable;
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicUpdateInterval:I
            i2l
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicUpdateInterval:I
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.scheduleWithFixedDelay:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.updateSchedular:Ljava/util/concurrent/ScheduledFuture;
         5: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicResetInterval:I
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicResetInterval:()I
            if_icmpeq 10
         6: .line 129
            aload 0 /* this */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicResetInterval:()I
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicResetInterval:I
         7: .line 130
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.isDaemonInitialized:()Z
            ifeq 10
         8: .line 132
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.resetSchedular:Ljava/util/concurrent/ScheduledFuture;
            iconst_0
            invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
            pop
         9: .line 133
            aload 0 /* this */
            getstatic org.apache.cassandra.concurrent.ScheduledExecutors.scheduledTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.reset:Ljava/lang/Runnable;
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicResetInterval:I
            i2l
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicResetInterval:I
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.scheduleWithFixedDelay:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.resetSchedular:Ljava/util/concurrent/ScheduledFuture;
        10: .line 137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicBadnessThreshold:()D
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicBadnessThreshold:D
        11: .line 138
            return
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;

  private void registerMBean();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
         0: .line 142
            getstatic org.apache.cassandra.utils.MBeanWrapper.instance:Lorg/apache/cassandra/utils/MBeanWrapper;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.mbeanName:Ljava/lang/String;
            invokeinterface org.apache.cassandra.utils.MBeanWrapper.registerMBean:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 143
            return
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
         0: .line 147
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.updateSchedular:Ljava/util/concurrent/ScheduledFuture;
            iconst_0
            invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
            pop
         1: .line 148
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.resetSchedular:Ljava/util/concurrent/ScheduledFuture;
            iconst_0
            invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
            pop
         2: .line 150
            getstatic org.apache.cassandra.utils.MBeanWrapper.instance:Lorg/apache/cassandra/utils/MBeanWrapper;
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.mbeanName:Ljava/lang/String;
            invokeinterface org.apache.cassandra.utils.MBeanWrapper.unregisterMBean:(Ljava/lang/String;)V
         3: .line 151
            return
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;

  public void gossiperStarting();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
         0: .line 156
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.subsnitch:Lorg/apache/cassandra/locator/IEndpointSnitch;
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.gossiperStarting:()V
         1: .line 157
            return
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;

  public java.lang.String getRack(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.net.InetAddress endpoint
         0: .line 161
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.subsnitch:Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 1 /* endpoint */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getRack:(Ljava/net/InetAddress;)Ljava/lang/String;
            areturn
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0    1     1  endpoint  Ljava/net/InetAddress;
    MethodParameters:
          Name  Flags
      endpoint  

  public java.lang.String getDatacenter(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.net.InetAddress endpoint
         0: .line 166
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.subsnitch:Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 1 /* endpoint */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            areturn
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0    1     1  endpoint  Ljava/net/InetAddress;
    MethodParameters:
          Name  Flags
      endpoint  

  public java.util.List<java.net.InetAddress> getSortedListByProximity(java.net.InetAddress, java.util.Collection<java.net.InetAddress>);
    descriptor: (Ljava/net/InetAddress;Ljava/util/Collection;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.net.InetAddress address
        start local 2 // java.util.Collection addresses
         0: .line 171
            new java.util.ArrayList
            dup
            aload 2 /* addresses */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 3 /* list */
        start local 3 // java.util.List list
         1: .line 172
            aload 0 /* this */
            aload 1 /* address */
            aload 3 /* list */
            invokevirtual org.apache.cassandra.locator.DynamicEndpointSnitch.sortByProximity:(Ljava/net/InetAddress;Ljava/util/List;)V
         2: .line 173
            aload 3 /* list */
            areturn
        end local 3 // java.util.List list
        end local 2 // java.util.Collection addresses
        end local 1 // java.net.InetAddress address
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0    3     1    address  Ljava/net/InetAddress;
            0    3     2  addresses  Ljava/util/Collection<Ljava/net/InetAddress;>;
            1    3     3       list  Ljava/util/List<Ljava/net/InetAddress;>;
    Signature: (Ljava/net/InetAddress;Ljava/util/Collection<Ljava/net/InetAddress;>;)Ljava/util/List<Ljava/net/InetAddress;>;
    MethodParameters:
           Name  Flags
      address    final
      addresses  

  public void sortByProximity(java.net.InetAddress, java.util.List<java.net.InetAddress>);
    descriptor: (Ljava/net/InetAddress;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.net.InetAddress address
        start local 2 // java.util.List addresses
         0: .line 179
            getstatic org.apache.cassandra.locator.DynamicEndpointSnitch.$assertionsDisabled:Z
            ifne 1
            aload 1 /* address */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 180
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicBadnessThreshold:D
            dconst_0
            dcmpl
            ifne 4
         2: .line 182
            aload 0 /* this */
            aload 1 /* address */
            aload 2 /* addresses */
            invokevirtual org.apache.cassandra.locator.DynamicEndpointSnitch.sortByProximityWithScore:(Ljava/net/InetAddress;Ljava/util/List;)V
         3: .line 183
            goto 5
         4: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* address */
            aload 2 /* addresses */
            invokevirtual org.apache.cassandra.locator.DynamicEndpointSnitch.sortByProximityWithBadness:(Ljava/net/InetAddress;Ljava/util/List;)V
         5: .line 188
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.List addresses
        end local 1 // java.net.InetAddress address
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0    6     1    address  Ljava/net/InetAddress;
            0    6     2  addresses  Ljava/util/List<Ljava/net/InetAddress;>;
    Signature: (Ljava/net/InetAddress;Ljava/util/List<Ljava/net/InetAddress;>;)V
    MethodParameters:
           Name  Flags
      address    final
      addresses  

  private void sortByProximityWithScore(java.net.InetAddress, java.util.List<java.net.InetAddress>);
    descriptor: (Ljava/net/InetAddress;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.net.InetAddress address
        start local 2 // java.util.List addresses
         0: .line 196
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.scores:Ljava/util/HashMap;
            astore 3 /* scores */
        start local 3 // java.util.HashMap scores
         1: .line 197
            aload 2 /* addresses */
            new org.apache.cassandra.locator.DynamicEndpointSnitch$3
            dup
            aload 0 /* this */
            aload 1 /* address */
            aload 3 /* scores */
            invokespecial org.apache.cassandra.locator.DynamicEndpointSnitch$3.<init>:(Lorg/apache/cassandra/locator/DynamicEndpointSnitch;Ljava/net/InetAddress;Ljava/util/HashMap;)V
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
         2: .line 204
            return
        end local 3 // java.util.HashMap scores
        end local 2 // java.util.List addresses
        end local 1 // java.net.InetAddress address
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0    3     1    address  Ljava/net/InetAddress;
            0    3     2  addresses  Ljava/util/List<Ljava/net/InetAddress;>;
            1    3     3     scores  Ljava/util/HashMap<Ljava/net/InetAddress;Ljava/lang/Double;>;
    Signature: (Ljava/net/InetAddress;Ljava/util/List<Ljava/net/InetAddress;>;)V
    MethodParameters:
           Name  Flags
      address    final
      addresses  

  private void sortByProximityWithBadness(java.net.InetAddress, java.util.List<java.net.InetAddress>);
    descriptor: (Ljava/net/InetAddress;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=9, args_size=3
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.net.InetAddress address
        start local 2 // java.util.List addresses
         0: .line 208
            aload 2 /* addresses */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpge 2
         1: .line 209
            return
         2: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.subsnitch:Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 1 /* address */
            aload 2 /* addresses */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.sortByProximity:(Ljava/net/InetAddress;Ljava/util/List;)V
         3: .line 212
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.scores:Ljava/util/HashMap;
            astore 3 /* scores */
        start local 3 // java.util.HashMap scores
         4: .line 214
            new java.util.ArrayList
            dup
            aload 2 /* addresses */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* subsnitchOrderedScores */
        start local 4 // java.util.ArrayList subsnitchOrderedScores
         5: .line 215
            aload 2 /* addresses */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 11
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch java.net.InetAddress java.util.List java.util.HashMap java.util.ArrayList top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 5 /* inet */
        start local 5 // java.net.InetAddress inet
         7: .line 217
            aload 3 /* scores */
            aload 5 /* inet */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double
            astore 7 /* score */
        start local 7 // java.lang.Double score
         8: .line 218
            aload 7 /* score */
            ifnonnull 10
         9: .line 219
            goto 11
        10: .line 220
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch java.net.InetAddress java.util.List java.util.HashMap java.util.ArrayList java.net.InetAddress java.util.Iterator java.lang.Double
      StackMap stack:
            aload 4 /* subsnitchOrderedScores */
            aload 7 /* score */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.Double score
        end local 5 // java.net.InetAddress inet
        11: .line 215
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch java.net.InetAddress java.util.List java.util.HashMap java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        12: .line 226
            new java.util.ArrayList
            dup
            aload 4 /* subsnitchOrderedScores */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 5 /* sortedScores */
        start local 5 // java.util.ArrayList sortedScores
        13: .line 227
            aload 5 /* sortedScores */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
        14: .line 229
            aload 5 /* sortedScores */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 6 /* sortedScoreIterator */
        start local 6 // java.util.Iterator sortedScoreIterator
        15: .line 230
            aload 4 /* subsnitchOrderedScores */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 20
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch java.net.InetAddress java.util.List java.util.HashMap java.util.ArrayList java.util.ArrayList java.util.Iterator top java.util.Iterator
      StackMap stack:
        16: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Double
            astore 7 /* subsnitchScore */
        start local 7 // java.lang.Double subsnitchScore
        17: .line 232
            aload 7 /* subsnitchScore */
            invokevirtual java.lang.Double.doubleValue:()D
            aload 6 /* sortedScoreIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicBadnessThreshold:D
            dadd
            dmul
            dcmpl
            ifle 20
        18: .line 234
            aload 0 /* this */
            aload 1 /* address */
            aload 2 /* addresses */
            invokevirtual org.apache.cassandra.locator.DynamicEndpointSnitch.sortByProximityWithScore:(Ljava/net/InetAddress;Ljava/util/List;)V
        19: .line 235
            return
        end local 7 // java.lang.Double subsnitchScore
        20: .line 230
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        21: .line 238
            return
        end local 6 // java.util.Iterator sortedScoreIterator
        end local 5 // java.util.ArrayList sortedScores
        end local 4 // java.util.ArrayList subsnitchOrderedScores
        end local 3 // java.util.HashMap scores
        end local 2 // java.util.List addresses
        end local 1 // java.net.InetAddress address
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   22     0                    this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0   22     1                 address  Ljava/net/InetAddress;
            0   22     2               addresses  Ljava/util/List<Ljava/net/InetAddress;>;
            4   22     3                  scores  Ljava/util/HashMap<Ljava/net/InetAddress;Ljava/lang/Double;>;
            5   22     4  subsnitchOrderedScores  Ljava/util/ArrayList<Ljava/lang/Double;>;
            7   11     5                    inet  Ljava/net/InetAddress;
            8   11     7                   score  Ljava/lang/Double;
           13   22     5            sortedScores  Ljava/util/ArrayList<Ljava/lang/Double;>;
           15   22     6     sortedScoreIterator  Ljava/util/Iterator<Ljava/lang/Double;>;
           17   20     7          subsnitchScore  Ljava/lang/Double;
    Signature: (Ljava/net/InetAddress;Ljava/util/List<Ljava/net/InetAddress;>;)V
    MethodParameters:
           Name  Flags
      address    final
      addresses  

  private int compareEndpoints(java.net.InetAddress, java.net.InetAddress, java.net.InetAddress, java.util.Map<java.net.InetAddress, java.lang.Double>);
    descriptor: (Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/util/Map;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.net.InetAddress target
        start local 2 // java.net.InetAddress a1
        start local 3 // java.net.InetAddress a2
        start local 4 // java.util.Map scores
         0: .line 243
            aload 4 /* scores */
            aload 2 /* a1 */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double
            astore 5 /* scored1 */
        start local 5 // java.lang.Double scored1
         1: .line 244
            aload 4 /* scores */
            aload 3 /* a2 */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double
            astore 6 /* scored2 */
        start local 6 // java.lang.Double scored2
         2: .line 246
            aload 5 /* scored1 */
            ifnonnull 4
         3: .line 248
            dconst_0
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            astore 5 /* scored1 */
         4: .line 251
      StackMap locals: java.lang.Double java.lang.Double
      StackMap stack:
            aload 6 /* scored2 */
            ifnonnull 6
         5: .line 253
            dconst_0
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            astore 6 /* scored2 */
         6: .line 256
      StackMap locals:
      StackMap stack:
            aload 5 /* scored1 */
            aload 6 /* scored2 */
            invokevirtual java.lang.Double.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 257
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.subsnitch:Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 1 /* target */
            aload 2 /* a1 */
            aload 3 /* a2 */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.compareEndpoints:(Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/net/InetAddress;)I
            ireturn
         8: .line 258
      StackMap locals:
      StackMap stack:
            aload 5 /* scored1 */
            invokevirtual java.lang.Double.doubleValue:()D
            aload 6 /* scored2 */
            invokevirtual java.lang.Double.doubleValue:()D
            dcmpg
            ifge 10
         9: .line 259
            iconst_m1
            ireturn
        10: .line 261
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // java.lang.Double scored2
        end local 5 // java.lang.Double scored1
        end local 4 // java.util.Map scores
        end local 3 // java.net.InetAddress a2
        end local 2 // java.net.InetAddress a1
        end local 1 // java.net.InetAddress target
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0   11     1   target  Ljava/net/InetAddress;
            0   11     2       a1  Ljava/net/InetAddress;
            0   11     3       a2  Ljava/net/InetAddress;
            0   11     4   scores  Ljava/util/Map<Ljava/net/InetAddress;Ljava/lang/Double;>;
            1   11     5  scored1  Ljava/lang/Double;
            2   11     6  scored2  Ljava/lang/Double;
    Signature: (Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/util/Map<Ljava/net/InetAddress;Ljava/lang/Double;>;)I
    MethodParameters:
        Name  Flags
      target  
      a1      
      a2      
      scores  

  public int compareEndpoints(java.net.InetAddress, java.net.InetAddress, java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/net/InetAddress;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.net.InetAddress target
        start local 2 // java.net.InetAddress a1
        start local 3 // java.net.InetAddress a2
         0: .line 269
            new java.lang.UnsupportedOperationException
            dup
            ldc "You shouldn't wrap the DynamicEndpointSnitch (within itself or otherwise)"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.net.InetAddress a2
        end local 2 // java.net.InetAddress a1
        end local 1 // java.net.InetAddress target
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0    1     1  target  Ljava/net/InetAddress;
            0    1     2      a1  Ljava/net/InetAddress;
            0    1     3      a2  Ljava/net/InetAddress;
    MethodParameters:
        Name  Flags
      target  
      a1      
      a2      

  public void receiveTiming(java.net.InetAddress, long);
    descriptor: (Ljava/net/InetAddress;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.net.InetAddress host
        start local 2 // long latency
         0: .line 274
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.samples:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* host */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.codahale.metrics.ExponentiallyDecayingReservoir
            astore 4 /* sample */
        start local 4 // com.codahale.metrics.ExponentiallyDecayingReservoir sample
         1: .line 275
            aload 4 /* sample */
            ifnonnull 6
         2: .line 277
            new com.codahale.metrics.ExponentiallyDecayingReservoir
            dup
            bipush 100
            ldc 0.75
            invokespecial com.codahale.metrics.ExponentiallyDecayingReservoir.<init>:(ID)V
            astore 5 /* maybeNewSample */
        start local 5 // com.codahale.metrics.ExponentiallyDecayingReservoir maybeNewSample
         3: .line 278
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.samples:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* host */
            aload 5 /* maybeNewSample */
            invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.codahale.metrics.ExponentiallyDecayingReservoir
            astore 4 /* sample */
         4: .line 279
            aload 4 /* sample */
            ifnonnull 6
         5: .line 280
            aload 5 /* maybeNewSample */
            astore 4 /* sample */
        end local 5 // com.codahale.metrics.ExponentiallyDecayingReservoir maybeNewSample
         6: .line 282
      StackMap locals: com.codahale.metrics.ExponentiallyDecayingReservoir
      StackMap stack:
            aload 4 /* sample */
            lload 2 /* latency */
            invokevirtual com.codahale.metrics.ExponentiallyDecayingReservoir.update:(J)V
         7: .line 283
            return
        end local 4 // com.codahale.metrics.ExponentiallyDecayingReservoir sample
        end local 2 // long latency
        end local 1 // java.net.InetAddress host
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0    8     1            host  Ljava/net/InetAddress;
            0    8     2         latency  J
            1    8     4          sample  Lcom/codahale/metrics/ExponentiallyDecayingReservoir;
            3    6     5  maybeNewSample  Lcom/codahale/metrics/ExponentiallyDecayingReservoir;
    MethodParameters:
         Name  Flags
      host     
      latency  

  private void updateScores();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
         0: .line 287
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.isGossipActive:()Z
            ifne 2
         1: .line 288
            return
         2: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.registered:Z
            ifne 6
         3: .line 291
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            ifnull 6
         4: .line 293
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.MessagingService.register:(Lorg/apache/cassandra/locator/ILatencySubscriber;)V
         5: .line 294
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.registered:Z
         6: .line 298
      StackMap locals:
      StackMap stack:
            dconst_1
            dstore 1 /* maxLatency */
        start local 1 // double maxLatency
         7: .line 300
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.samples:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.size:()I
            invokespecial java.util.HashMap.<init>:(I)V
            astore 3 /* snapshots */
        start local 3 // java.util.Map snapshots
         8: .line 301
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.samples:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch double java.util.Map top java.util.Iterator
      StackMap stack:
         9: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
        10: .line 303
            aload 3 /* snapshots */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.codahale.metrics.ExponentiallyDecayingReservoir
            invokevirtual com.codahale.metrics.ExponentiallyDecayingReservoir.getSnapshot:()Lcom/codahale/metrics/Snapshot;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.util.Map$Entry entry
        11: .line 301
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 308
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* newScores */
        start local 4 // java.util.HashMap newScores
        13: .line 309
            aload 3 /* snapshots */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 18
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch double java.util.Map java.util.HashMap top java.util.Iterator
      StackMap stack:
        14: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* entry */
        start local 5 // java.util.Map$Entry entry
        15: .line 311
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.codahale.metrics.Snapshot
            invokevirtual com.codahale.metrics.Snapshot.getMedian:()D
            dstore 7 /* mean */
        start local 7 // double mean
        16: .line 312
            dload 7 /* mean */
            dload 1 /* maxLatency */
            dcmpl
            ifle 18
        17: .line 313
            dload 7 /* mean */
            dstore 1 /* maxLatency */
        end local 7 // double mean
        end local 5 // java.util.Map$Entry entry
        18: .line 309
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        19: .line 316
            aload 3 /* snapshots */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 25
      StackMap locals:
      StackMap stack:
        20: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* entry */
        start local 5 // java.util.Map$Entry entry
        21: .line 318
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.codahale.metrics.Snapshot
            invokevirtual com.codahale.metrics.Snapshot.getMedian:()D
            dload 1 /* maxLatency */
            ddiv
            dstore 7 /* score */
        start local 7 // double score
        22: .line 321
            getstatic org.apache.cassandra.locator.DynamicEndpointSnitch.USE_SEVERITY:Z
            ifeq 24
        23: .line 322
            dload 7 /* score */
            aload 0 /* this */
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokevirtual org.apache.cassandra.locator.DynamicEndpointSnitch.getSeverity:(Ljava/net/InetAddress;)D
            dadd
            dstore 7 /* score */
        24: .line 324
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch double java.util.Map java.util.HashMap java.util.Map$Entry java.util.Iterator double
      StackMap stack:
            aload 4 /* newScores */
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            dload 7 /* score */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // double score
        end local 5 // java.util.Map$Entry entry
        25: .line 316
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch double java.util.Map java.util.HashMap top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        26: .line 326
            aload 0 /* this */
            aload 4 /* newScores */
            putfield org.apache.cassandra.locator.DynamicEndpointSnitch.scores:Ljava/util/HashMap;
        27: .line 327
            return
        end local 4 // java.util.HashMap newScores
        end local 3 // java.util.Map snapshots
        end local 1 // double maxLatency
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0        this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            7   28     1  maxLatency  D
            8   28     3   snapshots  Ljava/util/Map<Ljava/net/InetAddress;Lcom/codahale/metrics/Snapshot;>;
           10   11     4       entry  Ljava/util/Map$Entry<Ljava/net/InetAddress;Lcom/codahale/metrics/ExponentiallyDecayingReservoir;>;
           13   28     4   newScores  Ljava/util/HashMap<Ljava/net/InetAddress;Ljava/lang/Double;>;
           15   18     5       entry  Ljava/util/Map$Entry<Ljava/net/InetAddress;Lcom/codahale/metrics/Snapshot;>;
           16   18     7        mean  D
           21   25     5       entry  Ljava/util/Map$Entry<Ljava/net/InetAddress;Lcom/codahale/metrics/Snapshot;>;
           22   25     7       score  D

  private void reset();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
         0: .line 331
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.samples:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
         1: .line 332
            return
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;

  public java.util.Map<java.net.InetAddress, java.lang.Double> getScores();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
         0: .line 336
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.scores:Ljava/util/HashMap;
            areturn
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
    Signature: ()Ljava/util/Map<Ljava/net/InetAddress;Ljava/lang/Double;>;

  public int getUpdateInterval();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
         0: .line 341
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicUpdateInterval:I
            ireturn
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;

  public int getResetInterval();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
         0: .line 345
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicResetInterval:I
            ireturn
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;

  public double getBadnessThreshold();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
         0: .line 349
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.dynamicBadnessThreshold:D
            dreturn
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;

  public java.lang.String getSubsnitchClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
         0: .line 354
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.subsnitch:Lorg/apache/cassandra/locator/IEndpointSnitch;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;

  public java.util.List<java.lang.Double> dumpTimings(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.lang.String hostname
         0: .line 359
            aload 1 /* hostname */
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            astore 2 /* host */
        start local 2 // java.net.InetAddress host
         1: .line 360
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* timings */
        start local 3 // java.util.ArrayList timings
         2: .line 361
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.samples:Ljava/util/concurrent/ConcurrentHashMap;
            aload 2 /* host */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.codahale.metrics.ExponentiallyDecayingReservoir
            astore 4 /* sample */
        start local 4 // com.codahale.metrics.ExponentiallyDecayingReservoir sample
         3: .line 362
            aload 4 /* sample */
            ifnull 9
         4: .line 364
            aload 4 /* sample */
            invokevirtual com.codahale.metrics.ExponentiallyDecayingReservoir.getSnapshot:()Lcom/codahale/metrics/Snapshot;
            invokevirtual com.codahale.metrics.Snapshot.getValues:()[J
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 8
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch java.lang.String java.net.InetAddress java.util.ArrayList com.codahale.metrics.ExponentiallyDecayingReservoir top top int int long[]
      StackMap stack:
         5: aload 9
            iload 7
            laload
            l2d
            dstore 5 /* time */
        start local 5 // double time
         6: .line 365
            aload 3 /* timings */
            dload 5 /* time */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // double time
         7: .line 364
            iinc 7 1
      StackMap locals:
      StackMap stack:
         8: iload 7
            iload 8
            if_icmplt 5
         9: .line 367
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch java.lang.String java.net.InetAddress java.util.ArrayList com.codahale.metrics.ExponentiallyDecayingReservoir
      StackMap stack:
            aload 3 /* timings */
            areturn
        end local 4 // com.codahale.metrics.ExponentiallyDecayingReservoir sample
        end local 3 // java.util.ArrayList timings
        end local 2 // java.net.InetAddress host
        end local 1 // java.lang.String hostname
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0   10     1  hostname  Ljava/lang/String;
            1   10     2      host  Ljava/net/InetAddress;
            2   10     3   timings  Ljava/util/ArrayList<Ljava/lang/Double;>;
            3   10     4    sample  Lcom/codahale/metrics/ExponentiallyDecayingReservoir;
            6    7     5      time  D
    Exceptions:
      throws java.net.UnknownHostException
    Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/Double;>;
    MethodParameters:
          Name  Flags
      hostname  

  public void setSeverity(double);
    descriptor: (D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // double severity
         0: .line 372
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            getstatic org.apache.cassandra.gms.ApplicationState.SEVERITY:Lorg/apache/cassandra/gms/ApplicationState;
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            dload 1 /* severity */
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.severity:(D)Lorg/apache/cassandra/gms/VersionedValue;
            invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
         1: .line 373
            return
        end local 1 // double severity
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0    2     1  severity  D
    MethodParameters:
          Name  Flags
      severity  

  private double getSeverity(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)D
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.net.InetAddress endpoint
         0: .line 377
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            astore 2 /* state */
        start local 2 // org.apache.cassandra.gms.EndpointState state
         1: .line 378
            aload 2 /* state */
            ifnonnull 3
         2: .line 379
            dconst_0
            dreturn
         3: .line 381
      StackMap locals: org.apache.cassandra.gms.EndpointState
      StackMap stack:
            aload 2 /* state */
            getstatic org.apache.cassandra.gms.ApplicationState.SEVERITY:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.EndpointState.getApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;)Lorg/apache/cassandra/gms/VersionedValue;
            astore 3 /* event */
        start local 3 // org.apache.cassandra.gms.VersionedValue event
         4: .line 382
            aload 3 /* event */
            ifnonnull 6
         5: .line 383
            dconst_0
            dreturn
         6: .line 385
      StackMap locals: org.apache.cassandra.gms.VersionedValue
      StackMap stack:
            aload 3 /* event */
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            dreturn
        end local 3 // org.apache.cassandra.gms.VersionedValue event
        end local 2 // org.apache.cassandra.gms.EndpointState state
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0    7     1  endpoint  Ljava/net/InetAddress;
            1    7     2     state  Lorg/apache/cassandra/gms/EndpointState;
            4    7     3     event  Lorg/apache/cassandra/gms/VersionedValue;
    MethodParameters:
          Name  Flags
      endpoint  

  public double getSeverity();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
         0: .line 390
            aload 0 /* this */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.DynamicEndpointSnitch.getSeverity:(Ljava/net/InetAddress;)D
            dreturn
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;

  public boolean isWorthMergingForRangeQuery(java.util.List<java.net.InetAddress>, java.util.List<java.net.InetAddress>, java.util.List<java.net.InetAddress>);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.util.List merged
        start local 2 // java.util.List l1
        start local 3 // java.util.List l2
         0: .line 395
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.subsnitch:Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 1 /* merged */
            aload 2 /* l1 */
            aload 3 /* l2 */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.isWorthMergingForRangeQuery:(Ljava/util/List;Ljava/util/List;Ljava/util/List;)Z
            ifne 2
         1: .line 396
            iconst_0
            ireturn
         2: .line 399
      StackMap locals:
      StackMap stack:
            aload 2 /* l1 */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 4
            aload 3 /* l2 */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 4
            aload 2 /* l1 */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.net.InetAddress
            aload 3 /* l2 */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 400
            iconst_1
            ireturn
         4: .line 403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* merged */
            invokevirtual org.apache.cassandra.locator.DynamicEndpointSnitch.maxScore:(Ljava/util/List;)D
            dstore 4 /* maxMerged */
        start local 4 // double maxMerged
         5: .line 404
            aload 0 /* this */
            aload 2 /* l1 */
            invokevirtual org.apache.cassandra.locator.DynamicEndpointSnitch.maxScore:(Ljava/util/List;)D
            dstore 6 /* maxL1 */
        start local 6 // double maxL1
         6: .line 405
            aload 0 /* this */
            aload 3 /* l2 */
            invokevirtual org.apache.cassandra.locator.DynamicEndpointSnitch.maxScore:(Ljava/util/List;)D
            dstore 8 /* maxL2 */
        start local 8 // double maxL2
         7: .line 406
            dload 4 /* maxMerged */
            dconst_0
            dcmpg
            iflt 8
            dload 6 /* maxL1 */
            dconst_0
            dcmpg
            iflt 8
            dload 8 /* maxL2 */
            dconst_0
            dcmpg
            ifge 9
         8: .line 407
      StackMap locals: double double double
      StackMap stack:
            iconst_1
            ireturn
         9: .line 409
      StackMap locals:
      StackMap stack:
            dload 4 /* maxMerged */
            dload 6 /* maxL1 */
            dload 8 /* maxL2 */
            dadd
            ldc 1.5
            dmul
            dcmpg
            ifgt 10
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        10: iconst_0
            ireturn
        end local 8 // double maxL2
        end local 6 // double maxL1
        end local 4 // double maxMerged
        end local 3 // java.util.List l2
        end local 2 // java.util.List l1
        end local 1 // java.util.List merged
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0   11     1     merged  Ljava/util/List<Ljava/net/InetAddress;>;
            0   11     2         l1  Ljava/util/List<Ljava/net/InetAddress;>;
            0   11     3         l2  Ljava/util/List<Ljava/net/InetAddress;>;
            5   11     4  maxMerged  D
            6   11     6      maxL1  D
            7   11     8      maxL2  D
    Signature: (Ljava/util/List<Ljava/net/InetAddress;>;Ljava/util/List<Ljava/net/InetAddress;>;Ljava/util/List<Ljava/net/InetAddress;>;)Z
    MethodParameters:
        Name  Flags
      merged  
      l1      
      l2      

  private double maxScore(java.util.List<java.net.InetAddress>);
    descriptor: (Ljava/util/List;)D
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
        start local 1 // java.util.List endpoints
         0: .line 415
            ldc -1.0
            dstore 2 /* maxScore */
        start local 2 // double maxScore
         1: .line 416
            aload 1 /* endpoints */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch java.util.List double top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 4 /* endpoint */
        start local 4 // java.net.InetAddress endpoint
         3: .line 418
            aload 0 /* this */
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.scores:Ljava/util/HashMap;
            aload 4 /* endpoint */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Double
            astore 6 /* score */
        start local 6 // java.lang.Double score
         4: .line 419
            aload 6 /* score */
            ifnonnull 6
         5: .line 420
            goto 8
         6: .line 422
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch java.util.List double java.net.InetAddress java.util.Iterator java.lang.Double
      StackMap stack:
            aload 6 /* score */
            invokevirtual java.lang.Double.doubleValue:()D
            dload 2 /* maxScore */
            dcmpl
            ifle 8
         7: .line 423
            aload 6 /* score */
            invokevirtual java.lang.Double.doubleValue:()D
            dstore 2 /* maxScore */
        end local 6 // java.lang.Double score
        end local 4 // java.net.InetAddress endpoint
         8: .line 416
      StackMap locals: org.apache.cassandra.locator.DynamicEndpointSnitch java.util.List double top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         9: .line 425
            dload 2 /* maxScore */
            dreturn
        end local 2 // double maxScore
        end local 1 // java.util.List endpoints
        end local 0 // org.apache.cassandra.locator.DynamicEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
            0   10     1  endpoints  Ljava/util/List<Ljava/net/InetAddress;>;
            1   10     2   maxScore  D
            3    8     4   endpoint  Ljava/net/InetAddress;
            4    8     6      score  Ljava/lang/Double;
    Signature: (Ljava/util/List<Ljava/net/InetAddress;>;)D
    MethodParameters:
           Name  Flags
      endpoints  
}
SourceFile: "DynamicEndpointSnitch.java"
NestMembers:
  org.apache.cassandra.locator.DynamicEndpointSnitch$1  org.apache.cassandra.locator.DynamicEndpointSnitch$2  org.apache.cassandra.locator.DynamicEndpointSnitch$3
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public VersionedValueFactory = org.apache.cassandra.gms.VersionedValue$VersionedValueFactory of org.apache.cassandra.gms.VersionedValue
  org.apache.cassandra.locator.DynamicEndpointSnitch$1
  org.apache.cassandra.locator.DynamicEndpointSnitch$2
  org.apache.cassandra.locator.DynamicEndpointSnitch$3