public final class org.eclipse.collections.impl.block.factory.Comparators
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.eclipse.collections.impl.block.factory.Comparators
  super_class: java.lang.Object
{
  private static final org.eclipse.collections.api.block.SerializableComparator<?> NATURAL_ORDER_COMPARATOR;
    descriptor: Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/eclipse/collections/api/block/SerializableComparator<*>;

  private static final org.eclipse.collections.api.block.SerializableComparator<?> REVERSE_NATURAL_ORDER_COMPARATOR;
    descriptor: Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/eclipse/collections/api/block/SerializableComparator<*>;

  private static final org.eclipse.collections.api.block.SerializableComparator<?> POWER_SET_COMPARATOR;
    descriptor: Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/eclipse/collections/api/block/SerializableComparator<*>;

  private static final org.eclipse.collections.api.block.SerializableComparator<java.util.Collection<?>> ASCENDING_COLLECTION_SIZE_COMPARATOR;
    descriptor: Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/eclipse/collections/api/block/SerializableComparator<Ljava/util/Collection<*>;>;

  private static final org.eclipse.collections.api.block.SerializableComparator<java.util.Collection<?>> DESCENDING_COLLECTION_SIZE_COMPARATOR;
    descriptor: Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/eclipse/collections/api/block/SerializableComparator<Ljava/util/Collection<*>;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 32
            new org.eclipse.collections.impl.block.factory.Comparators$NaturalOrderComparator
            dup
            invokespecial org.eclipse.collections.impl.block.factory.Comparators$NaturalOrderComparator.<init>:()V
            putstatic org.eclipse.collections.impl.block.factory.Comparators.NATURAL_ORDER_COMPARATOR:Lorg/eclipse/collections/api/block/SerializableComparator;
         1: .line 33
            new org.eclipse.collections.impl.block.factory.Comparators$ReverseComparator
            dup
            getstatic org.eclipse.collections.impl.block.factory.Comparators.NATURAL_ORDER_COMPARATOR:Lorg/eclipse/collections/api/block/SerializableComparator;
            invokespecial org.eclipse.collections.impl.block.factory.Comparators$ReverseComparator.<init>:(Ljava/util/Comparator;)V
            putstatic org.eclipse.collections.impl.block.factory.Comparators.REVERSE_NATURAL_ORDER_COMPARATOR:Lorg/eclipse/collections/api/block/SerializableComparator;
         2: .line 34
            new org.eclipse.collections.impl.block.factory.Comparators$PowerSetComparator
            dup
            invokespecial org.eclipse.collections.impl.block.factory.Comparators$PowerSetComparator.<init>:()V
            putstatic org.eclipse.collections.impl.block.factory.Comparators.POWER_SET_COMPARATOR:Lorg/eclipse/collections/api/block/SerializableComparator;
         3: .line 35
            new org.eclipse.collections.impl.block.factory.Comparators$AscendingCollectionSizeComparator
            dup
            invokespecial org.eclipse.collections.impl.block.factory.Comparators$AscendingCollectionSizeComparator.<init>:()V
            putstatic org.eclipse.collections.impl.block.factory.Comparators.ASCENDING_COLLECTION_SIZE_COMPARATOR:Lorg/eclipse/collections/api/block/SerializableComparator;
         4: .line 36
            new org.eclipse.collections.impl.block.factory.Comparators$DescendingCollectionSizeComparator
            dup
            invokespecial org.eclipse.collections.impl.block.factory.Comparators$DescendingCollectionSizeComparator.<init>:()V
            putstatic org.eclipse.collections.impl.block.factory.Comparators.DESCENDING_COLLECTION_SIZE_COMPARATOR:Lorg/eclipse/collections/api/block/SerializableComparator;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.collections.impl.block.factory.Comparators this
         0: .line 38
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 40
            new java.lang.AssertionError
            dup
            ldc "Suppress default constructor for noninstantiability"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 0 // org.eclipse.collections.impl.block.factory.Comparators this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/collections/impl/block/factory/Comparators;

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> naturalOrder();
    descriptor: ()Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 48
            getstatic org.eclipse.collections.impl.block.factory.Comparators.NATURAL_ORDER_COMPARATOR:Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: <T:Ljava/lang/Object;>()Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> reverseNaturalOrder();
    descriptor: ()Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 56
            getstatic org.eclipse.collections.impl.block.factory.Comparators.REVERSE_NATURAL_ORDER_COMPARATOR:Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: <T:Ljava/lang/Object;>()Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> reverse(java.util.Comparator<T>);
    descriptor: (Ljava/util/Comparator;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Comparator comparator
         0: .line 65
            aload 0 /* comparator */
            ifnonnull 2
         1: .line 67
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 69
      StackMap locals:
      StackMap stack:
            new org.eclipse.collections.impl.block.factory.Comparators$ReverseComparator
            dup
            aload 0 /* comparator */
            invokespecial org.eclipse.collections.impl.block.factory.Comparators$ReverseComparator.<init>:(Ljava/util/Comparator;)V
            areturn
        end local 0 // java.util.Comparator comparator
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  comparator  Ljava/util/Comparator<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Comparator<TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
            Name  Flags
      comparator  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> safeNullsLow(java.util.Comparator<T>);
    descriptor: (Ljava/util/Comparator;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Comparator notNullSafeComparator
         0: .line 74
            new org.eclipse.collections.impl.block.factory.Comparators$SafeNullsLowComparator
            dup
            aload 0 /* notNullSafeComparator */
            invokespecial org.eclipse.collections.impl.block.factory.Comparators$SafeNullsLowComparator.<init>:(Ljava/util/Comparator;)V
            areturn
        end local 0 // java.util.Comparator notNullSafeComparator
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    1     0  notNullSafeComparator  Ljava/util/Comparator<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Comparator<TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
                       Name  Flags
      notNullSafeComparator  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> safeNullsHigh(java.util.Comparator<T>);
    descriptor: (Ljava/util/Comparator;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Comparator notNullSafeComparator
         0: .line 79
            new org.eclipse.collections.impl.block.factory.Comparators$SafeNullsHighComparator
            dup
            aload 0 /* notNullSafeComparator */
            invokespecial org.eclipse.collections.impl.block.factory.Comparators$SafeNullsHighComparator.<init>:(Ljava/util/Comparator;)V
            areturn
        end local 0 // java.util.Comparator notNullSafeComparator
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    1     0  notNullSafeComparator  Ljava/util/Comparator<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Comparator<TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
                       Name  Flags
      notNullSafeComparator  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> chain(java.util.Comparator<T>[]);
    descriptor: ([Ljava/util/Comparator;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Comparator[] comparators
         0: .line 84
            aload 0 /* comparators */
            arraylength
            ifne 2
         1: .line 86
            new java.lang.IllegalArgumentException
            dup
            ldc "Nothing to chain"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 89
      StackMap locals:
      StackMap stack:
            new org.eclipse.collections.impl.block.factory.Comparators$ChainedComparator
            dup
            aload 0 /* comparators */
            invokespecial org.eclipse.collections.impl.block.factory.Comparators$ChainedComparator.<init>:([Ljava/util/Comparator;)V
            areturn
        end local 0 // java.util.Comparator[] comparators
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  comparators  [Ljava/util/Comparator;
    Signature: <T:Ljava/lang/Object;>([Ljava/util/Comparator<TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
             Name  Flags
      comparators  

  public static <T, V extends java.lang.Comparable<? super V>> org.eclipse.collections.api.block.SerializableComparator<T> fromFunctions(org.eclipse.collections.api.block.function.Function<? super T, ? extends V>);
    descriptor: (Lorg/eclipse/collections/api/block/function/Function;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.collections.api.block.function.Function one
         0: .line 95
            aload 0 /* one */
            invokestatic org.eclipse.collections.impl.block.factory.Comparators.byFunction:(Lorg/eclipse/collections/api/block/function/Function;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        end local 0 // org.eclipse.collections.api.block.function.Function one
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   one  Lorg/eclipse/collections/api/block/function/Function<-TT;+TV;>;
    Signature: <T:Ljava/lang/Object;V::Ljava/lang/Comparable<-TV;>;>(Lorg/eclipse/collections/api/block/function/Function<-TT;+TV;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
      Name  Flags
      one   

  public static <T, V1 extends java.lang.Comparable<? super V1>, V2 extends java.lang.Comparable<? super V2>> org.eclipse.collections.api.block.SerializableComparator<T> fromFunctions(org.eclipse.collections.api.block.function.Function<? super T, ? extends V1>, org.eclipse.collections.api.block.function.Function<? super T, ? extends V2>);
    descriptor: (Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/Function;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.collections.api.block.function.Function one
        start local 1 // org.eclipse.collections.api.block.function.Function two
         0: .line 102
            iconst_2
            anewarray java.util.Comparator
            dup
            iconst_0
         1: .line 103
            aload 0 /* one */
            invokestatic org.eclipse.collections.impl.block.factory.Comparators.byFunction:(Lorg/eclipse/collections/api/block/function/Function;)Lorg/eclipse/collections/api/block/SerializableComparator;
            aastore
            dup
            iconst_1
         2: .line 104
            aload 1 /* two */
            invokestatic org.eclipse.collections.impl.block.factory.Comparators.byFunction:(Lorg/eclipse/collections/api/block/function/Function;)Lorg/eclipse/collections/api/block/SerializableComparator;
            aastore
         3: .line 102
            invokestatic org.eclipse.collections.impl.block.factory.Comparators.chain:([Ljava/util/Comparator;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        end local 1 // org.eclipse.collections.api.block.function.Function two
        end local 0 // org.eclipse.collections.api.block.function.Function one
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   one  Lorg/eclipse/collections/api/block/function/Function<-TT;+TV1;>;
            0    4     1   two  Lorg/eclipse/collections/api/block/function/Function<-TT;+TV2;>;
    Signature: <T:Ljava/lang/Object;V1::Ljava/lang/Comparable<-TV1;>;V2::Ljava/lang/Comparable<-TV2;>;>(Lorg/eclipse/collections/api/block/function/Function<-TT;+TV1;>;Lorg/eclipse/collections/api/block/function/Function<-TT;+TV2;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
      Name  Flags
      one   
      two   

  public static <T, V1 extends java.lang.Comparable<? super V1>, V2 extends java.lang.Comparable<? super V2>, V3 extends java.lang.Comparable<? super V3>> org.eclipse.collections.api.block.SerializableComparator<T> fromFunctions(org.eclipse.collections.api.block.function.Function<? super T, ? extends V1>, org.eclipse.collections.api.block.function.Function<? super T, ? extends V2>, org.eclipse.collections.api.block.function.Function<? super T, ? extends V3>);
    descriptor: (Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/Function;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.eclipse.collections.api.block.function.Function one
        start local 1 // org.eclipse.collections.api.block.function.Function two
        start local 2 // org.eclipse.collections.api.block.function.Function three
         0: .line 112
            iconst_3
            anewarray java.util.Comparator
            dup
            iconst_0
         1: .line 113
            aload 0 /* one */
            invokestatic org.eclipse.collections.impl.block.factory.Comparators.byFunction:(Lorg/eclipse/collections/api/block/function/Function;)Lorg/eclipse/collections/api/block/SerializableComparator;
            aastore
            dup
            iconst_1
         2: .line 114
            aload 1 /* two */
            invokestatic org.eclipse.collections.impl.block.factory.Comparators.byFunction:(Lorg/eclipse/collections/api/block/function/Function;)Lorg/eclipse/collections/api/block/SerializableComparator;
            aastore
            dup
            iconst_2
         3: .line 115
            aload 2 /* three */
            invokestatic org.eclipse.collections.impl.block.factory.Comparators.byFunction:(Lorg/eclipse/collections/api/block/function/Function;)Lorg/eclipse/collections/api/block/SerializableComparator;
            aastore
         4: .line 112
            invokestatic org.eclipse.collections.impl.block.factory.Comparators.chain:([Ljava/util/Comparator;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        end local 2 // org.eclipse.collections.api.block.function.Function three
        end local 1 // org.eclipse.collections.api.block.function.Function two
        end local 0 // org.eclipse.collections.api.block.function.Function one
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0    one  Lorg/eclipse/collections/api/block/function/Function<-TT;+TV1;>;
            0    5     1    two  Lorg/eclipse/collections/api/block/function/Function<-TT;+TV2;>;
            0    5     2  three  Lorg/eclipse/collections/api/block/function/Function<-TT;+TV3;>;
    Signature: <T:Ljava/lang/Object;V1::Ljava/lang/Comparable<-TV1;>;V2::Ljava/lang/Comparable<-TV2;>;V3::Ljava/lang/Comparable<-TV3;>;>(Lorg/eclipse/collections/api/block/function/Function<-TT;+TV1;>;Lorg/eclipse/collections/api/block/function/Function<-TT;+TV2;>;Lorg/eclipse/collections/api/block/function/Function<-TT;+TV3;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
       Name  Flags
      one    
      two    
      three  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<org.eclipse.collections.api.set.sorted.SortedSetIterable<T>> powerSet();
    descriptor: ()Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 120
            getstatic org.eclipse.collections.impl.block.factory.Comparators.POWER_SET_COMPARATOR:Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: <T:Ljava/lang/Object;>()Lorg/eclipse/collections/api/block/SerializableComparator<Lorg/eclipse/collections/api/set/sorted/SortedSetIterable<TT;>;>;

  public static org.eclipse.collections.api.block.SerializableComparator<java.util.Collection<?>> ascendingCollectionSizeComparator();
    descriptor: ()Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 125
            getstatic org.eclipse.collections.impl.block.factory.Comparators.ASCENDING_COLLECTION_SIZE_COMPARATOR:Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Lorg/eclipse/collections/api/block/SerializableComparator<Ljava/util/Collection<*>;>;

  public static org.eclipse.collections.api.block.SerializableComparator<java.util.Collection<?>> descendingCollectionSizeComparator();
    descriptor: ()Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 130
            getstatic org.eclipse.collections.impl.block.factory.Comparators.DESCENDING_COLLECTION_SIZE_COMPARATOR:Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Lorg/eclipse/collections/api/block/SerializableComparator<Ljava/util/Collection<*>;>;

  public static <T> org.eclipse.collections.api.block.SerializableComparator<org.eclipse.collections.api.tuple.Pair<T, ?>> byFirstOfPair(java.util.Comparator<? super T>);
    descriptor: (Ljava/util/Comparator;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Comparator comparator
         0: .line 141
            new org.eclipse.collections.impl.block.factory.Comparators$ByFirstOfPairComparator
            dup
            aload 0 /* comparator */
            invokespecial org.eclipse.collections.impl.block.factory.Comparators$ByFirstOfPairComparator.<init>:(Ljava/util/Comparator;)V
            areturn
        end local 0 // java.util.Comparator comparator
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  comparator  Ljava/util/Comparator<-TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Comparator<-TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<Lorg/eclipse/collections/api/tuple/Pair<TT;*>;>;
    MethodParameters:
            Name  Flags
      comparator  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<org.eclipse.collections.api.tuple.Pair<?, T>> bySecondOfPair(java.util.Comparator<? super T>);
    descriptor: (Ljava/util/Comparator;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Comparator comparator
         0: .line 152
            new org.eclipse.collections.impl.block.factory.Comparators$BySecondOfPairComparator
            dup
            aload 0 /* comparator */
            invokespecial org.eclipse.collections.impl.block.factory.Comparators$BySecondOfPairComparator.<init>:(Ljava/util/Comparator;)V
            areturn
        end local 0 // java.util.Comparator comparator
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  comparator  Ljava/util/Comparator<-TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Comparator<-TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<Lorg/eclipse/collections/api/tuple/Pair<*TT;>;>;
    MethodParameters:
            Name  Flags
      comparator  

  public static <T, V extends java.lang.Comparable<? super V>> org.eclipse.collections.api.block.SerializableComparator<T> byFunction(org.eclipse.collections.api.block.function.Function<? super T, ? extends V>);
    descriptor: (Lorg/eclipse/collections/api/block/function/Function;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.collections.api.block.function.Function function
         0: .line 310
            aload 0 /* function */
            instanceof org.eclipse.collections.api.block.function.primitive.BooleanFunction
            ifeq 2
         1: .line 312
            aload 0 /* function */
            checkcast org.eclipse.collections.api.block.function.primitive.BooleanFunction
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toBooleanComparator:(Lorg/eclipse/collections/api/block/function/primitive/BooleanFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
         2: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* function */
            instanceof org.eclipse.collections.api.block.function.primitive.ByteFunction
            ifeq 4
         3: .line 316
            aload 0 /* function */
            checkcast org.eclipse.collections.api.block.function.primitive.ByteFunction
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toByteComparator:(Lorg/eclipse/collections/api/block/function/primitive/ByteFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
         4: .line 318
      StackMap locals:
      StackMap stack:
            aload 0 /* function */
            instanceof org.eclipse.collections.api.block.function.primitive.CharFunction
            ifeq 6
         5: .line 320
            aload 0 /* function */
            checkcast org.eclipse.collections.api.block.function.primitive.CharFunction
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toCharComparator:(Lorg/eclipse/collections/api/block/function/primitive/CharFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
         6: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* function */
            instanceof org.eclipse.collections.api.block.function.primitive.DoubleFunction
            ifeq 8
         7: .line 324
            aload 0 /* function */
            checkcast org.eclipse.collections.api.block.function.primitive.DoubleFunction
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toDoubleComparator:(Lorg/eclipse/collections/api/block/function/primitive/DoubleFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
         8: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* function */
            instanceof org.eclipse.collections.api.block.function.primitive.FloatFunction
            ifeq 10
         9: .line 328
            aload 0 /* function */
            checkcast org.eclipse.collections.api.block.function.primitive.FloatFunction
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toFloatComparator:(Lorg/eclipse/collections/api/block/function/primitive/FloatFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        10: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* function */
            instanceof org.eclipse.collections.api.block.function.primitive.IntFunction
            ifeq 12
        11: .line 332
            aload 0 /* function */
            checkcast org.eclipse.collections.api.block.function.primitive.IntFunction
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toIntComparator:(Lorg/eclipse/collections/api/block/function/primitive/IntFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        12: .line 334
      StackMap locals:
      StackMap stack:
            aload 0 /* function */
            instanceof org.eclipse.collections.api.block.function.primitive.LongFunction
            ifeq 14
        13: .line 336
            aload 0 /* function */
            checkcast org.eclipse.collections.api.block.function.primitive.LongFunction
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toLongComparator:(Lorg/eclipse/collections/api/block/function/primitive/LongFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        14: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* function */
            instanceof org.eclipse.collections.api.block.function.primitive.ShortFunction
            ifeq 16
        15: .line 340
            aload 0 /* function */
            checkcast org.eclipse.collections.api.block.function.primitive.ShortFunction
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toShortComparator:(Lorg/eclipse/collections/api/block/function/primitive/ShortFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        16: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* function */
            invokestatic org.eclipse.collections.impl.block.factory.Comparators.naturalOrder:()Lorg/eclipse/collections/api/block/SerializableComparator;
            invokestatic org.eclipse.collections.impl.block.factory.Comparators.byFunction:(Lorg/eclipse/collections/api/block/function/Function;Ljava/util/Comparator;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        end local 0 // org.eclipse.collections.api.block.function.Function function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0  function  Lorg/eclipse/collections/api/block/function/Function<-TT;+TV;>;
    Signature: <T:Ljava/lang/Object;V::Ljava/lang/Comparable<-TV;>;>(Lorg/eclipse/collections/api/block/function/Function<-TT;+TV;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
          Name  Flags
      function  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> byBooleanFunction(org.eclipse.collections.api.block.function.primitive.BooleanFunction<T>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/BooleanFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.collections.api.block.function.primitive.BooleanFunction function
         0: .line 347
            aload 0 /* function */
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toBooleanComparator:(Lorg/eclipse/collections/api/block/function/primitive/BooleanFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        end local 0 // org.eclipse.collections.api.block.function.primitive.BooleanFunction function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  function  Lorg/eclipse/collections/api/block/function/primitive/BooleanFunction<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/eclipse/collections/api/block/function/primitive/BooleanFunction<TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
          Name  Flags
      function  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> byByteFunction(org.eclipse.collections.api.block.function.primitive.ByteFunction<T>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/ByteFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.collections.api.block.function.primitive.ByteFunction function
         0: .line 352
            aload 0 /* function */
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toByteComparator:(Lorg/eclipse/collections/api/block/function/primitive/ByteFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        end local 0 // org.eclipse.collections.api.block.function.primitive.ByteFunction function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  function  Lorg/eclipse/collections/api/block/function/primitive/ByteFunction<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/eclipse/collections/api/block/function/primitive/ByteFunction<TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
          Name  Flags
      function  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> byCharFunction(org.eclipse.collections.api.block.function.primitive.CharFunction<T>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/CharFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.collections.api.block.function.primitive.CharFunction function
         0: .line 357
            aload 0 /* function */
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toCharComparator:(Lorg/eclipse/collections/api/block/function/primitive/CharFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        end local 0 // org.eclipse.collections.api.block.function.primitive.CharFunction function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  function  Lorg/eclipse/collections/api/block/function/primitive/CharFunction<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/eclipse/collections/api/block/function/primitive/CharFunction<TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
          Name  Flags
      function  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> byDoubleFunction(org.eclipse.collections.api.block.function.primitive.DoubleFunction<T>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/DoubleFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.collections.api.block.function.primitive.DoubleFunction function
         0: .line 362
            aload 0 /* function */
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toDoubleComparator:(Lorg/eclipse/collections/api/block/function/primitive/DoubleFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        end local 0 // org.eclipse.collections.api.block.function.primitive.DoubleFunction function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  function  Lorg/eclipse/collections/api/block/function/primitive/DoubleFunction<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/eclipse/collections/api/block/function/primitive/DoubleFunction<TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
          Name  Flags
      function  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> byFloatFunction(org.eclipse.collections.api.block.function.primitive.FloatFunction<T>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/FloatFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.collections.api.block.function.primitive.FloatFunction function
         0: .line 367
            aload 0 /* function */
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toFloatComparator:(Lorg/eclipse/collections/api/block/function/primitive/FloatFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        end local 0 // org.eclipse.collections.api.block.function.primitive.FloatFunction function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  function  Lorg/eclipse/collections/api/block/function/primitive/FloatFunction<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/eclipse/collections/api/block/function/primitive/FloatFunction<TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
          Name  Flags
      function  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> byIntFunction(org.eclipse.collections.api.block.function.primitive.IntFunction<T>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/IntFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.collections.api.block.function.primitive.IntFunction function
         0: .line 372
            aload 0 /* function */
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toIntComparator:(Lorg/eclipse/collections/api/block/function/primitive/IntFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        end local 0 // org.eclipse.collections.api.block.function.primitive.IntFunction function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  function  Lorg/eclipse/collections/api/block/function/primitive/IntFunction<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/eclipse/collections/api/block/function/primitive/IntFunction<TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
          Name  Flags
      function  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> byLongFunction(org.eclipse.collections.api.block.function.primitive.LongFunction<T>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/LongFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.collections.api.block.function.primitive.LongFunction function
         0: .line 377
            aload 0 /* function */
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toLongComparator:(Lorg/eclipse/collections/api/block/function/primitive/LongFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        end local 0 // org.eclipse.collections.api.block.function.primitive.LongFunction function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  function  Lorg/eclipse/collections/api/block/function/primitive/LongFunction<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/eclipse/collections/api/block/function/primitive/LongFunction<TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
          Name  Flags
      function  

  public static <T> org.eclipse.collections.api.block.SerializableComparator<T> byShortFunction(org.eclipse.collections.api.block.function.primitive.ShortFunction<T>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/ShortFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.collections.api.block.function.primitive.ShortFunction function
         0: .line 382
            aload 0 /* function */
            invokestatic org.eclipse.collections.impl.block.factory.Functions.toShortComparator:(Lorg/eclipse/collections/api/block/function/primitive/ShortFunction;)Lorg/eclipse/collections/api/block/SerializableComparator;
            areturn
        end local 0 // org.eclipse.collections.api.block.function.primitive.ShortFunction function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  function  Lorg/eclipse/collections/api/block/function/primitive/ShortFunction<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/eclipse/collections/api/block/function/primitive/ShortFunction<TT;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
          Name  Flags
      function  

  public static <T, V> org.eclipse.collections.api.block.SerializableComparator<T> byFunction(org.eclipse.collections.api.block.function.Function<? super T, ? extends V>, java.util.Comparator<V>);
    descriptor: (Lorg/eclipse/collections/api/block/function/Function;Ljava/util/Comparator;)Lorg/eclipse/collections/api/block/SerializableComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.collections.api.block.function.Function function
        start local 1 // java.util.Comparator comparator
         0: .line 389
            new org.eclipse.collections.impl.block.comparator.FunctionComparator
            dup
            aload 0 /* function */
            aload 1 /* comparator */
            invokespecial org.eclipse.collections.impl.block.comparator.FunctionComparator.<init>:(Lorg/eclipse/collections/api/block/function/Function;Ljava/util/Comparator;)V
            areturn
        end local 1 // java.util.Comparator comparator
        end local 0 // org.eclipse.collections.api.block.function.Function function
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0    function  Lorg/eclipse/collections/api/block/function/Function<-TT;+TV;>;
            0    1     1  comparator  Ljava/util/Comparator<TV;>;
    Signature: <T:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/eclipse/collections/api/block/function/Function<-TT;+TV;>;Ljava/util/Comparator<TV;>;)Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
    MethodParameters:
            Name  Flags
      function    
      comparator  

  public static boolean nullSafeEquals(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object value1
        start local 1 // java.lang.Object value2
         0: .line 394
            aload 0 /* value1 */
            ifnonnull 2
            aload 1 /* value2 */
            ifnonnull 1
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         1: iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* value1 */
            aload 1 /* value2 */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // java.lang.Object value2
        end local 0 // java.lang.Object value1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  value1  Ljava/lang/Object;
            0    4     1  value2  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      value1  
      value2  

  public static <T extends java.lang.Comparable<T>> int nullSafeCompare(T, );
    descriptor: (Ljava/lang/Comparable;Ljava/lang/Comparable;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Comparable value1
        start local 1 // java.lang.Comparable value2
         0: .line 399
            aload 0 /* value1 */
            ifnull 2
            aload 1 /* value2 */
            ifnull 2
         1: .line 401
            aload 0 /* value1 */
            aload 1 /* value2 */
            invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
            ireturn
         2: .line 404
      StackMap locals:
      StackMap stack:
            aload 0 /* value1 */
            ifnonnull 4
            aload 1 /* value2 */
            ifnonnull 4
         3: .line 406
            iconst_0
            ireturn
         4: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* value1 */
            ifnonnull 5
            iconst_m1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 1 // java.lang.Comparable value2
        end local 0 // java.lang.Comparable value1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  value1  TT;
            0    7     1  value2  TT;
    Signature: <T::Ljava/lang/Comparable<TT;>;>(TT;TT;)I
    MethodParameters:
        Name  Flags
      value1  
      value2  
}
SourceFile: "Comparators.java"
NestMembers:
  org.eclipse.collections.impl.block.factory.Comparators$AscendingCollectionSizeComparator  org.eclipse.collections.impl.block.factory.Comparators$ByFirstOfPairComparator  org.eclipse.collections.impl.block.factory.Comparators$BySecondOfPairComparator  org.eclipse.collections.impl.block.factory.Comparators$ChainedComparator  org.eclipse.collections.impl.block.factory.Comparators$DescendingCollectionSizeComparator  org.eclipse.collections.impl.block.factory.Comparators$NaturalOrderComparator  org.eclipse.collections.impl.block.factory.Comparators$PowerSetComparator  org.eclipse.collections.impl.block.factory.Comparators$ReverseComparator  org.eclipse.collections.impl.block.factory.Comparators$SafeNullsHighComparator  org.eclipse.collections.impl.block.factory.Comparators$SafeNullsLowComparator
InnerClasses:
  private final AscendingCollectionSizeComparator = org.eclipse.collections.impl.block.factory.Comparators$AscendingCollectionSizeComparator of org.eclipse.collections.impl.block.factory.Comparators
  private final ByFirstOfPairComparator = org.eclipse.collections.impl.block.factory.Comparators$ByFirstOfPairComparator of org.eclipse.collections.impl.block.factory.Comparators
  private final BySecondOfPairComparator = org.eclipse.collections.impl.block.factory.Comparators$BySecondOfPairComparator of org.eclipse.collections.impl.block.factory.Comparators
  private final ChainedComparator = org.eclipse.collections.impl.block.factory.Comparators$ChainedComparator of org.eclipse.collections.impl.block.factory.Comparators
  private final DescendingCollectionSizeComparator = org.eclipse.collections.impl.block.factory.Comparators$DescendingCollectionSizeComparator of org.eclipse.collections.impl.block.factory.Comparators
  private final NaturalOrderComparator = org.eclipse.collections.impl.block.factory.Comparators$NaturalOrderComparator of org.eclipse.collections.impl.block.factory.Comparators
  private final PowerSetComparator = org.eclipse.collections.impl.block.factory.Comparators$PowerSetComparator of org.eclipse.collections.impl.block.factory.Comparators
  private final ReverseComparator = org.eclipse.collections.impl.block.factory.Comparators$ReverseComparator of org.eclipse.collections.impl.block.factory.Comparators
  private final SafeNullsHighComparator = org.eclipse.collections.impl.block.factory.Comparators$SafeNullsHighComparator of org.eclipse.collections.impl.block.factory.Comparators
  private final SafeNullsLowComparator = org.eclipse.collections.impl.block.factory.Comparators$SafeNullsLowComparator of org.eclipse.collections.impl.block.factory.Comparators