public class com.googlecode.lanterna.gui2.InteractableLookupMap
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.googlecode.lanterna.gui2.InteractableLookupMap
  super_class: java.lang.Object
{
  private final int[][] lookupMap;
    descriptor: [[I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<com.googlecode.lanterna.gui2.Interactable> interactables;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lcom/googlecode/lanterna/gui2/Interactable;>;

  void <init>(com.googlecode.lanterna.TerminalSize);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
        start local 1 // com.googlecode.lanterna.TerminalSize size
         0: .line 35
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 36
            aload 0 /* this */
            aload 1 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            aload 1 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            multianewarray [[I 2
            putfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
         2: .line 37
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.googlecode.lanterna.gui2.InteractableLookupMap.interactables:Ljava/util/List;
         3: .line 38
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 7
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap com.googlecode.lanterna.TerminalSize top int int int[][]
      StackMap stack:
         4: aload 5
            iload 3
            aaload
            astore 2 /* aLookupMap */
        start local 2 // int[] aLookupMap
         5: .line 39
            aload 2 /* aLookupMap */
            iconst_m1
            invokestatic java.util.Arrays.fill:([II)V
        end local 2 // int[] aLookupMap
         6: .line 38
            iinc 3 1
      StackMap locals:
      StackMap stack:
         7: iload 3
            iload 4
            if_icmplt 4
         8: .line 41
            return
        end local 1 // com.googlecode.lanterna.TerminalSize size
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;
            0    9     1        size  Lcom/googlecode/lanterna/TerminalSize;
            5    6     2  aLookupMap  [I
    MethodParameters:
      Name  Flags
      size  

  void reset();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
         0: .line 44
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.interactables:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         1: .line 45
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap top int int int[][]
      StackMap stack:
         2: aload 4
            iload 2
            aaload
            astore 1 /* aLookupMap */
        start local 1 // int[] aLookupMap
         3: .line 46
            aload 1 /* aLookupMap */
            iconst_m1
            invokestatic java.util.Arrays.fill:([II)V
        end local 1 // int[] aLookupMap
         4: .line 45
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 2
         6: .line 48
            return
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;
            3    4     1  aLookupMap  [I

  com.googlecode.lanterna.TerminalSize getSize();
    descriptor: ()Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
         0: .line 51
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            arraylength
            ifne 1
            getstatic com.googlecode.lanterna.TerminalSize.ZERO:Lcom/googlecode/lanterna/TerminalSize;
            areturn
         1: .line 52
      StackMap locals:
      StackMap stack:
            new com.googlecode.lanterna.TerminalSize
            dup
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            iconst_0
            aaload
            arraylength
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            arraylength
            invokespecial com.googlecode.lanterna.TerminalSize.<init>:(II)V
            areturn
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;

  public synchronized void add(com.googlecode.lanterna.gui2.Interactable);
    descriptor: (Lcom/googlecode/lanterna/gui2/Interactable;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
        start local 1 // com.googlecode.lanterna.gui2.Interactable interactable
         0: .line 60
            aload 1 /* interactable */
            getstatic com.googlecode.lanterna.TerminalPosition.TOP_LEFT_CORNER:Lcom/googlecode/lanterna/TerminalPosition;
            invokeinterface com.googlecode.lanterna.gui2.Interactable.toBasePane:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/TerminalPosition;
            astore 2 /* topLeft */
        start local 2 // com.googlecode.lanterna.TerminalPosition topLeft
         1: .line 61
            aload 1 /* interactable */
            invokeinterface com.googlecode.lanterna.gui2.Interactable.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 3 /* size */
        start local 3 // com.googlecode.lanterna.TerminalSize size
         2: .line 62
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.interactables:Ljava/util/List;
            aload 1 /* interactable */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 63
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.interactables:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 4 /* index */
        start local 4 // int index
         4: .line 64
            aload 2 /* topLeft */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            istore 5 /* y */
        start local 5 // int y
         5: goto 14
         6: .line 65
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap com.googlecode.lanterna.gui2.Interactable com.googlecode.lanterna.TerminalPosition com.googlecode.lanterna.TerminalSize int int
      StackMap stack:
            aload 2 /* topLeft */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            istore 6 /* x */
        start local 6 // int x
         7: goto 12
         8: .line 67
      StackMap locals: int
      StackMap stack:
            iload 5 /* y */
            iflt 11
            iload 5 /* y */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            arraylength
            if_icmpge 11
         9: .line 68
            iload 6 /* x */
            iflt 11
            iload 6 /* x */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            iload 5 /* y */
            aaload
            arraylength
            if_icmpge 11
        10: .line 69
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            iload 5 /* y */
            aaload
            iload 6 /* x */
            iload 4 /* index */
            iastore
        11: .line 65
      StackMap locals:
      StackMap stack:
            iinc 6 /* x */ 1
      StackMap locals:
      StackMap stack:
        12: iload 6 /* x */
            aload 2 /* topLeft */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            aload 3 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iadd
            if_icmplt 8
        end local 6 // int x
        13: .line 64
            iinc 5 /* y */ 1
      StackMap locals:
      StackMap stack:
        14: iload 5 /* y */
            aload 2 /* topLeft */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aload 3 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iadd
            if_icmplt 6
        end local 5 // int y
        15: .line 73
            return
        end local 4 // int index
        end local 3 // com.googlecode.lanterna.TerminalSize size
        end local 2 // com.googlecode.lanterna.TerminalPosition topLeft
        end local 1 // com.googlecode.lanterna.gui2.Interactable interactable
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;
            0   16     1  interactable  Lcom/googlecode/lanterna/gui2/Interactable;
            1   16     2       topLeft  Lcom/googlecode/lanterna/TerminalPosition;
            2   16     3          size  Lcom/googlecode/lanterna/TerminalSize;
            4   16     4         index  I
            5   15     5             y  I
            7   13     6             x  I
    MethodParameters:
              Name  Flags
      interactable  

  public synchronized com.googlecode.lanterna.gui2.Interactable getInteractableAt(com.googlecode.lanterna.TerminalPosition);
    descriptor: (Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/gui2/Interactable;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
        start local 1 // com.googlecode.lanterna.TerminalPosition position
         0: .line 81
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            iflt 1
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            ifge 2
         1: .line 82
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 84
      StackMap locals:
      StackMap stack:
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            arraylength
            if_icmplt 4
         3: .line 85
            aconst_null
            areturn
         4: .line 87
      StackMap locals:
      StackMap stack:
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            iconst_0
            aaload
            arraylength
            if_icmplt 6
         5: .line 88
            aconst_null
            areturn
         6: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aaload
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            iaload
            iconst_m1
            if_icmpne 8
         7: .line 91
            aconst_null
            areturn
         8: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.interactables:Ljava/util/List;
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aaload
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            iaload
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Interactable
            areturn
        end local 1 // com.googlecode.lanterna.TerminalPosition position
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;
            0    9     1  position  Lcom/googlecode/lanterna/TerminalPosition;
    MethodParameters:
          Name  Flags
      position  

  public synchronized com.googlecode.lanterna.gui2.Interactable findNextUp(com.googlecode.lanterna.gui2.Interactable);
    descriptor: (Lcom/googlecode/lanterna/gui2/Interactable;)Lcom/googlecode/lanterna/gui2/Interactable;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
        start local 1 // com.googlecode.lanterna.gui2.Interactable interactable
         0: .line 103
            aload 0 /* this */
            aload 1 /* interactable */
            iconst_0
            invokevirtual com.googlecode.lanterna.gui2.InteractableLookupMap.findNextUpOrDown:(Lcom/googlecode/lanterna/gui2/Interactable;Z)Lcom/googlecode/lanterna/gui2/Interactable;
            areturn
        end local 1 // com.googlecode.lanterna.gui2.Interactable interactable
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;
            0    1     1  interactable  Lcom/googlecode/lanterna/gui2/Interactable;
    MethodParameters:
              Name  Flags
      interactable  

  public synchronized com.googlecode.lanterna.gui2.Interactable findNextDown(com.googlecode.lanterna.gui2.Interactable);
    descriptor: (Lcom/googlecode/lanterna/gui2/Interactable;)Lcom/googlecode/lanterna/gui2/Interactable;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
        start local 1 // com.googlecode.lanterna.gui2.Interactable interactable
         0: .line 113
            aload 0 /* this */
            aload 1 /* interactable */
            iconst_1
            invokevirtual com.googlecode.lanterna.gui2.InteractableLookupMap.findNextUpOrDown:(Lcom/googlecode/lanterna/gui2/Interactable;Z)Lcom/googlecode/lanterna/gui2/Interactable;
            areturn
        end local 1 // com.googlecode.lanterna.gui2.Interactable interactable
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;
            0    1     1  interactable  Lcom/googlecode/lanterna/gui2/Interactable;
    MethodParameters:
              Name  Flags
      interactable  

  private com.googlecode.lanterna.gui2.Interactable findNextUpOrDown(com.googlecode.lanterna.gui2.Interactable, boolean);
    descriptor: (Lcom/googlecode/lanterna/gui2/Interactable;Z)Lcom/googlecode/lanterna/gui2/Interactable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=18, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
        start local 1 // com.googlecode.lanterna.gui2.Interactable interactable
        start local 2 // boolean isDown
         0: .line 118
            iload 2 /* isDown */
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_m1
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* directionTerm */
        start local 3 // int directionTerm
         3: .line 119
            aload 1 /* interactable */
            invokeinterface com.googlecode.lanterna.gui2.Interactable.getCursorLocation:()Lcom/googlecode/lanterna/TerminalPosition;
            astore 4 /* startPosition */
        start local 4 // com.googlecode.lanterna.TerminalPosition startPosition
         4: .line 120
            aload 4 /* startPosition */
            ifnonnull 10
         5: .line 123
            iload 2 /* isDown */
            ifeq 8
         6: .line 124
            new com.googlecode.lanterna.TerminalPosition
            dup
            iconst_0
            aload 1 /* interactable */
            invokeinterface com.googlecode.lanterna.gui2.Interactable.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_1
            isub
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
            astore 4 /* startPosition */
         7: .line 125
            goto 14
         8: .line 127
      StackMap locals: int com.googlecode.lanterna.TerminalPosition
      StackMap stack:
            getstatic com.googlecode.lanterna.TerminalPosition.TOP_LEFT_CORNER:Lcom/googlecode/lanterna/TerminalPosition;
            astore 4 /* startPosition */
         9: .line 129
            goto 14
        10: .line 133
      StackMap locals:
      StackMap stack:
            iload 2 /* isDown */
            ifeq 13
        11: .line 134
            aload 4 /* startPosition */
            aload 1 /* interactable */
            invokeinterface com.googlecode.lanterna.gui2.Interactable.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_1
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 4 /* startPosition */
        12: .line 135
            goto 14
        13: .line 137
      StackMap locals:
      StackMap stack:
            aload 4 /* startPosition */
            iconst_0
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 4 /* startPosition */
        14: .line 140
      StackMap locals:
      StackMap stack:
            aload 1 /* interactable */
            aload 4 /* startPosition */
            invokeinterface com.googlecode.lanterna.gui2.Interactable.toBasePane:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/TerminalPosition;
            astore 4 /* startPosition */
        15: .line 141
            aload 4 /* startPosition */
            ifnonnull 17
        16: .line 143
            aconst_null
            areturn
        17: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* startPosition */
            iconst_1
            invokevirtual com.googlecode.lanterna.gui2.InteractableLookupMap.getDisqualifiedInteractables:(Lcom/googlecode/lanterna/TerminalPosition;Z)Ljava/util/Set;
            astore 5 /* disqualified */
        start local 5 // java.util.Set disqualified
        18: .line 146
            aload 0 /* this */
            invokevirtual com.googlecode.lanterna.gui2.InteractableLookupMap.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 6 /* size */
        start local 6 // com.googlecode.lanterna.TerminalSize size
        19: .line 147
            aload 1 /* interactable */
            getstatic com.googlecode.lanterna.TerminalPosition.TOP_LEFT_CORNER:Lcom/googlecode/lanterna/TerminalPosition;
            invokeinterface com.googlecode.lanterna.gui2.Interactable.toBasePane:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/TerminalPosition;
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            istore 7 /* maxShiftLeft */
        start local 7 // int maxShiftLeft
        20: .line 148
            iload 7 /* maxShiftLeft */
            iconst_0
            invokestatic java.lang.Math.max:(II)I
            istore 7 /* maxShiftLeft */
        21: .line 149
            aload 1 /* interactable */
            new com.googlecode.lanterna.TerminalPosition
            dup
            aload 1 /* interactable */
            invokeinterface com.googlecode.lanterna.gui2.Interactable.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_1
            isub
            iconst_0
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
            invokeinterface com.googlecode.lanterna.gui2.Interactable.toBasePane:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/TerminalPosition;
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            istore 8 /* maxShiftRight */
        start local 8 // int maxShiftRight
        22: .line 150
            iload 8 /* maxShiftRight */
            aload 6 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 8 /* maxShiftRight */
        23: .line 151
            aload 4 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            iload 7 /* maxShiftLeft */
            isub
            iload 8 /* maxShiftRight */
            aload 4 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            isub
            invokestatic java.lang.Math.max:(II)I
            istore 9 /* maxShift */
        start local 9 // int maxShift
        24: .line 152
            aload 4 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            iload 3 /* directionTerm */
            iadd
            istore 10 /* searchRow */
        start local 10 // int searchRow
        25: .line 153
            goto 43
        26: .line 156
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap com.googlecode.lanterna.gui2.Interactable int int com.googlecode.lanterna.TerminalPosition java.util.Set com.googlecode.lanterna.TerminalSize int int int int
      StackMap stack:
            iconst_0
            istore 11 /* xShift */
        start local 11 // int xShift
        27: goto 41
        28: .line 157
      StackMap locals: int
      StackMap stack:
            iconst_2
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_m1
            iastore
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 39
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap com.googlecode.lanterna.gui2.Interactable int int com.googlecode.lanterna.TerminalPosition java.util.Set com.googlecode.lanterna.TerminalSize int int int int int top int int int[]
      StackMap stack:
        29: aload 15
            iload 13
            iaload
            istore 12 /* modifier */
        start local 12 // int modifier
        30: .line 158
            iload 11 /* xShift */
            ifne 32
            iload 12 /* modifier */
            iconst_m1
            if_icmpne 32
        31: .line 159
            goto 40
        32: .line 161
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap com.googlecode.lanterna.gui2.Interactable int int com.googlecode.lanterna.TerminalPosition java.util.Set com.googlecode.lanterna.TerminalSize int int int int int int int int int[]
      StackMap stack:
            aload 4 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            iload 11 /* xShift */
            iload 12 /* modifier */
            imul
            iadd
            istore 16 /* searchColumn */
        start local 16 // int searchColumn
        33: .line 162
            iload 16 /* searchColumn */
            iload 7 /* maxShiftLeft */
            if_icmplt 38
            iload 16 /* searchColumn */
            iload 8 /* maxShiftRight */
            if_icmple 35
        34: .line 163
            goto 38
        35: .line 166
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            iload 10 /* searchRow */
            aaload
            iload 16 /* searchColumn */
            iaload
            istore 17 /* index */
        start local 17 // int index
        36: .line 167
            iload 17 /* index */
            iconst_m1
            if_icmpeq 38
            aload 5 /* disqualified */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.interactables:Ljava/util/List;
            iload 17 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 38
        37: .line 168
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.interactables:Ljava/util/List;
            iload 17 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Interactable
            areturn
        end local 17 // int index
        end local 16 // int searchColumn
        end local 12 // int modifier
        38: .line 157
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap com.googlecode.lanterna.gui2.Interactable int int com.googlecode.lanterna.TerminalPosition java.util.Set com.googlecode.lanterna.TerminalSize int int int int int top int int int[]
      StackMap stack:
            iinc 13 1
      StackMap locals:
      StackMap stack:
        39: iload 13
            iload 14
            if_icmplt 29
        40: .line 156
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap com.googlecode.lanterna.gui2.Interactable int int com.googlecode.lanterna.TerminalPosition java.util.Set com.googlecode.lanterna.TerminalSize int int int int int
      StackMap stack:
            iinc 11 /* xShift */ 1
      StackMap locals:
      StackMap stack:
        41: iload 11 /* xShift */
            iload 9 /* maxShift */
            if_icmple 28
        end local 11 // int xShift
        42: .line 154
            iload 10 /* searchRow */
            iload 3 /* directionTerm */
            iadd
            istore 10 /* searchRow */
        43: .line 153
      StackMap locals:
      StackMap stack:
            iload 10 /* searchRow */
            iflt 45
            iload 10 /* searchRow */
            aload 6 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
        44: .line 152
            if_icmplt 26
        end local 10 // int searchRow
        45: .line 173
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 9 // int maxShift
        end local 8 // int maxShiftRight
        end local 7 // int maxShiftLeft
        end local 6 // com.googlecode.lanterna.TerminalSize size
        end local 5 // java.util.Set disqualified
        end local 4 // com.googlecode.lanterna.TerminalPosition startPosition
        end local 3 // int directionTerm
        end local 2 // boolean isDown
        end local 1 // com.googlecode.lanterna.gui2.Interactable interactable
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   46     0           this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;
            0   46     1   interactable  Lcom/googlecode/lanterna/gui2/Interactable;
            0   46     2         isDown  Z
            3   46     3  directionTerm  I
            4   46     4  startPosition  Lcom/googlecode/lanterna/TerminalPosition;
           18   46     5   disqualified  Ljava/util/Set<Lcom/googlecode/lanterna/gui2/Interactable;>;
           19   46     6           size  Lcom/googlecode/lanterna/TerminalSize;
           20   46     7   maxShiftLeft  I
           22   46     8  maxShiftRight  I
           24   46     9       maxShift  I
           25   45    10      searchRow  I
           27   42    11         xShift  I
           30   38    12       modifier  I
           33   38    16   searchColumn  I
           36   38    17          index  I
    MethodParameters:
              Name  Flags
      interactable  
      isDown        

  public synchronized com.googlecode.lanterna.gui2.Interactable findNextLeft(com.googlecode.lanterna.gui2.Interactable);
    descriptor: (Lcom/googlecode/lanterna/gui2/Interactable;)Lcom/googlecode/lanterna/gui2/Interactable;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
        start local 1 // com.googlecode.lanterna.gui2.Interactable interactable
         0: .line 183
            aload 0 /* this */
            aload 1 /* interactable */
            iconst_0
            invokevirtual com.googlecode.lanterna.gui2.InteractableLookupMap.findNextLeftOrRight:(Lcom/googlecode/lanterna/gui2/Interactable;Z)Lcom/googlecode/lanterna/gui2/Interactable;
            areturn
        end local 1 // com.googlecode.lanterna.gui2.Interactable interactable
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;
            0    1     1  interactable  Lcom/googlecode/lanterna/gui2/Interactable;
    MethodParameters:
              Name  Flags
      interactable  

  public synchronized com.googlecode.lanterna.gui2.Interactable findNextRight(com.googlecode.lanterna.gui2.Interactable);
    descriptor: (Lcom/googlecode/lanterna/gui2/Interactable;)Lcom/googlecode/lanterna/gui2/Interactable;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
        start local 1 // com.googlecode.lanterna.gui2.Interactable interactable
         0: .line 193
            aload 0 /* this */
            aload 1 /* interactable */
            iconst_1
            invokevirtual com.googlecode.lanterna.gui2.InteractableLookupMap.findNextLeftOrRight:(Lcom/googlecode/lanterna/gui2/Interactable;Z)Lcom/googlecode/lanterna/gui2/Interactable;
            areturn
        end local 1 // com.googlecode.lanterna.gui2.Interactable interactable
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;
            0    1     1  interactable  Lcom/googlecode/lanterna/gui2/Interactable;
    MethodParameters:
              Name  Flags
      interactable  

  private com.googlecode.lanterna.gui2.Interactable findNextLeftOrRight(com.googlecode.lanterna.gui2.Interactable, boolean);
    descriptor: (Lcom/googlecode/lanterna/gui2/Interactable;Z)Lcom/googlecode/lanterna/gui2/Interactable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=18, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
        start local 1 // com.googlecode.lanterna.gui2.Interactable interactable
        start local 2 // boolean isRight
         0: .line 198
            iload 2 /* isRight */
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_m1
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* directionTerm */
        start local 3 // int directionTerm
         3: .line 199
            aload 1 /* interactable */
            invokeinterface com.googlecode.lanterna.gui2.Interactable.getCursorLocation:()Lcom/googlecode/lanterna/TerminalPosition;
            astore 4 /* startPosition */
        start local 4 // com.googlecode.lanterna.TerminalPosition startPosition
         4: .line 200
            aload 4 /* startPosition */
            ifnonnull 10
         5: .line 203
            iload 2 /* isRight */
            ifeq 8
         6: .line 204
            new com.googlecode.lanterna.TerminalPosition
            dup
            aload 1 /* interactable */
            invokeinterface com.googlecode.lanterna.gui2.Interactable.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_1
            isub
            iconst_0
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
            astore 4 /* startPosition */
         7: .line 205
            goto 14
         8: .line 207
      StackMap locals: int com.googlecode.lanterna.TerminalPosition
      StackMap stack:
            getstatic com.googlecode.lanterna.TerminalPosition.TOP_LEFT_CORNER:Lcom/googlecode/lanterna/TerminalPosition;
            astore 4 /* startPosition */
         9: .line 209
            goto 14
        10: .line 213
      StackMap locals:
      StackMap stack:
            iload 2 /* isRight */
            ifeq 13
        11: .line 214
            aload 4 /* startPosition */
            aload 1 /* interactable */
            invokeinterface com.googlecode.lanterna.gui2.Interactable.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_1
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 4 /* startPosition */
        12: .line 215
            goto 14
        13: .line 217
      StackMap locals:
      StackMap stack:
            aload 4 /* startPosition */
            iconst_0
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 4 /* startPosition */
        14: .line 220
      StackMap locals:
      StackMap stack:
            aload 1 /* interactable */
            aload 4 /* startPosition */
            invokeinterface com.googlecode.lanterna.gui2.Interactable.toBasePane:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/TerminalPosition;
            astore 4 /* startPosition */
        15: .line 221
            aload 4 /* startPosition */
            ifnonnull 17
        16: .line 223
            aconst_null
            areturn
        17: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* startPosition */
            iconst_0
            invokevirtual com.googlecode.lanterna.gui2.InteractableLookupMap.getDisqualifiedInteractables:(Lcom/googlecode/lanterna/TerminalPosition;Z)Ljava/util/Set;
            astore 5 /* disqualified */
        start local 5 // java.util.Set disqualified
        18: .line 226
            aload 0 /* this */
            invokevirtual com.googlecode.lanterna.gui2.InteractableLookupMap.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 6 /* size */
        start local 6 // com.googlecode.lanterna.TerminalSize size
        19: .line 227
            aload 1 /* interactable */
            getstatic com.googlecode.lanterna.TerminalPosition.TOP_LEFT_CORNER:Lcom/googlecode/lanterna/TerminalPosition;
            invokeinterface com.googlecode.lanterna.gui2.Interactable.toBasePane:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/TerminalPosition;
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            istore 7 /* maxShiftUp */
        start local 7 // int maxShiftUp
        20: .line 228
            iload 7 /* maxShiftUp */
            iconst_0
            invokestatic java.lang.Math.max:(II)I
            istore 7 /* maxShiftUp */
        21: .line 229
            aload 1 /* interactable */
            new com.googlecode.lanterna.TerminalPosition
            dup
            iconst_0
            aload 1 /* interactable */
            invokeinterface com.googlecode.lanterna.gui2.Interactable.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_1
            isub
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
            invokeinterface com.googlecode.lanterna.gui2.Interactable.toBasePane:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/TerminalPosition;
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            istore 8 /* maxShiftDown */
        start local 8 // int maxShiftDown
        22: .line 230
            iload 8 /* maxShiftDown */
            aload 6 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 8 /* maxShiftDown */
        23: .line 231
            aload 4 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            iload 7 /* maxShiftUp */
            isub
            iload 8 /* maxShiftDown */
            aload 4 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            isub
            invokestatic java.lang.Math.max:(II)I
            istore 9 /* maxShift */
        start local 9 // int maxShift
        24: .line 232
            aload 4 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            iload 3 /* directionTerm */
            iadd
            istore 10 /* searchColumn */
        start local 10 // int searchColumn
        25: .line 233
            goto 43
        26: .line 236
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap com.googlecode.lanterna.gui2.Interactable int int com.googlecode.lanterna.TerminalPosition java.util.Set com.googlecode.lanterna.TerminalSize int int int int
      StackMap stack:
            iconst_0
            istore 11 /* yShift */
        start local 11 // int yShift
        27: goto 41
        28: .line 237
      StackMap locals: int
      StackMap stack:
            iconst_2
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_m1
            iastore
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 39
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap com.googlecode.lanterna.gui2.Interactable int int com.googlecode.lanterna.TerminalPosition java.util.Set com.googlecode.lanterna.TerminalSize int int int int int top int int int[]
      StackMap stack:
        29: aload 15
            iload 13
            iaload
            istore 12 /* modifier */
        start local 12 // int modifier
        30: .line 238
            iload 11 /* yShift */
            ifne 32
            iload 12 /* modifier */
            iconst_m1
            if_icmpne 32
        31: .line 239
            goto 40
        32: .line 241
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap com.googlecode.lanterna.gui2.Interactable int int com.googlecode.lanterna.TerminalPosition java.util.Set com.googlecode.lanterna.TerminalSize int int int int int int int int int[]
      StackMap stack:
            aload 4 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            iload 11 /* yShift */
            iload 12 /* modifier */
            imul
            iadd
            istore 16 /* searchRow */
        start local 16 // int searchRow
        33: .line 242
            iload 16 /* searchRow */
            iload 7 /* maxShiftUp */
            if_icmplt 38
            iload 16 /* searchRow */
            iload 8 /* maxShiftDown */
            if_icmple 35
        34: .line 243
            goto 38
        35: .line 245
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            iload 16 /* searchRow */
            aaload
            iload 10 /* searchColumn */
            iaload
            istore 17 /* index */
        start local 17 // int index
        36: .line 246
            iload 17 /* index */
            iconst_m1
            if_icmpeq 38
            aload 5 /* disqualified */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.interactables:Ljava/util/List;
            iload 17 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 38
        37: .line 247
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.interactables:Ljava/util/List;
            iload 17 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Interactable
            areturn
        end local 17 // int index
        end local 16 // int searchRow
        end local 12 // int modifier
        38: .line 237
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap com.googlecode.lanterna.gui2.Interactable int int com.googlecode.lanterna.TerminalPosition java.util.Set com.googlecode.lanterna.TerminalSize int int int int int top int int int[]
      StackMap stack:
            iinc 13 1
      StackMap locals:
      StackMap stack:
        39: iload 13
            iload 14
            if_icmplt 29
        40: .line 236
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap com.googlecode.lanterna.gui2.Interactable int int com.googlecode.lanterna.TerminalPosition java.util.Set com.googlecode.lanterna.TerminalSize int int int int int
      StackMap stack:
            iinc 11 /* yShift */ 1
      StackMap locals:
      StackMap stack:
        41: iload 11 /* yShift */
            iload 9 /* maxShift */
            if_icmple 28
        end local 11 // int yShift
        42: .line 234
            iload 10 /* searchColumn */
            iload 3 /* directionTerm */
            iadd
            istore 10 /* searchColumn */
        43: .line 233
      StackMap locals:
      StackMap stack:
            iload 10 /* searchColumn */
            iflt 45
            iload 10 /* searchColumn */
            aload 6 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
        44: .line 232
            if_icmplt 26
        end local 10 // int searchColumn
        45: .line 252
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 9 // int maxShift
        end local 8 // int maxShiftDown
        end local 7 // int maxShiftUp
        end local 6 // com.googlecode.lanterna.TerminalSize size
        end local 5 // java.util.Set disqualified
        end local 4 // com.googlecode.lanterna.TerminalPosition startPosition
        end local 3 // int directionTerm
        end local 2 // boolean isRight
        end local 1 // com.googlecode.lanterna.gui2.Interactable interactable
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   46     0           this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;
            0   46     1   interactable  Lcom/googlecode/lanterna/gui2/Interactable;
            0   46     2        isRight  Z
            3   46     3  directionTerm  I
            4   46     4  startPosition  Lcom/googlecode/lanterna/TerminalPosition;
           18   46     5   disqualified  Ljava/util/Set<Lcom/googlecode/lanterna/gui2/Interactable;>;
           19   46     6           size  Lcom/googlecode/lanterna/TerminalSize;
           20   46     7     maxShiftUp  I
           22   46     8   maxShiftDown  I
           24   46     9       maxShift  I
           25   45    10   searchColumn  I
           27   42    11         yShift  I
           30   38    12       modifier  I
           33   38    16      searchRow  I
           36   38    17          index  I
    MethodParameters:
              Name  Flags
      interactable  
      isRight       

  private java.util.Set<com.googlecode.lanterna.gui2.Interactable> getDisqualifiedInteractables(com.googlecode.lanterna.TerminalPosition, boolean);
    descriptor: (Lcom/googlecode/lanterna/TerminalPosition;Z)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
        start local 1 // com.googlecode.lanterna.TerminalPosition startPosition
        start local 2 // boolean scanHorizontally
         0: .line 256
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* disqualified */
        start local 3 // java.util.Set disqualified
         1: .line 257
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            arraylength
            ifne 2
            aload 3 /* disqualified */
            areturn
         2: .line 259
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.googlecode.lanterna.gui2.InteractableLookupMap.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 4 /* size */
        start local 4 // com.googlecode.lanterna.TerminalSize size
         3: .line 262
            aload 1 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            ifge 6
         4: .line 263
            aload 1 /* startPosition */
            iconst_0
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 1 /* startPosition */
         5: .line 264
            goto 8
         6: .line 265
      StackMap locals: com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 1 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            arraylength
            if_icmplt 8
         7: .line 266
            aload 1 /* startPosition */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            arraylength
            iconst_1
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 1 /* startPosition */
         8: .line 268
      StackMap locals:
      StackMap stack:
            aload 1 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            ifge 11
         9: .line 269
            aload 1 /* startPosition */
            iconst_0
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 1 /* startPosition */
        10: .line 270
            goto 13
        11: .line 271
      StackMap locals:
      StackMap stack:
            aload 1 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            aload 1 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aaload
            arraylength
            if_icmplt 13
        12: .line 272
            aload 1 /* startPosition */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            aload 1 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aaload
            arraylength
            iconst_1
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 1 /* startPosition */
        13: .line 275
      StackMap locals:
      StackMap stack:
            iload 2 /* scanHorizontally */
            ifeq 22
        14: .line 276
            iconst_0
            istore 5 /* column */
        start local 5 // int column
        15: goto 20
        16: .line 277
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            aload 1 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aaload
            iload 5 /* column */
            iaload
            istore 6 /* index */
        start local 6 // int index
        17: .line 278
            iload 6 /* index */
            iconst_m1
            if_icmpeq 19
        18: .line 279
            aload 3 /* disqualified */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.interactables:Ljava/util/List;
            iload 6 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Interactable
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // int index
        19: .line 276
      StackMap locals:
      StackMap stack:
            iinc 5 /* column */ 1
      StackMap locals:
      StackMap stack:
        20: iload 5 /* column */
            aload 4 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            if_icmplt 16
        end local 5 // int column
        21: .line 282
            goto 29
        22: .line 284
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* row */
        start local 5 // int row
        23: goto 28
        24: .line 285
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            iload 5 /* row */
            aaload
            aload 1 /* startPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            iaload
            istore 6 /* index */
        start local 6 // int index
        25: .line 286
            iload 6 /* index */
            iconst_m1
            if_icmpeq 27
        26: .line 287
            aload 3 /* disqualified */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.interactables:Ljava/util/List;
            iload 6 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Interactable
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // int index
        27: .line 284
      StackMap locals:
      StackMap stack:
            iinc 5 /* row */ 1
      StackMap locals:
      StackMap stack:
        28: iload 5 /* row */
            aload 4 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            if_icmplt 24
        end local 5 // int row
        29: .line 291
      StackMap locals:
      StackMap stack:
            aload 3 /* disqualified */
            areturn
        end local 4 // com.googlecode.lanterna.TerminalSize size
        end local 3 // java.util.Set disqualified
        end local 2 // boolean scanHorizontally
        end local 1 // com.googlecode.lanterna.TerminalPosition startPosition
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   30     0              this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;
            0   30     1     startPosition  Lcom/googlecode/lanterna/TerminalPosition;
            0   30     2  scanHorizontally  Z
            1   30     3      disqualified  Ljava/util/Set<Lcom/googlecode/lanterna/gui2/Interactable;>;
            3   30     4              size  Lcom/googlecode/lanterna/TerminalSize;
           15   21     5            column  I
           17   19     6             index  I
           23   29     5               row  I
           25   27     6             index  I
    Signature: (Lcom/googlecode/lanterna/TerminalPosition;Z)Ljava/util/Set<Lcom/googlecode/lanterna/gui2/Interactable;>;
    MethodParameters:
                  Name  Flags
      startPosition     
      scanHorizontally  

  void debug();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=9, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
         0: .line 295
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.InteractableLookupMap.lookupMap:[[I
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 11
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap top int int int[][]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* row */
        start local 1 // int[] row
         2: .line 296
            aload 1 /* row */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 8
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap int[] int int int[][] top int int int[]
      StackMap stack:
         3: aload 8
            iload 6
            iaload
            istore 5 /* value */
        start local 5 // int value
         4: .line 297
            iload 5 /* value */
            iflt 6
         5: .line 298
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc " "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         6: .line 300
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap int[] int int int[][] int int int int[]
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            iload 5 /* value */
            invokevirtual java.io.PrintStream.print:(I)V
        end local 5 // int value
         7: .line 296
            iinc 6 1
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap int[] int int int[][] top int int int[]
      StackMap stack:
         8: iload 6
            iload 7
            if_icmplt 3
         9: .line 302
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        end local 1 // int[] row
        10: .line 295
            iinc 2 1
      StackMap locals: com.googlecode.lanterna.gui2.InteractableLookupMap top int int int[][]
      StackMap stack:
        11: iload 2
            iload 3
            if_icmplt 1
        12: .line 304
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        13: .line 305
            return
        end local 0 // com.googlecode.lanterna.gui2.InteractableLookupMap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lcom/googlecode/lanterna/gui2/InteractableLookupMap;
            2   10     1    row  [I
            4    7     5  value  I
}
SourceFile: "InteractableLookupMap.java"