public class org.aspectj.util.PartialOrder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.aspectj.util.PartialOrder
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.util.PartialOrder this
         0: .line 27
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.aspectj.util.PartialOrder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/util/PartialOrder;

  private static <T extends org.aspectj.util.PartialOrder$PartialComparable> void addNewPartialComparable(java.util.List<org.aspectj.util.PartialOrder$SortObject<T>>, );
    descriptor: (Ljava/util/List;Lorg/aspectj/util/PartialOrder$PartialComparable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.util.List graph
        start local 1 // org.aspectj.util.PartialOrder$PartialComparable o
         0: .line 90
            new org.aspectj.util.PartialOrder$SortObject
            dup
            aload 1 /* o */
            invokespecial org.aspectj.util.PartialOrder$SortObject.<init>:(Lorg/aspectj/util/PartialOrder$PartialComparable;)V
            astore 2 /* so */
        start local 2 // org.aspectj.util.PartialOrder$SortObject so
         1: .line 91
            aload 0 /* graph */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* i */
        start local 3 // java.util.Iterator i
         2: goto 5
         3: .line 92
      StackMap locals: org.aspectj.util.PartialOrder$SortObject java.util.Iterator
      StackMap stack:
            aload 3 /* i */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.util.PartialOrder$SortObject
            astore 4 /* other */
        start local 4 // org.aspectj.util.PartialOrder$SortObject other
         4: .line 93
            aload 2 /* so */
            aload 4 /* other */
            invokevirtual org.aspectj.util.PartialOrder$SortObject.addDirectedLinks:(Lorg/aspectj/util/PartialOrder$SortObject;)V
        end local 4 // org.aspectj.util.PartialOrder$SortObject other
         5: .line 91
      StackMap locals:
      StackMap stack:
            aload 3 /* i */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 3 // java.util.Iterator i
         6: .line 95
            aload 0 /* graph */
            aload 2 /* so */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 96
            return
        end local 2 // org.aspectj.util.PartialOrder$SortObject so
        end local 1 // org.aspectj.util.PartialOrder$PartialComparable o
        end local 0 // java.util.List graph
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0  graph  Ljava/util/List<Lorg/aspectj/util/PartialOrder$SortObject<TT;>;>;
            0    8     1      o  TT;
            1    8     2     so  Lorg/aspectj/util/PartialOrder$SortObject<TT;>;
            2    6     3      i  Ljava/util/Iterator<Lorg/aspectj/util/PartialOrder$SortObject<TT;>;>;
            4    5     4  other  Lorg/aspectj/util/PartialOrder$SortObject<TT;>;
    Signature: <T::Lorg/aspectj/util/PartialOrder$PartialComparable;>(Ljava/util/List<Lorg/aspectj/util/PartialOrder$SortObject<TT;>;>;TT;)V
    MethodParameters:
       Name  Flags
      graph  
      o      

  private static <T extends org.aspectj.util.PartialOrder$PartialComparable> void removeFromGraph(java.util.List<org.aspectj.util.PartialOrder$SortObject<T>>, org.aspectj.util.PartialOrder$SortObject<T>);
    descriptor: (Ljava/util/List;Lorg/aspectj/util/PartialOrder$SortObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.util.List graph
        start local 1 // org.aspectj.util.PartialOrder$SortObject o
         0: .line 99
            aload 0 /* graph */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* i */
        start local 2 // java.util.Iterator i
         1: goto 6
         2: .line 100
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* i */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.util.PartialOrder$SortObject
            astore 3 /* other */
        start local 3 // org.aspectj.util.PartialOrder$SortObject other
         3: .line 102
            aload 1 /* o */
            aload 3 /* other */
            if_acmpne 5
         4: .line 103
            aload 2 /* i */
            invokeinterface java.util.Iterator.remove:()V
         5: .line 107
      StackMap locals: org.aspectj.util.PartialOrder$SortObject
      StackMap stack:
            aload 3 /* other */
            aload 1 /* o */
            invokevirtual org.aspectj.util.PartialOrder$SortObject.removeSmallerObject:(Lorg/aspectj/util/PartialOrder$SortObject;)Z
            pop
        end local 3 // org.aspectj.util.PartialOrder$SortObject other
         6: .line 99
      StackMap locals:
      StackMap stack:
            aload 2 /* i */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        end local 2 // java.util.Iterator i
         7: .line 109
            return
        end local 1 // org.aspectj.util.PartialOrder$SortObject o
        end local 0 // java.util.List graph
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0  graph  Ljava/util/List<Lorg/aspectj/util/PartialOrder$SortObject<TT;>;>;
            0    8     1      o  Lorg/aspectj/util/PartialOrder$SortObject<TT;>;
            1    7     2      i  Ljava/util/Iterator<Lorg/aspectj/util/PartialOrder$SortObject<TT;>;>;
            3    6     3  other  Lorg/aspectj/util/PartialOrder$SortObject<TT;>;
    Signature: <T::Lorg/aspectj/util/PartialOrder$PartialComparable;>(Ljava/util/List<Lorg/aspectj/util/PartialOrder$SortObject<TT;>;>;Lorg/aspectj/util/PartialOrder$SortObject<TT;>;)V
    MethodParameters:
       Name  Flags
      graph  
      o      

  public static <T extends org.aspectj.util.PartialOrder$PartialComparable> java.util.List<T> sort(java.util.List<T>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.util.List objects
         0: .line 119
            aload 0 /* objects */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpge 2
         1: .line 120
            aload 0 /* objects */
            areturn
         2: .line 127
      StackMap locals:
      StackMap stack:
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 1 /* sortList */
        start local 1 // java.util.List sortList
         3: .line 128
            aload 0 /* objects */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* i */
        start local 2 // java.util.Iterator i
         4: goto 6
         5: .line 129
      StackMap locals: java.util.List java.util.Iterator
      StackMap stack:
            aload 1 /* sortList */
            aload 2 /* i */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.util.PartialOrder$PartialComparable
            invokestatic org.aspectj.util.PartialOrder.addNewPartialComparable:(Ljava/util/List;Lorg/aspectj/util/PartialOrder$PartialComparable;)V
         6: .line 128
      StackMap locals:
      StackMap stack:
            aload 2 /* i */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 2 // java.util.Iterator i
         7: .line 138
            aload 0 /* objects */
            invokeinterface java.util.List.size:()I
            istore 2 /* N */
        start local 2 // int N
         8: .line 139
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         9: goto 22
        10: .line 143
      StackMap locals: java.util.List java.util.List int int
      StackMap stack:
            aconst_null
            astore 4 /* leastWithNoSmallers */
        start local 4 // org.aspectj.util.PartialOrder$SortObject leastWithNoSmallers
        11: .line 145
            aload 1 /* sortList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 16
      StackMap locals: java.util.List java.util.List int int org.aspectj.util.PartialOrder$SortObject top java.util.Iterator
      StackMap stack:
        12: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.util.PartialOrder$SortObject
            astore 5 /* so */
        start local 5 // org.aspectj.util.PartialOrder$SortObject so
        13: .line 146
            aload 5 /* so */
            invokevirtual org.aspectj.util.PartialOrder$SortObject.hasNoSmallerObjects:()Z
            ifeq 16
        14: .line 147
            aload 4 /* leastWithNoSmallers */
            ifnull 15
            aload 5 /* so */
            getfield org.aspectj.util.PartialOrder$SortObject.object:Lorg/aspectj/util/PartialOrder$PartialComparable;
            aload 4 /* leastWithNoSmallers */
            getfield org.aspectj.util.PartialOrder$SortObject.object:Lorg/aspectj/util/PartialOrder$PartialComparable;
            invokeinterface org.aspectj.util.PartialOrder$PartialComparable.fallbackCompareTo:(Ljava/lang/Object;)I
            ifge 16
        15: .line 148
      StackMap locals: java.util.List java.util.List int int org.aspectj.util.PartialOrder$SortObject org.aspectj.util.PartialOrder$SortObject java.util.Iterator
      StackMap stack:
            aload 5 /* so */
            astore 4 /* leastWithNoSmallers */
        end local 5 // org.aspectj.util.PartialOrder$SortObject so
        16: .line 145
      StackMap locals: java.util.List java.util.List int int org.aspectj.util.PartialOrder$SortObject top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        17: .line 153
            aload 4 /* leastWithNoSmallers */
            ifnonnull 19
        18: .line 154
            aconst_null
            areturn
        19: .line 157
      StackMap locals: java.util.List java.util.List int int org.aspectj.util.PartialOrder$SortObject
      StackMap stack:
            aload 1 /* sortList */
            aload 4 /* leastWithNoSmallers */
            invokestatic org.aspectj.util.PartialOrder.removeFromGraph:(Ljava/util/List;Lorg/aspectj/util/PartialOrder$SortObject;)V
        20: .line 158
            aload 0 /* objects */
            iload 3 /* index */
            aload 4 /* leastWithNoSmallers */
            getfield org.aspectj.util.PartialOrder$SortObject.object:Lorg/aspectj/util/PartialOrder$PartialComparable;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // org.aspectj.util.PartialOrder$SortObject leastWithNoSmallers
        21: .line 139
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
        22: iload 3 /* index */
            iload 2 /* N */
            if_icmplt 10
        end local 3 // int index
        23: .line 161
            aload 0 /* objects */
            areturn
        end local 2 // int N
        end local 1 // java.util.List sortList
        end local 0 // java.util.List objects
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   24     0              objects  Ljava/util/List<TT;>;
            3   24     1             sortList  Ljava/util/List<Lorg/aspectj/util/PartialOrder$SortObject<TT;>;>;
            4    7     2                    i  Ljava/util/Iterator<TT;>;
            8   24     2                    N  I
            9   23     3                index  I
           11   21     4  leastWithNoSmallers  Lorg/aspectj/util/PartialOrder$SortObject<TT;>;
           13   16     5                   so  Lorg/aspectj/util/PartialOrder$SortObject<TT;>;
    Signature: <T::Lorg/aspectj/util/PartialOrder$PartialComparable;>(Ljava/util/List<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
         Name  Flags
      objects  

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 197
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* l */
        start local 1 // java.util.List l
         1: .line 198
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "a1"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 199
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "c2"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 200
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "b3"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 201
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "f4"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 202
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "e5"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 203
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "d6"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 204
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "c7"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 205
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "b8"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 207
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "z"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 208
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "x"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 210
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "f9"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 211
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "e10"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 212
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "a11"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 213
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "d12"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 214
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "b13"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 215
            aload 1 /* l */
            new org.aspectj.util.PartialOrder$Token
            dup
            ldc "c14"
            invokespecial org.aspectj.util.PartialOrder$Token.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 217
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 1 /* l */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
        18: .line 219
            aload 1 /* l */
            invokestatic org.aspectj.util.PartialOrder.sort:(Ljava/util/List;)Ljava/util/List;
            pop
        19: .line 221
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 1 /* l */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
        20: .line 222
            return
        end local 1 // java.util.List l
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  args  [Ljava/lang/String;
            1   21     1     l  Ljava/util/List<Lorg/aspectj/util/PartialOrder$Token;>;
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "PartialOrder.java"
NestMembers:
  org.aspectj.util.PartialOrder$PartialComparable  org.aspectj.util.PartialOrder$SortObject  org.aspectj.util.PartialOrder$Token
InnerClasses:
  public abstract PartialComparable = org.aspectj.util.PartialOrder$PartialComparable of org.aspectj.util.PartialOrder
  private SortObject = org.aspectj.util.PartialOrder$SortObject of org.aspectj.util.PartialOrder
  Token = org.aspectj.util.PartialOrder$Token of org.aspectj.util.PartialOrder