public class com.googlecode.lanterna.gui2.GridLayout implements com.googlecode.lanterna.gui2.LayoutManager
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.googlecode.lanterna.gui2.GridLayout
  super_class: java.lang.Object
{
  private static final com.googlecode.lanterna.gui2.GridLayout$GridLayoutData DEFAULT;
    descriptor: Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final int numberOfColumns;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int horizontalSpacing;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int verticalSpacing;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int topMarginSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int bottomMarginSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int leftMarginSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int rightMarginSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

  private static volatile int[] $SWITCH_TABLE$com$googlecode$lanterna$gui2$GridLayout$Alignment;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=0, args_size=0
         0: .line 95
            new com.googlecode.lanterna.gui2.GridLayout$GridLayoutData
            dup
         1: .line 96
            getstatic com.googlecode.lanterna.gui2.GridLayout$Alignment.BEGINNING:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
         2: .line 97
            getstatic com.googlecode.lanterna.gui2.GridLayout$Alignment.BEGINNING:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
         3: .line 98
            iconst_0
         4: .line 99
            iconst_0
         5: .line 100
            iconst_1
         6: .line 101
            iconst_1
         7: .line 95
            invokespecial com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.<init>:(Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;ZZII)V
            putstatic com.googlecode.lanterna.gui2.GridLayout.DEFAULT:Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
         8: .line 101
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.googlecode.lanterna.gui2.LayoutData createLayoutData(com.googlecode.lanterna.gui2.GridLayout$Alignment, com.googlecode.lanterna.gui2.GridLayout$Alignment);
    descriptor: (Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;)Lcom/googlecode/lanterna/gui2/LayoutData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout$Alignment horizontalAlignment
        start local 1 // com.googlecode.lanterna.gui2.GridLayout$Alignment verticalAlignment
         0: .line 111
            aload 0 /* horizontalAlignment */
            aload 1 /* verticalAlignment */
            iconst_0
            iconst_0
            invokestatic com.googlecode.lanterna.gui2.GridLayout.createLayoutData:(Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;ZZ)Lcom/googlecode/lanterna/gui2/LayoutData;
            areturn
        end local 1 // com.googlecode.lanterna.gui2.GridLayout$Alignment verticalAlignment
        end local 0 // com.googlecode.lanterna.gui2.GridLayout$Alignment horizontalAlignment
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    1     0  horizontalAlignment  Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
            0    1     1    verticalAlignment  Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
    MethodParameters:
                     Name  Flags
      horizontalAlignment  
      verticalAlignment    

  public static com.googlecode.lanterna.gui2.LayoutData createLayoutData(com.googlecode.lanterna.gui2.GridLayout$Alignment, com.googlecode.lanterna.gui2.GridLayout$Alignment, boolean, boolean);
    descriptor: (Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;ZZ)Lcom/googlecode/lanterna/gui2/LayoutData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.googlecode.lanterna.gui2.GridLayout$Alignment horizontalAlignment
        start local 1 // com.googlecode.lanterna.gui2.GridLayout$Alignment verticalAlignment
        start local 2 // boolean grabExtraHorizontalSpace
        start local 3 // boolean grabExtraVerticalSpace
         0: .line 137
            aload 0 /* horizontalAlignment */
            aload 1 /* verticalAlignment */
            iload 2 /* grabExtraHorizontalSpace */
            iload 3 /* grabExtraVerticalSpace */
            iconst_1
            iconst_1
            invokestatic com.googlecode.lanterna.gui2.GridLayout.createLayoutData:(Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;ZZII)Lcom/googlecode/lanterna/gui2/LayoutData;
            areturn
        end local 3 // boolean grabExtraVerticalSpace
        end local 2 // boolean grabExtraHorizontalSpace
        end local 1 // com.googlecode.lanterna.gui2.GridLayout$Alignment verticalAlignment
        end local 0 // com.googlecode.lanterna.gui2.GridLayout$Alignment horizontalAlignment
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    1     0       horizontalAlignment  Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
            0    1     1         verticalAlignment  Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
            0    1     2  grabExtraHorizontalSpace  Z
            0    1     3    grabExtraVerticalSpace  Z
    MethodParameters:
                          Name  Flags
      horizontalAlignment       
      verticalAlignment         
      grabExtraHorizontalSpace  
      grabExtraVerticalSpace    

  public static com.googlecode.lanterna.gui2.LayoutData createLayoutData(com.googlecode.lanterna.gui2.GridLayout$Alignment, com.googlecode.lanterna.gui2.GridLayout$Alignment, boolean, boolean, int, int);
    descriptor: (Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;ZZII)Lcom/googlecode/lanterna/gui2/LayoutData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=6
        start local 0 // com.googlecode.lanterna.gui2.GridLayout$Alignment horizontalAlignment
        start local 1 // com.googlecode.lanterna.gui2.GridLayout$Alignment verticalAlignment
        start local 2 // boolean grabExtraHorizontalSpace
        start local 3 // boolean grabExtraVerticalSpace
        start local 4 // int horizontalSpan
        start local 5 // int verticalSpan
         0: .line 168
            new com.googlecode.lanterna.gui2.GridLayout$GridLayoutData
            dup
         1: .line 169
            aload 0 /* horizontalAlignment */
         2: .line 170
            aload 1 /* verticalAlignment */
         3: .line 171
            iload 2 /* grabExtraHorizontalSpace */
         4: .line 172
            iload 3 /* grabExtraVerticalSpace */
         5: .line 173
            iload 4 /* horizontalSpan */
         6: .line 174
            iload 5 /* verticalSpan */
         7: .line 168
            invokespecial com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.<init>:(Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;ZZII)V
            areturn
        end local 5 // int verticalSpan
        end local 4 // int horizontalSpan
        end local 3 // boolean grabExtraVerticalSpace
        end local 2 // boolean grabExtraHorizontalSpace
        end local 1 // com.googlecode.lanterna.gui2.GridLayout$Alignment verticalAlignment
        end local 0 // com.googlecode.lanterna.gui2.GridLayout$Alignment horizontalAlignment
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    8     0       horizontalAlignment  Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
            0    8     1         verticalAlignment  Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
            0    8     2  grabExtraHorizontalSpace  Z
            0    8     3    grabExtraVerticalSpace  Z
            0    8     4            horizontalSpan  I
            0    8     5              verticalSpan  I
    MethodParameters:
                          Name  Flags
      horizontalAlignment       
      verticalAlignment         
      grabExtraHorizontalSpace  
      grabExtraVerticalSpace    
      horizontalSpan            
      verticalSpan              

  public static com.googlecode.lanterna.gui2.LayoutData createHorizontallyFilledLayoutData();
    descriptor: ()Lcom/googlecode/lanterna/gui2/LayoutData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 184
            getstatic com.googlecode.lanterna.gui2.GridLayout$Alignment.FILL:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
         1: .line 185
            getstatic com.googlecode.lanterna.gui2.GridLayout$Alignment.CENTER:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
         2: .line 186
            iconst_1
         3: .line 187
            iconst_0
         4: .line 188
            iconst_1
         5: .line 189
            iconst_1
         6: .line 183
            invokestatic com.googlecode.lanterna.gui2.GridLayout.createLayoutData:(Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;ZZII)Lcom/googlecode/lanterna/gui2/LayoutData;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.googlecode.lanterna.gui2.LayoutData createHorizontallyFilledLayoutData(int);
    descriptor: (I)Lcom/googlecode/lanterna/gui2/LayoutData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // int horizontalSpan
         0: .line 200
            getstatic com.googlecode.lanterna.gui2.GridLayout$Alignment.FILL:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
         1: .line 201
            getstatic com.googlecode.lanterna.gui2.GridLayout$Alignment.CENTER:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
         2: .line 202
            iconst_1
         3: .line 203
            iconst_0
         4: .line 204
            iload 0 /* horizontalSpan */
         5: .line 205
            iconst_1
         6: .line 199
            invokestatic com.googlecode.lanterna.gui2.GridLayout.createLayoutData:(Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;ZZII)Lcom/googlecode/lanterna/gui2/LayoutData;
            areturn
        end local 0 // int horizontalSpan
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0  horizontalSpan  I
    MethodParameters:
                Name  Flags
      horizontalSpan  

  public static com.googlecode.lanterna.gui2.LayoutData createHorizontallyEndAlignedLayoutData(int);
    descriptor: (I)Lcom/googlecode/lanterna/gui2/LayoutData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // int horizontalSpan
         0: .line 216
            getstatic com.googlecode.lanterna.gui2.GridLayout$Alignment.END:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
         1: .line 217
            getstatic com.googlecode.lanterna.gui2.GridLayout$Alignment.CENTER:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
         2: .line 218
            iconst_1
         3: .line 219
            iconst_0
         4: .line 220
            iload 0 /* horizontalSpan */
         5: .line 221
            iconst_1
         6: .line 215
            invokestatic com.googlecode.lanterna.gui2.GridLayout.createLayoutData:(Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;ZZII)Lcom/googlecode/lanterna/gui2/LayoutData;
            areturn
        end local 0 // int horizontalSpan
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0  horizontalSpan  I
    MethodParameters:
                Name  Flags
      horizontalSpan  

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // int numberOfColumns
         0: .line 239
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 240
            aload 0 /* this */
            iload 1 /* numberOfColumns */
            putfield com.googlecode.lanterna.gui2.GridLayout.numberOfColumns:I
         2: .line 241
            aload 0 /* this */
            iconst_1
            putfield com.googlecode.lanterna.gui2.GridLayout.horizontalSpacing:I
         3: .line 242
            aload 0 /* this */
            iconst_0
            putfield com.googlecode.lanterna.gui2.GridLayout.verticalSpacing:I
         4: .line 243
            aload 0 /* this */
            iconst_0
            putfield com.googlecode.lanterna.gui2.GridLayout.topMarginSize:I
         5: .line 244
            aload 0 /* this */
            iconst_0
            putfield com.googlecode.lanterna.gui2.GridLayout.bottomMarginSize:I
         6: .line 245
            aload 0 /* this */
            iconst_1
            putfield com.googlecode.lanterna.gui2.GridLayout.leftMarginSize:I
         7: .line 246
            aload 0 /* this */
            iconst_1
            putfield com.googlecode.lanterna.gui2.GridLayout.rightMarginSize:I
         8: .line 247
            aload 0 /* this */
            iconst_1
            putfield com.googlecode.lanterna.gui2.GridLayout.changed:Z
         9: .line 248
            return
        end local 1 // int numberOfColumns
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0   10     1  numberOfColumns  I
    MethodParameters:
                 Name  Flags
      numberOfColumns  

  public int getHorizontalSpacing();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
         0: .line 255
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.horizontalSpacing:I
            ireturn
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/gui2/GridLayout;

  public com.googlecode.lanterna.gui2.GridLayout setHorizontalSpacing(int);
    descriptor: (I)Lcom/googlecode/lanterna/gui2/GridLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // int horizontalSpacing
         0: .line 264
            iload 1 /* horizontalSpacing */
            ifge 2
         1: .line 265
            new java.lang.IllegalArgumentException
            dup
            ldc "Horizontal spacing cannot be less than 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* horizontalSpacing */
            putfield com.googlecode.lanterna.gui2.GridLayout.horizontalSpacing:I
         3: .line 268
            aload 0 /* this */
            iconst_1
            putfield com.googlecode.lanterna.gui2.GridLayout.changed:Z
         4: .line 269
            aload 0 /* this */
            areturn
        end local 1 // int horizontalSpacing
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0    5     1  horizontalSpacing  I
    MethodParameters:
                   Name  Flags
      horizontalSpacing  

  public int getVerticalSpacing();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
         0: .line 277
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.verticalSpacing:I
            ireturn
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/gui2/GridLayout;

  public com.googlecode.lanterna.gui2.GridLayout setVerticalSpacing(int);
    descriptor: (I)Lcom/googlecode/lanterna/gui2/GridLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // int verticalSpacing
         0: .line 286
            iload 1 /* verticalSpacing */
            ifge 2
         1: .line 287
            new java.lang.IllegalArgumentException
            dup
            ldc "Vertical spacing cannot be less than 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* verticalSpacing */
            putfield com.googlecode.lanterna.gui2.GridLayout.verticalSpacing:I
         3: .line 290
            aload 0 /* this */
            iconst_1
            putfield com.googlecode.lanterna.gui2.GridLayout.changed:Z
         4: .line 291
            aload 0 /* this */
            areturn
        end local 1 // int verticalSpacing
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0    5     1  verticalSpacing  I
    MethodParameters:
                 Name  Flags
      verticalSpacing  

  public int getTopMarginSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
         0: .line 299
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.topMarginSize:I
            ireturn
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/gui2/GridLayout;

  public com.googlecode.lanterna.gui2.GridLayout setTopMarginSize(int);
    descriptor: (I)Lcom/googlecode/lanterna/gui2/GridLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // int topMarginSize
         0: .line 308
            iload 1 /* topMarginSize */
            ifge 2
         1: .line 309
            new java.lang.IllegalArgumentException
            dup
            ldc "Top margin size cannot be less than 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* topMarginSize */
            putfield com.googlecode.lanterna.gui2.GridLayout.topMarginSize:I
         3: .line 312
            aload 0 /* this */
            iconst_1
            putfield com.googlecode.lanterna.gui2.GridLayout.changed:Z
         4: .line 313
            aload 0 /* this */
            areturn
        end local 1 // int topMarginSize
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0    5     1  topMarginSize  I
    MethodParameters:
               Name  Flags
      topMarginSize  

  public int getBottomMarginSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
         0: .line 321
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.bottomMarginSize:I
            ireturn
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/gui2/GridLayout;

  public com.googlecode.lanterna.gui2.GridLayout setBottomMarginSize(int);
    descriptor: (I)Lcom/googlecode/lanterna/gui2/GridLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // int bottomMarginSize
         0: .line 330
            iload 1 /* bottomMarginSize */
            ifge 2
         1: .line 331
            new java.lang.IllegalArgumentException
            dup
            ldc "Bottom margin size cannot be less than 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* bottomMarginSize */
            putfield com.googlecode.lanterna.gui2.GridLayout.bottomMarginSize:I
         3: .line 334
            aload 0 /* this */
            iconst_1
            putfield com.googlecode.lanterna.gui2.GridLayout.changed:Z
         4: .line 335
            aload 0 /* this */
            areturn
        end local 1 // int bottomMarginSize
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0    5     1  bottomMarginSize  I
    MethodParameters:
                  Name  Flags
      bottomMarginSize  

  public int getLeftMarginSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
         0: .line 343
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.leftMarginSize:I
            ireturn
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/gui2/GridLayout;

  public com.googlecode.lanterna.gui2.GridLayout setLeftMarginSize(int);
    descriptor: (I)Lcom/googlecode/lanterna/gui2/GridLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // int leftMarginSize
         0: .line 352
            iload 1 /* leftMarginSize */
            ifge 2
         1: .line 353
            new java.lang.IllegalArgumentException
            dup
            ldc "Left margin size cannot be less than 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 355
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* leftMarginSize */
            putfield com.googlecode.lanterna.gui2.GridLayout.leftMarginSize:I
         3: .line 356
            aload 0 /* this */
            iconst_1
            putfield com.googlecode.lanterna.gui2.GridLayout.changed:Z
         4: .line 357
            aload 0 /* this */
            areturn
        end local 1 // int leftMarginSize
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0    5     1  leftMarginSize  I
    MethodParameters:
                Name  Flags
      leftMarginSize  

  public int getRightMarginSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
         0: .line 365
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.rightMarginSize:I
            ireturn
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/gui2/GridLayout;

  public com.googlecode.lanterna.gui2.GridLayout setRightMarginSize(int);
    descriptor: (I)Lcom/googlecode/lanterna/gui2/GridLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // int rightMarginSize
         0: .line 374
            iload 1 /* rightMarginSize */
            ifge 2
         1: .line 375
            new java.lang.IllegalArgumentException
            dup
            ldc "Right margin size cannot be less than 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* rightMarginSize */
            putfield com.googlecode.lanterna.gui2.GridLayout.rightMarginSize:I
         3: .line 378
            aload 0 /* this */
            iconst_1
            putfield com.googlecode.lanterna.gui2.GridLayout.changed:Z
         4: .line 379
            aload 0 /* this */
            areturn
        end local 1 // int rightMarginSize
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0    5     1  rightMarginSize  I
    MethodParameters:
                 Name  Flags
      rightMarginSize  

  public boolean hasChanged();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
         0: .line 384
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.changed:Z
            ireturn
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/gui2/GridLayout;

  public com.googlecode.lanterna.TerminalSize getPreferredSize(java.util.List<com.googlecode.lanterna.gui2.Component>);
    descriptor: (Ljava/util/List;)Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // java.util.List components
         0: .line 389
            getstatic com.googlecode.lanterna.TerminalSize.ZERO:Lcom/googlecode/lanterna/TerminalSize;
            astore 2 /* preferredSize */
        start local 2 // com.googlecode.lanterna.TerminalSize preferredSize
         1: .line 390
            aload 1 /* components */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 6
         2: .line 391
            aload 2 /* preferredSize */
         3: .line 392
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.leftMarginSize:I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.rightMarginSize:I
            iadd
         4: .line 393
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.topMarginSize:I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.bottomMarginSize:I
            iadd
         5: .line 391
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelative:(II)Lcom/googlecode/lanterna/TerminalSize;
            areturn
         6: .line 396
      StackMap locals: com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 0 /* this */
            aload 1 /* components */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.buildTable:(Ljava/util/List;)[[Lcom/googlecode/lanterna/gui2/Component;
            astore 3 /* table */
        start local 3 // com.googlecode.lanterna.gui2.Component[][] table
         7: .line 397
            aload 0 /* this */
            aload 3 /* table */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.eliminateUnusedRowsAndColumns:([[Lcom/googlecode/lanterna/gui2/Component;)[[Lcom/googlecode/lanterna/gui2/Component;
            astore 3 /* table */
         8: .line 400
            iconst_0
            istore 4 /* preferredWidth */
        start local 4 // int preferredWidth
         9: .line 401
            iconst_0
            istore 5 /* preferredHeight */
        start local 5 // int preferredHeight
        10: .line 402
            aload 0 /* this */
            aload 3 /* table */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getPreferredColumnWidths:([[Lcom/googlecode/lanterna/gui2/Component;)[I
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 14
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout java.util.List com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.gui2.Component[][] int int top int int int[]
      StackMap stack:
        11: aload 9
            iload 7
            iaload
            istore 6 /* width */
        start local 6 // int width
        12: .line 403
            iload 4 /* preferredWidth */
            iload 6 /* width */
            iadd
            istore 4 /* preferredWidth */
        end local 6 // int width
        13: .line 402
            iinc 7 1
      StackMap locals:
      StackMap stack:
        14: iload 7
            iload 8
            if_icmplt 11
        15: .line 405
            aload 0 /* this */
            aload 3 /* table */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getPreferredRowHeights:([[Lcom/googlecode/lanterna/gui2/Component;)[I
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 19
      StackMap locals:
      StackMap stack:
        16: aload 9
            iload 7
            iaload
            istore 6 /* height */
        start local 6 // int height
        17: .line 406
            iload 5 /* preferredHeight */
            iload 6 /* height */
            iadd
            istore 5 /* preferredHeight */
        end local 6 // int height
        18: .line 405
            iinc 7 1
      StackMap locals:
      StackMap stack:
        19: iload 7
            iload 8
            if_icmplt 16
        20: .line 408
            aload 2 /* preferredSize */
            iload 4 /* preferredWidth */
            iload 5 /* preferredHeight */
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelative:(II)Lcom/googlecode/lanterna/TerminalSize;
            astore 2 /* preferredSize */
        21: .line 409
            aload 2 /* preferredSize */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.leftMarginSize:I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.rightMarginSize:I
            iadd
            aload 3 /* table */
            iconst_0
            aaload
            arraylength
            iconst_1
            isub
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.horizontalSpacing:I
            imul
            iadd
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelativeColumns:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 2 /* preferredSize */
        22: .line 410
            aload 2 /* preferredSize */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.topMarginSize:I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.bottomMarginSize:I
            iadd
            aload 3 /* table */
            arraylength
            iconst_1
            isub
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.verticalSpacing:I
            imul
            iadd
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelativeRows:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 2 /* preferredSize */
        23: .line 411
            aload 2 /* preferredSize */
            areturn
        end local 5 // int preferredHeight
        end local 4 // int preferredWidth
        end local 3 // com.googlecode.lanterna.gui2.Component[][] table
        end local 2 // com.googlecode.lanterna.TerminalSize preferredSize
        end local 1 // java.util.List components
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   24     0             this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0   24     1       components  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
            1   24     2    preferredSize  Lcom/googlecode/lanterna/TerminalSize;
            7   24     3            table  [[Lcom/googlecode/lanterna/gui2/Component;
            9   24     4   preferredWidth  I
           10   24     5  preferredHeight  I
           12   13     6            width  I
           17   18     6           height  I
    Signature: (Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;)Lcom/googlecode/lanterna/TerminalSize;
    MethodParameters:
            Name  Flags
      components  

  public void doLayout(com.googlecode.lanterna.TerminalSize, java.util.List<com.googlecode.lanterna.gui2.Component>);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=24, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // com.googlecode.lanterna.TerminalSize area
        start local 2 // java.util.List components
         0: .line 417
            aload 0 /* this */
            aload 2 /* components */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.buildTable:(Ljava/util/List;)[[Lcom/googlecode/lanterna/gui2/Component;
            astore 3 /* table */
        start local 3 // com.googlecode.lanterna.gui2.Component[][] table
         1: .line 418
            aload 0 /* this */
            aload 3 /* table */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.eliminateUnusedRowsAndColumns:([[Lcom/googlecode/lanterna/gui2/Component;)[[Lcom/googlecode/lanterna/gui2/Component;
            astore 3 /* table */
         2: .line 420
            aload 1 /* area */
            getstatic com.googlecode.lanterna.TerminalSize.ZERO:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.equals:(Ljava/lang/Object;)Z
            ifne 6
         3: .line 421
            aload 3 /* table */
            arraylength
            ifeq 6
         4: .line 422
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.leftMarginSize:I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.rightMarginSize:I
            iadd
            aload 3 /* table */
            iconst_0
            aaload
            arraylength
            iconst_1
            isub
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.horizontalSpacing:I
            imul
            iadd
            if_icmple 6
         5: .line 423
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.bottomMarginSize:I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.topMarginSize:I
            iadd
            aload 3 /* table */
            arraylength
            iconst_1
            isub
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.verticalSpacing:I
            imul
            iadd
            if_icmpgt 8
         6: .line 424
      StackMap locals: com.googlecode.lanterna.gui2.Component[][]
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.googlecode.lanterna.gui2.GridLayout.changed:Z
         7: .line 425
            return
         8: .line 429
      StackMap locals:
      StackMap stack:
            aload 1 /* area */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.leftMarginSize:I
            ineg
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.rightMarginSize:I
            isub
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.topMarginSize:I
            ineg
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.bottomMarginSize:I
            isub
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelative:(II)Lcom/googlecode/lanterna/TerminalSize;
            astore 1 /* area */
         9: .line 431
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            astore 4 /* sizeMap */
        start local 4 // java.util.Map sizeMap
        10: .line 432
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            astore 5 /* positionMap */
        start local 5 // java.util.Map positionMap
        11: .line 435
            aload 0 /* this */
            aload 3 /* table */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getPreferredColumnWidths:([[Lcom/googlecode/lanterna/gui2/Component;)[I
            astore 6 /* columnWidths */
        start local 6 // int[] columnWidths
        12: .line 438
            aload 0 /* this */
            aload 3 /* table */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getExpandableColumns:([[Lcom/googlecode/lanterna/gui2/Component;)Ljava/util/Set;
            astore 7 /* expandableColumns */
        start local 7 // java.util.Set expandableColumns
        13: .line 442
            aload 1 /* area */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.horizontalSpacing:I
            ineg
            aload 3 /* table */
            iconst_0
            aaload
            arraylength
            iconst_1
            isub
            imul
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelativeColumns:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 8 /* areaWithoutHorizontalSpacing */
        start local 8 // com.googlecode.lanterna.TerminalSize areaWithoutHorizontalSpacing
        14: .line 443
            aload 0 /* this */
            aload 8 /* areaWithoutHorizontalSpacing */
            aload 6 /* columnWidths */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.shrinkWidthToFitArea:(Lcom/googlecode/lanterna/TerminalSize;[I)I
            istore 9 /* totalWidth */
        start local 9 // int totalWidth
        15: .line 446
            goto 17
        16: .line 447
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize java.util.List com.googlecode.lanterna.gui2.Component[][] java.util.Map java.util.Map int[] java.util.Set com.googlecode.lanterna.TerminalSize int
      StackMap stack:
            aload 0 /* this */
            aload 8 /* areaWithoutHorizontalSpacing */
            aload 6 /* columnWidths */
            aload 7 /* expandableColumns */
            iload 9 /* totalWidth */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.grabExtraHorizontalSpace:(Lcom/googlecode/lanterna/TerminalSize;[ILjava/util/Set;I)I
            istore 9 /* totalWidth */
        17: .line 446
      StackMap locals:
      StackMap stack:
            aload 8 /* areaWithoutHorizontalSpacing */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iload 9 /* totalWidth */
            if_icmple 18
            aload 7 /* expandableColumns */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 16
        18: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* table */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getPreferredRowHeights:([[Lcom/googlecode/lanterna/gui2/Component;)[I
            astore 10 /* rowHeights */
        start local 10 // int[] rowHeights
        19: .line 452
            aload 0 /* this */
            aload 3 /* table */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getExpandableRows:([[Lcom/googlecode/lanterna/gui2/Component;)Ljava/util/Set;
            astore 11 /* expandableRows */
        start local 11 // java.util.Set expandableRows
        20: .line 453
            aload 1 /* area */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.verticalSpacing:I
            ineg
            aload 3 /* table */
            arraylength
            iconst_1
            isub
            imul
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelativeRows:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 12 /* areaWithoutVerticalSpacing */
        start local 12 // com.googlecode.lanterna.TerminalSize areaWithoutVerticalSpacing
        21: .line 454
            aload 0 /* this */
            aload 12 /* areaWithoutVerticalSpacing */
            aload 10 /* rowHeights */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.shrinkHeightToFitArea:(Lcom/googlecode/lanterna/TerminalSize;[I)I
            istore 13 /* totalHeight */
        start local 13 // int totalHeight
        22: .line 455
            goto 24
        23: .line 456
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize java.util.List com.googlecode.lanterna.gui2.Component[][] java.util.Map java.util.Map int[] java.util.Set com.googlecode.lanterna.TerminalSize int int[] java.util.Set com.googlecode.lanterna.TerminalSize int
      StackMap stack:
            aload 0 /* this */
            aload 12 /* areaWithoutVerticalSpacing */
            aload 10 /* rowHeights */
            aload 11 /* expandableRows */
            iload 13 /* totalHeight */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.grabExtraVerticalSpace:(Lcom/googlecode/lanterna/TerminalSize;[ILjava/util/Set;I)I
            istore 13 /* totalHeight */
        24: .line 455
      StackMap locals:
      StackMap stack:
            aload 12 /* areaWithoutVerticalSpacing */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iload 13 /* totalHeight */
            if_icmple 25
            aload 11 /* expandableRows */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 23
        25: .line 461
      StackMap locals:
      StackMap stack:
            getstatic com.googlecode.lanterna.TerminalPosition.TOP_LEFT_CORNER:Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* tableCellTopLeft */
        start local 14 // com.googlecode.lanterna.TerminalPosition tableCellTopLeft
        26: .line 462
            iconst_0
            istore 15 /* y */
        start local 15 // int y
        27: goto 76
        28: .line 463
      StackMap locals: com.googlecode.lanterna.TerminalPosition int
      StackMap stack:
            aload 14 /* tableCellTopLeft */
            iconst_0
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* tableCellTopLeft */
        29: .line 464
            iconst_0
            istore 16 /* x */
        start local 16 // int x
        30: goto 73
        31: .line 465
      StackMap locals: int
      StackMap stack:
            aload 3 /* table */
            iload 15 /* y */
            aaload
            iload 16 /* x */
            aaload
            astore 17 /* component */
        start local 17 // com.googlecode.lanterna.gui2.Component component
        32: .line 466
            aload 17 /* component */
            ifnull 71
            aload 5 /* positionMap */
            aload 17 /* component */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 71
        33: .line 467
            aload 0 /* this */
            aload 17 /* component */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getLayoutData:(Lcom/googlecode/lanterna/gui2/Component;)Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
            astore 18 /* layoutData */
        start local 18 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        34: .line 468
            aload 17 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 19 /* size */
        start local 19 // com.googlecode.lanterna.TerminalSize size
        35: .line 469
            aload 14 /* tableCellTopLeft */
            astore 20 /* position */
        start local 20 // com.googlecode.lanterna.TerminalPosition position
        36: .line 471
            iconst_0
            istore 21 /* availableHorizontalSpace */
        start local 21 // int availableHorizontalSpace
        37: .line 472
            iconst_0
            istore 22 /* availableVerticalSpace */
        start local 22 // int availableVerticalSpace
        38: .line 473
            iconst_0
            istore 23 /* i */
        start local 23 // int i
        39: goto 44
        40: .line 474
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize java.util.List com.googlecode.lanterna.gui2.Component[][] java.util.Map java.util.Map int[] java.util.Set com.googlecode.lanterna.TerminalSize int int[] java.util.Set com.googlecode.lanterna.TerminalSize int com.googlecode.lanterna.TerminalPosition int int com.googlecode.lanterna.gui2.Component com.googlecode.lanterna.gui2.GridLayout$GridLayoutData com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TerminalPosition int int int
      StackMap stack:
            iload 21 /* availableHorizontalSpace */
            aload 6 /* columnWidths */
            iload 16 /* x */
            iload 23 /* i */
            iadd
            iaload
            iload 23 /* i */
            ifle 41
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.horizontalSpacing:I
            goto 42
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize java.util.List com.googlecode.lanterna.gui2.Component[][] java.util.Map java.util.Map int[] java.util.Set com.googlecode.lanterna.TerminalSize int int[] java.util.Set com.googlecode.lanterna.TerminalSize int com.googlecode.lanterna.TerminalPosition int int com.googlecode.lanterna.gui2.Component com.googlecode.lanterna.gui2.GridLayout$GridLayoutData com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TerminalPosition int int int
      StackMap stack: int int
        41: iconst_0
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize java.util.List com.googlecode.lanterna.gui2.Component[][] java.util.Map java.util.Map int[] java.util.Set com.googlecode.lanterna.TerminalSize int int[] java.util.Set com.googlecode.lanterna.TerminalSize int com.googlecode.lanterna.TerminalPosition int int com.googlecode.lanterna.gui2.Component com.googlecode.lanterna.gui2.GridLayout$GridLayoutData com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TerminalPosition int int int
      StackMap stack: int int int
        42: iadd
            iadd
            istore 21 /* availableHorizontalSpace */
        43: .line 473
            iinc 23 /* i */ 1
      StackMap locals:
      StackMap stack:
        44: iload 23 /* i */
            aload 18 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.horizontalSpan:I
            if_icmpge 45
            iload 16 /* x */
            iload 23 /* i */
            iadd
            aload 6 /* columnWidths */
            arraylength
            if_icmplt 40
        end local 23 // int i
        45: .line 476
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 23 /* i */
        start local 23 // int i
        46: goto 51
        47: .line 477
      StackMap locals: int
      StackMap stack:
            iload 22 /* availableVerticalSpace */
            aload 10 /* rowHeights */
            iload 15 /* y */
            iload 23 /* i */
            iadd
            iaload
            iload 23 /* i */
            ifle 48
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.verticalSpacing:I
            goto 49
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize java.util.List com.googlecode.lanterna.gui2.Component[][] java.util.Map java.util.Map int[] java.util.Set com.googlecode.lanterna.TerminalSize int int[] java.util.Set com.googlecode.lanterna.TerminalSize int com.googlecode.lanterna.TerminalPosition int int com.googlecode.lanterna.gui2.Component com.googlecode.lanterna.gui2.GridLayout$GridLayoutData com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TerminalPosition int int int
      StackMap stack: int int
        48: iconst_0
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize java.util.List com.googlecode.lanterna.gui2.Component[][] java.util.Map java.util.Map int[] java.util.Set com.googlecode.lanterna.TerminalSize int int[] java.util.Set com.googlecode.lanterna.TerminalSize int com.googlecode.lanterna.TerminalPosition int int com.googlecode.lanterna.gui2.Component com.googlecode.lanterna.gui2.GridLayout$GridLayoutData com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TerminalPosition int int int
      StackMap stack: int int int
        49: iadd
            iadd
            istore 22 /* availableVerticalSpace */
        50: .line 476
            iinc 23 /* i */ 1
      StackMap locals:
      StackMap stack:
        51: iload 23 /* i */
            aload 18 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.verticalSpan:I
            if_icmplt 47
        end local 23 // int i
        52: .line 481
            aload 19 /* size */
            aload 19 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iload 21 /* availableHorizontalSpace */
            invokestatic java.lang.Math.min:(II)I
            invokevirtual com.googlecode.lanterna.TerminalSize.withColumns:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 19 /* size */
        53: .line 482
            aload 19 /* size */
            aload 19 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iload 22 /* availableVerticalSpace */
            invokestatic java.lang.Math.min:(II)I
            invokevirtual com.googlecode.lanterna.TerminalSize.withRows:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 19 /* size */
        54: .line 484
            invokestatic com.googlecode.lanterna.gui2.GridLayout.$SWITCH_TABLE$com$googlecode$lanterna$gui2$GridLayout$Alignment:()[I
            aload 18 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.horizontalAlignment:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
            invokevirtual com.googlecode.lanterna.gui2.GridLayout$Alignment.ordinal:()I
            iaload
            tableswitch { // 2 - 4
                    2: 55
                    3: 57
                    4: 59
              default: 61
          }
        55: .line 486
      StackMap locals:
      StackMap stack:
            aload 20 /* position */
            iload 21 /* availableHorizontalSpace */
            aload 19 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            isub
            iconst_2
            idiv
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 20 /* position */
        56: .line 487
            goto 61
        57: .line 489
      StackMap locals:
      StackMap stack:
            aload 20 /* position */
            iload 21 /* availableHorizontalSpace */
            aload 19 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 20 /* position */
        58: .line 490
            goto 61
        59: .line 492
      StackMap locals:
      StackMap stack:
            aload 19 /* size */
            iload 21 /* availableHorizontalSpace */
            invokevirtual com.googlecode.lanterna.TerminalSize.withColumns:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 19 /* size */
        60: .line 493
            goto 61
        61: .line 495
      StackMap locals:
      StackMap stack:
            invokestatic com.googlecode.lanterna.gui2.GridLayout.$SWITCH_TABLE$com$googlecode$lanterna$gui2$GridLayout$Alignment:()[I
        62: .line 497
            aload 18 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.verticalAlignment:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
            invokevirtual com.googlecode.lanterna.gui2.GridLayout$Alignment.ordinal:()I
            iaload
            tableswitch { // 2 - 4
                    2: 63
                    3: 65
                    4: 67
              default: 69
          }
        63: .line 499
      StackMap locals:
      StackMap stack:
            aload 20 /* position */
            iload 22 /* availableVerticalSpace */
            aload 19 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            isub
            iconst_2
            idiv
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 20 /* position */
        64: .line 500
            goto 69
        65: .line 502
      StackMap locals:
      StackMap stack:
            aload 20 /* position */
            iload 22 /* availableVerticalSpace */
            aload 19 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 20 /* position */
        66: .line 503
            goto 69
        67: .line 505
      StackMap locals:
      StackMap stack:
            aload 19 /* size */
            iload 22 /* availableVerticalSpace */
            invokevirtual com.googlecode.lanterna.TerminalSize.withRows:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 19 /* size */
        68: .line 506
            goto 69
        69: .line 511
      StackMap locals:
      StackMap stack:
            aload 4 /* sizeMap */
            aload 17 /* component */
            aload 19 /* size */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        70: .line 512
            aload 5 /* positionMap */
            aload 17 /* component */
            aload 20 /* position */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 22 // int availableVerticalSpace
        end local 21 // int availableHorizontalSpace
        end local 20 // com.googlecode.lanterna.TerminalPosition position
        end local 19 // com.googlecode.lanterna.TerminalSize size
        end local 18 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        71: .line 514
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize java.util.List com.googlecode.lanterna.gui2.Component[][] java.util.Map java.util.Map int[] java.util.Set com.googlecode.lanterna.TerminalSize int int[] java.util.Set com.googlecode.lanterna.TerminalSize int com.googlecode.lanterna.TerminalPosition int int com.googlecode.lanterna.gui2.Component
      StackMap stack:
            aload 14 /* tableCellTopLeft */
            aload 6 /* columnWidths */
            iload 16 /* x */
            iaload
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.horizontalSpacing:I
            iadd
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* tableCellTopLeft */
        end local 17 // com.googlecode.lanterna.gui2.Component component
        72: .line 464
            iinc 16 /* x */ 1
      StackMap locals:
      StackMap stack:
        73: iload 16 /* x */
            aload 3 /* table */
            iload 15 /* y */
            aaload
            arraylength
            if_icmplt 31
        end local 16 // int x
        74: .line 516
            aload 14 /* tableCellTopLeft */
            aload 10 /* rowHeights */
            iload 15 /* y */
            iaload
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.verticalSpacing:I
            iadd
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* tableCellTopLeft */
        75: .line 462
            iinc 15 /* y */ 1
      StackMap locals:
      StackMap stack:
        76: iload 15 /* y */
            aload 3 /* table */
            arraylength
            if_icmplt 28
        end local 15 // int y
        77: .line 520
            aload 2 /* components */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 16
            goto 81
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize java.util.List com.googlecode.lanterna.gui2.Component[][] java.util.Map java.util.Map int[] java.util.Set com.googlecode.lanterna.TerminalSize int int[] java.util.Set com.googlecode.lanterna.TerminalSize int com.googlecode.lanterna.TerminalPosition top java.util.Iterator
      StackMap stack:
        78: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 15 /* component */
        start local 15 // com.googlecode.lanterna.gui2.Component component
        79: .line 521
            aload 15 /* component */
            aload 5 /* positionMap */
            aload 15 /* component */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalPosition
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.leftMarginSize:I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.topMarginSize:I
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelative:(II)Lcom/googlecode/lanterna/TerminalPosition;
            invokeinterface com.googlecode.lanterna.gui2.Component.setPosition:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/gui2/Component;
            pop
        80: .line 522
            aload 15 /* component */
            aload 4 /* sizeMap */
            aload 15 /* component */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            invokeinterface com.googlecode.lanterna.gui2.Component.setSize:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/gui2/Component;
            pop
        end local 15 // com.googlecode.lanterna.gui2.Component component
        81: .line 520
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 78
        82: .line 524
            aload 0 /* this */
            iconst_0
            putfield com.googlecode.lanterna.gui2.GridLayout.changed:Z
        83: .line 525
            return
        end local 14 // com.googlecode.lanterna.TerminalPosition tableCellTopLeft
        end local 13 // int totalHeight
        end local 12 // com.googlecode.lanterna.TerminalSize areaWithoutVerticalSpacing
        end local 11 // java.util.Set expandableRows
        end local 10 // int[] rowHeights
        end local 9 // int totalWidth
        end local 8 // com.googlecode.lanterna.TerminalSize areaWithoutHorizontalSpacing
        end local 7 // java.util.Set expandableColumns
        end local 6 // int[] columnWidths
        end local 5 // java.util.Map positionMap
        end local 4 // java.util.Map sizeMap
        end local 3 // com.googlecode.lanterna.gui2.Component[][] table
        end local 2 // java.util.List components
        end local 1 // com.googlecode.lanterna.TerminalSize area
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0   84     0                          this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0   84     1                          area  Lcom/googlecode/lanterna/TerminalSize;
            0   84     2                    components  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
            1   84     3                         table  [[Lcom/googlecode/lanterna/gui2/Component;
           10   84     4                       sizeMap  Ljava/util/Map<Lcom/googlecode/lanterna/gui2/Component;Lcom/googlecode/lanterna/TerminalSize;>;
           11   84     5                   positionMap  Ljava/util/Map<Lcom/googlecode/lanterna/gui2/Component;Lcom/googlecode/lanterna/TerminalPosition;>;
           12   84     6                  columnWidths  [I
           13   84     7             expandableColumns  Ljava/util/Set<Ljava/lang/Integer;>;
           14   84     8  areaWithoutHorizontalSpacing  Lcom/googlecode/lanterna/TerminalSize;
           15   84     9                    totalWidth  I
           19   84    10                    rowHeights  [I
           20   84    11                expandableRows  Ljava/util/Set<Ljava/lang/Integer;>;
           21   84    12    areaWithoutVerticalSpacing  Lcom/googlecode/lanterna/TerminalSize;
           22   84    13                   totalHeight  I
           26   84    14              tableCellTopLeft  Lcom/googlecode/lanterna/TerminalPosition;
           27   77    15                             y  I
           30   74    16                             x  I
           32   72    17                     component  Lcom/googlecode/lanterna/gui2/Component;
           34   71    18                    layoutData  Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
           35   71    19                          size  Lcom/googlecode/lanterna/TerminalSize;
           36   71    20                      position  Lcom/googlecode/lanterna/TerminalPosition;
           37   71    21      availableHorizontalSpace  I
           38   71    22        availableVerticalSpace  I
           39   45    23                             i  I
           46   52    23                             i  I
           79   81    15                     component  Lcom/googlecode/lanterna/gui2/Component;
    Signature: (Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;)V
    MethodParameters:
            Name  Flags
      area        
      components  

  private int[] getPreferredColumnWidths(com.googlecode.lanterna.gui2.Component[][]);
    descriptor: ([[Lcom/googlecode/lanterna/gui2/Component;)[I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=15, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // com.googlecode.lanterna.gui2.Component[][] table
         0: .line 529
            aload 1 /* table */
            iconst_0
            aaload
            arraylength
            istore 2 /* actualNumberOfColumns */
        start local 2 // int actualNumberOfColumns
         1: .line 530
            iload 2 /* actualNumberOfColumns */
            newarray 10
            astore 3 /* columnWidths */
        start local 3 // int[] columnWidths
         2: .line 533
            aload 1 /* table */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 15
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] int int[] top int int com.googlecode.lanterna.gui2.Component[][]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* row */
        start local 4 // com.googlecode.lanterna.gui2.Component[] row
         4: .line 534
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         5: goto 13
         6: .line 535
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] int int[] com.googlecode.lanterna.gui2.Component[] int int com.googlecode.lanterna.gui2.Component[][] int
      StackMap stack:
            aload 4 /* row */
            iload 8 /* i */
            aaload
            astore 9 /* component */
        start local 9 // com.googlecode.lanterna.gui2.Component component
         7: .line 536
            aload 9 /* component */
            ifnonnull 9
         8: .line 537
            goto 12
         9: .line 539
      StackMap locals: com.googlecode.lanterna.gui2.Component
      StackMap stack:
            aload 0 /* this */
            aload 9 /* component */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getLayoutData:(Lcom/googlecode/lanterna/gui2/Component;)Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
            astore 10 /* layoutData */
        start local 10 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        10: .line 540
            aload 10 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.horizontalSpan:I
            iconst_1
            if_icmpne 12
        11: .line 541
            aload 3 /* columnWidths */
            iload 8 /* i */
            aload 3 /* columnWidths */
            iload 8 /* i */
            iaload
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            invokestatic java.lang.Math.max:(II)I
            iastore
        end local 10 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        end local 9 // com.googlecode.lanterna.gui2.Component component
        12: .line 534
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 8 /* i */
            iload 2 /* actualNumberOfColumns */
            if_icmplt 6
        end local 8 // int i
        end local 4 // com.googlecode.lanterna.gui2.Component[] row
        14: .line 533
            iinc 5 1
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] int int[] top int int com.googlecode.lanterna.gui2.Component[][]
      StackMap stack:
        15: iload 5
            iload 6
            if_icmplt 3
        16: .line 547
            aload 1 /* table */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 45
      StackMap locals:
      StackMap stack:
        17: aload 7
            iload 5
            aaload
            astore 4 /* row */
        start local 4 // com.googlecode.lanterna.gui2.Component[] row
        18: .line 548
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        19: goto 43
        20: .line 549
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] int int[] com.googlecode.lanterna.gui2.Component[] int int com.googlecode.lanterna.gui2.Component[][] int
      StackMap stack:
            aload 4 /* row */
            iload 8 /* i */
            aaload
            astore 9 /* component */
        start local 9 // com.googlecode.lanterna.gui2.Component component
        21: .line 550
            aload 9 /* component */
            ifnonnull 24
        22: .line 551
            iinc 8 /* i */ 1
        23: .line 552
            goto 43
        24: .line 554
      StackMap locals: com.googlecode.lanterna.gui2.Component
      StackMap stack:
            aload 0 /* this */
            aload 9 /* component */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getLayoutData:(Lcom/googlecode/lanterna/gui2/Component;)Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
            astore 10 /* layoutData */
        start local 10 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        25: .line 555
            aload 10 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.horizontalSpan:I
            iload 2 /* actualNumberOfColumns */
            iload 8 /* i */
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 11 /* horizontalSpan */
        start local 11 // int horizontalSpan
        26: .line 556
            iload 11 /* horizontalSpan */
            iconst_1
            if_icmple 42
        27: .line 557
            iconst_0
            istore 12 /* accumWidth */
        start local 12 // int accumWidth
        28: .line 558
            iload 8 /* i */
            istore 13 /* j */
        start local 13 // int j
        29: goto 32
        30: .line 559
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] int int[] com.googlecode.lanterna.gui2.Component[] int int com.googlecode.lanterna.gui2.Component[][] int com.googlecode.lanterna.gui2.Component com.googlecode.lanterna.gui2.GridLayout$GridLayoutData int int int
      StackMap stack:
            iload 12 /* accumWidth */
            aload 3 /* columnWidths */
            iload 13 /* j */
            iaload
            iadd
            istore 12 /* accumWidth */
        31: .line 558
            iinc 13 /* j */ 1
      StackMap locals:
      StackMap stack:
        32: iload 13 /* j */
            iload 8 /* i */
            iload 11 /* horizontalSpan */
            iadd
            if_icmplt 30
        end local 13 // int j
        33: .line 562
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            istore 13 /* preferredWidth */
        start local 13 // int preferredWidth
        34: .line 563
            iload 13 /* preferredWidth */
            iload 12 /* accumWidth */
            if_icmple 42
        35: .line 564
            iconst_0
            istore 14 /* columnOffset */
        start local 14 // int columnOffset
        36: .line 566
      StackMap locals: int
      StackMap stack:
            aload 3 /* columnWidths */
            iload 8 /* i */
            iload 14 /* columnOffset */
            iinc 14 /* columnOffset */ 1
            iadd
            dup2
            iaload
            iconst_1
            iadd
            iastore
        37: .line 567
            iinc 12 /* accumWidth */ 1
        38: .line 568
            iload 14 /* columnOffset */
            iload 11 /* horizontalSpan */
            if_icmpne 40
        39: .line 569
            iconst_0
            istore 14 /* columnOffset */
        40: .line 572
      StackMap locals:
      StackMap stack:
            iload 13 /* preferredWidth */
            iload 12 /* accumWidth */
        41: .line 565
            if_icmpgt 36
        end local 14 // int columnOffset
        end local 13 // int preferredWidth
        end local 12 // int accumWidth
        42: .line 575
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            iload 11 /* horizontalSpan */
            iadd
            istore 8 /* i */
        end local 11 // int horizontalSpan
        end local 10 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        end local 9 // com.googlecode.lanterna.gui2.Component component
        43: .line 548
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            iload 2 /* actualNumberOfColumns */
            if_icmplt 20
        end local 8 // int i
        end local 4 // com.googlecode.lanterna.gui2.Component[] row
        44: .line 547
            iinc 5 1
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] int int[] top int int com.googlecode.lanterna.gui2.Component[][]
      StackMap stack:
        45: iload 5
            iload 6
            if_icmplt 17
        46: .line 578
            aload 3 /* columnWidths */
            areturn
        end local 3 // int[] columnWidths
        end local 2 // int actualNumberOfColumns
        end local 1 // com.googlecode.lanterna.gui2.Component[][] table
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   47     0                   this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0   47     1                  table  [[Lcom/googlecode/lanterna/gui2/Component;
            1   47     2  actualNumberOfColumns  I
            2   47     3           columnWidths  [I
            4   14     4                    row  [Lcom/googlecode/lanterna/gui2/Component;
            5   14     8                      i  I
            7   12     9              component  Lcom/googlecode/lanterna/gui2/Component;
           10   12    10             layoutData  Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
           18   44     4                    row  [Lcom/googlecode/lanterna/gui2/Component;
           19   44     8                      i  I
           21   43     9              component  Lcom/googlecode/lanterna/gui2/Component;
           25   43    10             layoutData  Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
           26   43    11         horizontalSpan  I
           28   42    12             accumWidth  I
           29   33    13                      j  I
           34   42    13         preferredWidth  I
           36   42    14           columnOffset  I
    MethodParameters:
       Name  Flags
      table  

  private int[] getPreferredRowHeights(com.googlecode.lanterna.gui2.Component[][]);
    descriptor: ([[Lcom/googlecode/lanterna/gui2/Component;)[I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=14, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // com.googlecode.lanterna.gui2.Component[][] table
         0: .line 582
            aload 1 /* table */
            arraylength
            istore 2 /* numberOfRows */
        start local 2 // int numberOfRows
         1: .line 583
            iload 2 /* numberOfRows */
            newarray 10
            astore 3 /* rowHeights */
        start local 3 // int[] rowHeights
         2: .line 586
            iconst_0
            istore 4 /* rowIndex */
        start local 4 // int rowIndex
         3: .line 587
            aload 1 /* table */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 16
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] int int[] int top int int com.googlecode.lanterna.gui2.Component[][]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* row */
        start local 5 // com.googlecode.lanterna.gui2.Component[] row
         5: .line 588
            aload 5 /* row */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 13
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] int int[] int com.googlecode.lanterna.gui2.Component[] int int com.googlecode.lanterna.gui2.Component[][] top int int com.googlecode.lanterna.gui2.Component[]
      StackMap stack:
         6: aload 12
            iload 10
            aaload
            astore 9 /* component */
        start local 9 // com.googlecode.lanterna.gui2.Component component
         7: .line 589
            aload 9 /* component */
            ifnonnull 9
         8: .line 590
            goto 12
         9: .line 592
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] int int[] int com.googlecode.lanterna.gui2.Component[] int int com.googlecode.lanterna.gui2.Component[][] com.googlecode.lanterna.gui2.Component int int com.googlecode.lanterna.gui2.Component[]
      StackMap stack:
            aload 0 /* this */
            aload 9 /* component */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getLayoutData:(Lcom/googlecode/lanterna/gui2/Component;)Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
            astore 13 /* layoutData */
        start local 13 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        10: .line 593
            aload 13 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.verticalSpan:I
            iconst_1
            if_icmpne 12
        11: .line 594
            aload 3 /* rowHeights */
            iload 4 /* rowIndex */
            aload 3 /* rowHeights */
            iload 4 /* rowIndex */
            iaload
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            invokestatic java.lang.Math.max:(II)I
            iastore
        end local 13 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        end local 9 // com.googlecode.lanterna.gui2.Component component
        12: .line 588
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] int int[] int com.googlecode.lanterna.gui2.Component[] int int com.googlecode.lanterna.gui2.Component[][] top int int com.googlecode.lanterna.gui2.Component[]
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        13: iload 10
            iload 11
            if_icmplt 6
        14: .line 597
            iinc 4 /* rowIndex */ 1
        end local 5 // com.googlecode.lanterna.gui2.Component[] row
        15: .line 587
            iinc 6 1
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] int int[] int top int int com.googlecode.lanterna.gui2.Component[][]
      StackMap stack:
        16: iload 6
            iload 7
            if_icmplt 4
        17: .line 601
            iconst_0
            istore 5 /* x */
        start local 5 // int x
        18: goto 48
        19: .line 602
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] int int[] int int
      StackMap stack:
            iconst_0
            istore 6 /* y */
        start local 6 // int y
        20: goto 46
        21: .line 603
      StackMap locals: int
      StackMap stack:
            iload 5 /* x */
            aload 1 /* table */
            iload 6 /* y */
            aaload
            arraylength
            if_icmplt 24
        22: .line 604
            iinc 6 /* y */ 1
        23: .line 605
            goto 46
        24: .line 607
      StackMap locals:
      StackMap stack:
            aload 1 /* table */
            iload 6 /* y */
            aaload
            iload 5 /* x */
            aaload
            astore 7 /* component */
        start local 7 // com.googlecode.lanterna.gui2.Component component
        25: .line 608
            aload 7 /* component */
            ifnonnull 28
        26: .line 609
            iinc 6 /* y */ 1
        27: .line 610
            goto 46
        28: .line 612
      StackMap locals: com.googlecode.lanterna.gui2.Component
      StackMap stack:
            aload 0 /* this */
            aload 7 /* component */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getLayoutData:(Lcom/googlecode/lanterna/gui2/Component;)Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
            astore 8 /* layoutData */
        start local 8 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        29: .line 613
            aload 8 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.verticalSpan:I
            iconst_1
            if_icmple 45
        30: .line 614
            iconst_0
            istore 9 /* accumulatedHeight */
        start local 9 // int accumulatedHeight
        31: .line 615
            iload 6 /* y */
            istore 10 /* i */
        start local 10 // int i
        32: goto 35
        33: .line 616
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout$GridLayoutData int int
      StackMap stack:
            iload 9 /* accumulatedHeight */
            aload 3 /* rowHeights */
            iload 10 /* i */
            iaload
            iadd
            istore 9 /* accumulatedHeight */
        34: .line 615
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 10 /* i */
            iload 6 /* y */
            aload 8 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.verticalSpan:I
            iadd
            if_icmplt 33
        end local 10 // int i
        36: .line 619
            aload 7 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            istore 10 /* preferredHeight */
        start local 10 // int preferredHeight
        37: .line 620
            iload 10 /* preferredHeight */
            iload 9 /* accumulatedHeight */
            if_icmple 45
        38: .line 621
            iconst_0
            istore 11 /* rowOffset */
        start local 11 // int rowOffset
        39: .line 623
      StackMap locals: int
      StackMap stack:
            aload 3 /* rowHeights */
            iload 6 /* y */
            iload 11 /* rowOffset */
            iinc 11 /* rowOffset */ 1
            iadd
            dup2
            iaload
            iconst_1
            iadd
            iastore
        40: .line 624
            iinc 9 /* accumulatedHeight */ 1
        41: .line 625
            iload 11 /* rowOffset */
            aload 8 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.verticalSpan:I
            if_icmpne 43
        42: .line 626
            iconst_0
            istore 11 /* rowOffset */
        43: .line 629
      StackMap locals:
      StackMap stack:
            iload 10 /* preferredHeight */
            iload 9 /* accumulatedHeight */
        44: .line 622
            if_icmpgt 39
        end local 11 // int rowOffset
        end local 10 // int preferredHeight
        end local 9 // int accumulatedHeight
        45: .line 632
      StackMap locals:
      StackMap stack:
            iload 6 /* y */
            aload 8 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.verticalSpan:I
            iadd
            istore 6 /* y */
        end local 8 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        end local 7 // com.googlecode.lanterna.gui2.Component component
        46: .line 602
      StackMap locals:
      StackMap stack:
            iload 6 /* y */
            iload 2 /* numberOfRows */
            if_icmplt 21
        end local 6 // int y
        47: .line 601
            iinc 5 /* x */ 1
      StackMap locals:
      StackMap stack:
        48: iload 5 /* x */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.numberOfColumns:I
            if_icmplt 19
        end local 5 // int x
        49: .line 635
            aload 3 /* rowHeights */
            areturn
        end local 4 // int rowIndex
        end local 3 // int[] rowHeights
        end local 2 // int numberOfRows
        end local 1 // com.googlecode.lanterna.gui2.Component[][] table
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   50     0               this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0   50     1              table  [[Lcom/googlecode/lanterna/gui2/Component;
            1   50     2       numberOfRows  I
            2   50     3         rowHeights  [I
            3   50     4           rowIndex  I
            5   15     5                row  [Lcom/googlecode/lanterna/gui2/Component;
            7   12     9          component  Lcom/googlecode/lanterna/gui2/Component;
           10   12    13         layoutData  Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
           18   49     5                  x  I
           20   47     6                  y  I
           25   46     7          component  Lcom/googlecode/lanterna/gui2/Component;
           29   46     8         layoutData  Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
           31   45     9  accumulatedHeight  I
           32   36    10                  i  I
           37   45    10    preferredHeight  I
           39   45    11          rowOffset  I
    MethodParameters:
       Name  Flags
      table  

  private java.util.Set<java.lang.Integer> getExpandableColumns(com.googlecode.lanterna.gui2.Component[][]);
    descriptor: ([[Lcom/googlecode/lanterna/gui2/Component;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // com.googlecode.lanterna.gui2.Component[][] table
         0: .line 639
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            astore 2 /* expandableColumns */
        start local 2 // java.util.Set expandableColumns
         1: .line 640
            aconst_null
            astore 3 /* previousComponent */
        start local 3 // com.googlecode.lanterna.gui2.Component previousComponent
         2: .line 641
            aload 1 /* table */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 15
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] java.util.Set com.googlecode.lanterna.gui2.Component top int int com.googlecode.lanterna.gui2.Component[][]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* row */
        start local 4 // com.googlecode.lanterna.gui2.Component[] row
         4: .line 642
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         5: goto 13
         6: .line 643
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] java.util.Set com.googlecode.lanterna.gui2.Component com.googlecode.lanterna.gui2.Component[] int int com.googlecode.lanterna.gui2.Component[][] int
      StackMap stack:
            aload 4 /* row */
            iload 8 /* i */
            aaload
            ifnull 12
            aload 4 /* row */
            iload 8 /* i */
            aaload
            aload 3 /* previousComponent */
            if_acmpne 8
         7: .line 644
            goto 12
         8: .line 646
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* row */
            iload 8 /* i */
            aaload
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getLayoutData:(Lcom/googlecode/lanterna/gui2/Component;)Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
            astore 9 /* layoutData */
        start local 9 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
         9: .line 647
            aload 9 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.grabExtraHorizontalSpace:Z
            ifeq 11
        10: .line 648
            aload 2 /* expandableColumns */
            iload 8 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        11: .line 650
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout$GridLayoutData
      StackMap stack:
            aload 4 /* row */
            iload 8 /* i */
            aaload
            astore 3 /* previousComponent */
        end local 9 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        12: .line 642
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 8 /* i */
            aload 4 /* row */
            arraylength
            if_icmplt 6
        end local 8 // int i
        end local 4 // com.googlecode.lanterna.gui2.Component[] row
        14: .line 641
            iinc 5 1
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] java.util.Set com.googlecode.lanterna.gui2.Component top int int com.googlecode.lanterna.gui2.Component[][]
      StackMap stack:
        15: iload 5
            iload 6
            if_icmplt 3
        16: .line 653
            aload 2 /* expandableColumns */
            areturn
        end local 3 // com.googlecode.lanterna.gui2.Component previousComponent
        end local 2 // java.util.Set expandableColumns
        end local 1 // com.googlecode.lanterna.gui2.Component[][] table
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   17     0               this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0   17     1              table  [[Lcom/googlecode/lanterna/gui2/Component;
            1   17     2  expandableColumns  Ljava/util/Set<Ljava/lang/Integer;>;
            2   17     3  previousComponent  Lcom/googlecode/lanterna/gui2/Component;
            4   14     4                row  [Lcom/googlecode/lanterna/gui2/Component;
            5   14     8                  i  I
            9   12     9         layoutData  Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
    Signature: ([[Lcom/googlecode/lanterna/gui2/Component;)Ljava/util/Set<Ljava/lang/Integer;>;
    MethodParameters:
       Name  Flags
      table  

  private java.util.Set<java.lang.Integer> getExpandableRows(com.googlecode.lanterna.gui2.Component[][]);
    descriptor: ([[Lcom/googlecode/lanterna/gui2/Component;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // com.googlecode.lanterna.gui2.Component[][] table
         0: .line 657
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            astore 2 /* expandableRows */
        start local 2 // java.util.Set expandableRows
         1: .line 658
            aconst_null
            astore 3 /* previousComponent */
        start local 3 // com.googlecode.lanterna.gui2.Component previousComponent
         2: .line 659
            aload 1 /* table */
            arraylength
            ifle 18
         3: .line 660
            iconst_0
            istore 4 /* columnIndex */
        start local 4 // int columnIndex
         4: goto 17
         5: .line 661
      StackMap locals: java.util.Set com.googlecode.lanterna.gui2.Component int
      StackMap stack:
            iconst_0
            istore 5 /* rowIndex */
        start local 5 // int rowIndex
         6: goto 15
         7: .line 662
      StackMap locals: int
      StackMap stack:
            aload 1 /* table */
            iload 5 /* rowIndex */
            aaload
            iload 4 /* columnIndex */
            aaload
            astore 6 /* cell */
        start local 6 // com.googlecode.lanterna.gui2.Component cell
         8: .line 663
            aload 6 /* cell */
            ifnull 14
            aload 6 /* cell */
            aload 3 /* previousComponent */
            if_acmpne 10
         9: .line 664
            goto 14
        10: .line 666
      StackMap locals: com.googlecode.lanterna.gui2.Component
      StackMap stack:
            aload 0 /* this */
            aload 6 /* cell */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getLayoutData:(Lcom/googlecode/lanterna/gui2/Component;)Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
            astore 7 /* layoutData */
        start local 7 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        11: .line 667
            aload 7 /* layoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.grabExtraVerticalSpace:Z
            ifeq 13
        12: .line 668
            aload 2 /* expandableRows */
            iload 5 /* rowIndex */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 670
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout$GridLayoutData
      StackMap stack:
            aload 6 /* cell */
            astore 3 /* previousComponent */
        end local 7 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData layoutData
        end local 6 // com.googlecode.lanterna.gui2.Component cell
        14: .line 661
      StackMap locals:
      StackMap stack:
            iinc 5 /* rowIndex */ 1
      StackMap locals:
      StackMap stack:
        15: iload 5 /* rowIndex */
            aload 1 /* table */
            arraylength
            if_icmplt 7
        end local 5 // int rowIndex
        16: .line 660
            iinc 4 /* columnIndex */ 1
      StackMap locals:
      StackMap stack:
        17: iload 4 /* columnIndex */
            aload 1 /* table */
            iconst_0
            aaload
            arraylength
            if_icmplt 5
        end local 4 // int columnIndex
        18: .line 674
      StackMap locals:
      StackMap stack:
            aload 2 /* expandableRows */
            areturn
        end local 3 // com.googlecode.lanterna.gui2.Component previousComponent
        end local 2 // java.util.Set expandableRows
        end local 1 // com.googlecode.lanterna.gui2.Component[][] table
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   19     0               this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0   19     1              table  [[Lcom/googlecode/lanterna/gui2/Component;
            1   19     2     expandableRows  Ljava/util/Set<Ljava/lang/Integer;>;
            2   19     3  previousComponent  Lcom/googlecode/lanterna/gui2/Component;
            4   18     4        columnIndex  I
            6   16     5           rowIndex  I
            8   14     6               cell  Lcom/googlecode/lanterna/gui2/Component;
           11   14     7         layoutData  Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
    Signature: ([[Lcom/googlecode/lanterna/gui2/Component;)Ljava/util/Set<Ljava/lang/Integer;>;
    MethodParameters:
       Name  Flags
      table  

  private int shrinkWidthToFitArea(com.googlecode.lanterna.TerminalSize, int[]);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;[I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // com.googlecode.lanterna.TerminalSize area
        start local 2 // int[] columnWidths
         0: .line 678
            iconst_0
            istore 3 /* totalWidth */
        start local 3 // int totalWidth
         1: .line 679
            aload 2 /* columnWidths */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 5
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize int[] int top int int int[]
      StackMap stack:
         2: aload 7
            iload 5
            iaload
            istore 4 /* width */
        start local 4 // int width
         3: .line 680
            iload 3 /* totalWidth */
            iload 4 /* width */
            iadd
            istore 3 /* totalWidth */
        end local 4 // int width
         4: .line 679
            iinc 5 1
      StackMap locals:
      StackMap stack:
         5: iload 5
            iload 6
            if_icmplt 2
         6: .line 682
            iload 3 /* totalWidth */
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            if_icmple 15
         7: .line 683
            iconst_0
            istore 4 /* columnOffset */
        start local 4 // int columnOffset
         8: .line 685
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize int[] int int
      StackMap stack:
            aload 2 /* columnWidths */
            iload 4 /* columnOffset */
            iaload
            ifle 11
         9: .line 686
            aload 2 /* columnWidths */
            iload 4 /* columnOffset */
            dup2
            iaload
            iconst_1
            isub
            iastore
        10: .line 687
            iinc 3 /* totalWidth */ -1
        11: .line 689
      StackMap locals:
      StackMap stack:
            iinc 4 /* columnOffset */ 1
            iload 4 /* columnOffset */
            aload 2 /* columnWidths */
            arraylength
            if_icmpne 13
        12: .line 690
            iconst_0
            istore 4 /* columnOffset */
        13: .line 693
      StackMap locals:
      StackMap stack:
            iload 3 /* totalWidth */
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
        14: .line 684
            if_icmpgt 8
        end local 4 // int columnOffset
        15: .line 695
      StackMap locals:
      StackMap stack:
            iload 3 /* totalWidth */
            ireturn
        end local 3 // int totalWidth
        end local 2 // int[] columnWidths
        end local 1 // com.googlecode.lanterna.TerminalSize area
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0   16     1          area  Lcom/googlecode/lanterna/TerminalSize;
            0   16     2  columnWidths  [I
            1   16     3    totalWidth  I
            3    4     4         width  I
            8   15     4  columnOffset  I
    MethodParameters:
              Name  Flags
      area          
      columnWidths  

  private int shrinkHeightToFitArea(com.googlecode.lanterna.TerminalSize, int[]);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;[I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // com.googlecode.lanterna.TerminalSize area
        start local 2 // int[] rowHeights
         0: .line 699
            iconst_0
            istore 3 /* totalHeight */
        start local 3 // int totalHeight
         1: .line 700
            aload 2 /* rowHeights */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 5
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize int[] int top int int int[]
      StackMap stack:
         2: aload 7
            iload 5
            iaload
            istore 4 /* height */
        start local 4 // int height
         3: .line 701
            iload 3 /* totalHeight */
            iload 4 /* height */
            iadd
            istore 3 /* totalHeight */
        end local 4 // int height
         4: .line 700
            iinc 5 1
      StackMap locals:
      StackMap stack:
         5: iload 5
            iload 6
            if_icmplt 2
         6: .line 703
            iload 3 /* totalHeight */
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            if_icmple 15
         7: .line 704
            iconst_0
            istore 4 /* rowOffset */
        start local 4 // int rowOffset
         8: .line 706
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize int[] int int
      StackMap stack:
            aload 2 /* rowHeights */
            iload 4 /* rowOffset */
            iaload
            ifle 11
         9: .line 707
            aload 2 /* rowHeights */
            iload 4 /* rowOffset */
            dup2
            iaload
            iconst_1
            isub
            iastore
        10: .line 708
            iinc 3 /* totalHeight */ -1
        11: .line 710
      StackMap locals:
      StackMap stack:
            iinc 4 /* rowOffset */ 1
            iload 4 /* rowOffset */
            aload 2 /* rowHeights */
            arraylength
            if_icmpne 13
        12: .line 711
            iconst_0
            istore 4 /* rowOffset */
        13: .line 714
      StackMap locals:
      StackMap stack:
            iload 3 /* totalHeight */
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
        14: .line 705
            if_icmpgt 8
        end local 4 // int rowOffset
        15: .line 716
      StackMap locals:
      StackMap stack:
            iload 3 /* totalHeight */
            ireturn
        end local 3 // int totalHeight
        end local 2 // int[] rowHeights
        end local 1 // com.googlecode.lanterna.TerminalSize area
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0   16     1         area  Lcom/googlecode/lanterna/TerminalSize;
            0   16     2   rowHeights  [I
            1   16     3  totalHeight  I
            3    4     4       height  I
            8   15     4    rowOffset  I
    MethodParameters:
            Name  Flags
      area        
      rowHeights  

  private int grabExtraHorizontalSpace(com.googlecode.lanterna.TerminalSize, int[], java.util.Set<java.lang.Integer>, );
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;[ILjava/util/Set;I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // com.googlecode.lanterna.TerminalSize area
        start local 2 // int[] columnWidths
        start local 3 // java.util.Set expandableColumns
        start local 4 // int totalWidth
         0: .line 720
            aload 3 /* expandableColumns */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize int[] java.util.Set int top java.util.Iterator
      StackMap stack:
         1: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 5 /* columnIndex */
        start local 5 // int columnIndex
         2: .line 721
            aload 2 /* columnWidths */
            iload 5 /* columnIndex */
            dup2
            iaload
            iconst_1
            iadd
            iastore
         3: .line 722
            iinc 4 /* totalWidth */ 1
         4: .line 723
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iload 4 /* totalWidth */
            if_icmpne 6
         5: .line 724
            goto 7
        end local 5 // int columnIndex
         6: .line 720
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         7: .line 727
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize int[] java.util.Set int
      StackMap stack:
            iload 4 /* totalWidth */
            ireturn
        end local 4 // int totalWidth
        end local 3 // java.util.Set expandableColumns
        end local 2 // int[] columnWidths
        end local 1 // com.googlecode.lanterna.TerminalSize area
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0               this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0    8     1               area  Lcom/googlecode/lanterna/TerminalSize;
            0    8     2       columnWidths  [I
            0    8     3  expandableColumns  Ljava/util/Set<Ljava/lang/Integer;>;
            0    8     4         totalWidth  I
            2    6     5        columnIndex  I
    Signature: (Lcom/googlecode/lanterna/TerminalSize;[ILjava/util/Set<Ljava/lang/Integer;>;I)I
    MethodParameters:
                   Name  Flags
      area               
      columnWidths       
      expandableColumns  
      totalWidth         

  private int grabExtraVerticalSpace(com.googlecode.lanterna.TerminalSize, int[], java.util.Set<java.lang.Integer>, );
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;[ILjava/util/Set;I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // com.googlecode.lanterna.TerminalSize area
        start local 2 // int[] rowHeights
        start local 3 // java.util.Set expandableRows
        start local 4 // int totalHeight
         0: .line 731
            aload 3 /* expandableRows */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize int[] java.util.Set int top java.util.Iterator
      StackMap stack:
         1: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 5 /* rowIndex */
        start local 5 // int rowIndex
         2: .line 732
            aload 2 /* rowHeights */
            iload 5 /* rowIndex */
            dup2
            iaload
            iconst_1
            iadd
            iastore
         3: .line 733
            iinc 4 /* totalHeight */ 1
         4: .line 734
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iload 4 /* totalHeight */
            if_icmpne 6
         5: .line 735
            goto 7
        end local 5 // int rowIndex
         6: .line 731
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         7: .line 738
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.TerminalSize int[] java.util.Set int
      StackMap stack:
            iload 4 /* totalHeight */
            ireturn
        end local 4 // int totalHeight
        end local 3 // java.util.Set expandableRows
        end local 2 // int[] rowHeights
        end local 1 // com.googlecode.lanterna.TerminalSize area
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0    8     1            area  Lcom/googlecode/lanterna/TerminalSize;
            0    8     2      rowHeights  [I
            0    8     3  expandableRows  Ljava/util/Set<Ljava/lang/Integer;>;
            0    8     4     totalHeight  I
            2    6     5        rowIndex  I
    Signature: (Lcom/googlecode/lanterna/TerminalSize;[ILjava/util/Set<Ljava/lang/Integer;>;I)I
    MethodParameters:
                Name  Flags
      area            
      rowHeights      
      expandableRows  
      totalHeight     

  private com.googlecode.lanterna.gui2.Component[][] buildTable(java.util.List<com.googlecode.lanterna.gui2.Component>);
    descriptor: (Ljava/util/List;)[[Lcom/googlecode/lanterna/gui2/Component;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=14, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // java.util.List components
         0: .line 742
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* rows */
        start local 2 // java.util.List rows
         1: .line 743
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* hspans */
        start local 3 // java.util.List hspans
         2: .line 744
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* vspans */
        start local 4 // java.util.List vspans
         3: .line 746
            iconst_0
            istore 5 /* rowCount */
        start local 5 // int rowCount
         4: .line 747
            iconst_1
            istore 6 /* rowsExtent */
        start local 6 // int rowsExtent
         5: .line 748
            new java.util.LinkedList
            dup
            aload 1 /* components */
            invokespecial java.util.LinkedList.<init>:(Ljava/util/Collection;)V
            astore 7 /* toBePlaced */
        start local 7 // java.util.Queue toBePlaced
         6: .line 749
            goto 39
         7: .line 751
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout java.util.List java.util.List java.util.List java.util.List int int java.util.Queue
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.numberOfColumns:I
            anewarray com.googlecode.lanterna.gui2.Component
            astore 8 /* row */
        start local 8 // com.googlecode.lanterna.gui2.Component[] row
         8: .line 752
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.numberOfColumns:I
            newarray 10
            astore 9 /* hspan */
        start local 9 // int[] hspan
         9: .line 753
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.numberOfColumns:I
            newarray 10
            astore 10 /* vspan */
        start local 10 // int[] vspan
        10: .line 755
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        11: goto 34
        12: .line 756
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout java.util.List java.util.List java.util.List java.util.List int int java.util.Queue com.googlecode.lanterna.gui2.Component[] int[] int[] int
      StackMap stack:
            iload 11 /* i */
            ifle 17
            aload 9 /* hspan */
            iload 11 /* i */
            iconst_1
            isub
            iaload
            iconst_1
            if_icmple 17
        13: .line 757
            aload 8 /* row */
            iload 11 /* i */
            aload 8 /* row */
            iload 11 /* i */
            iconst_1
            isub
            aaload
            aastore
        14: .line 758
            aload 9 /* hspan */
            iload 11 /* i */
            aload 9 /* hspan */
            iload 11 /* i */
            iconst_1
            isub
            iaload
            iconst_1
            isub
            iastore
        15: .line 759
            aload 10 /* vspan */
            iload 11 /* i */
            aload 10 /* vspan */
            iload 11 /* i */
            iconst_1
            isub
            iaload
            iastore
        16: .line 760
            goto 33
        17: .line 761
      StackMap locals:
      StackMap stack:
            iload 5 /* rowCount */
            ifle 22
            aload 4 /* vspans */
            iload 5 /* rowCount */
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast int[]
            iload 11 /* i */
            iaload
            iconst_1
            if_icmple 22
        18: .line 762
            aload 8 /* row */
            iload 11 /* i */
            aload 2 /* rows */
            iload 5 /* rowCount */
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component[]
            iload 11 /* i */
            aaload
            aastore
        19: .line 763
            aload 9 /* hspan */
            iload 11 /* i */
            aload 3 /* hspans */
            iload 5 /* rowCount */
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast int[]
            iload 11 /* i */
            iaload
            iastore
        20: .line 764
            aload 10 /* vspan */
            iload 11 /* i */
            aload 4 /* vspans */
            iload 5 /* rowCount */
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast int[]
            iload 11 /* i */
            iaload
            iconst_1
            isub
            iastore
        21: .line 765
            goto 33
        22: .line 766
      StackMap locals:
      StackMap stack:
            aload 7 /* toBePlaced */
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 30
        23: .line 767
            aload 7 /* toBePlaced */
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 12 /* component */
        start local 12 // com.googlecode.lanterna.gui2.Component component
        24: .line 768
            aload 0 /* this */
            aload 12 /* component */
            invokevirtual com.googlecode.lanterna.gui2.GridLayout.getLayoutData:(Lcom/googlecode/lanterna/gui2/Component;)Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
            astore 13 /* gridLayoutData */
        start local 13 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData gridLayoutData
        25: .line 770
            aload 8 /* row */
            iload 11 /* i */
            aload 12 /* component */
            aastore
        26: .line 771
            aload 9 /* hspan */
            iload 11 /* i */
            aload 13 /* gridLayoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.horizontalSpan:I
            iastore
        27: .line 772
            aload 10 /* vspan */
            iload 11 /* i */
            aload 13 /* gridLayoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.verticalSpan:I
            iastore
        28: .line 773
            iload 6 /* rowsExtent */
            iload 5 /* rowCount */
            aload 13 /* gridLayoutData */
            getfield com.googlecode.lanterna.gui2.GridLayout$GridLayoutData.verticalSpan:I
            iadd
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* rowsExtent */
        end local 13 // com.googlecode.lanterna.gui2.GridLayout$GridLayoutData gridLayoutData
        end local 12 // com.googlecode.lanterna.gui2.Component component
        29: .line 774
            goto 33
        30: .line 776
      StackMap locals:
      StackMap stack:
            aload 8 /* row */
            iload 11 /* i */
            aconst_null
            aastore
        31: .line 777
            aload 9 /* hspan */
            iload 11 /* i */
            iconst_1
            iastore
        32: .line 778
            aload 10 /* vspan */
            iload 11 /* i */
            iconst_1
            iastore
        33: .line 755
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 11 /* i */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.GridLayout.numberOfColumns:I
            if_icmplt 12
        end local 11 // int i
        35: .line 782
            aload 2 /* rows */
            aload 8 /* row */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        36: .line 783
            aload 3 /* hspans */
            aload 9 /* hspan */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        37: .line 784
            aload 4 /* vspans */
            aload 10 /* vspan */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        38: .line 785
            iinc 5 /* rowCount */ 1
        end local 10 // int[] vspan
        end local 9 // int[] hspan
        end local 8 // com.googlecode.lanterna.gui2.Component[] row
        39: .line 749
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout java.util.List java.util.List java.util.List java.util.List int int java.util.Queue
      StackMap stack:
            aload 7 /* toBePlaced */
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 7
            iload 5 /* rowCount */
            iload 6 /* rowsExtent */
            if_icmplt 7
        40: .line 787
            aload 2 /* rows */
            aload 2 /* rows */
            invokeinterface java.util.List.size:()I
            anewarray com.googlecode.lanterna.gui2.Component[]
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component[][]
            areturn
        end local 7 // java.util.Queue toBePlaced
        end local 6 // int rowsExtent
        end local 5 // int rowCount
        end local 4 // java.util.List vspans
        end local 3 // java.util.List hspans
        end local 2 // java.util.List rows
        end local 1 // java.util.List components
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   41     0            this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0   41     1      components  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
            1   41     2            rows  Ljava/util/List<[Lcom/googlecode/lanterna/gui2/Component;>;
            2   41     3          hspans  Ljava/util/List<[I>;
            3   41     4          vspans  Ljava/util/List<[I>;
            4   41     5        rowCount  I
            5   41     6      rowsExtent  I
            6   41     7      toBePlaced  Ljava/util/Queue<Lcom/googlecode/lanterna/gui2/Component;>;
            8   39     8             row  [Lcom/googlecode/lanterna/gui2/Component;
            9   39     9           hspan  [I
           10   39    10           vspan  [I
           11   35    11               i  I
           24   29    12       component  Lcom/googlecode/lanterna/gui2/Component;
           25   29    13  gridLayoutData  Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
    Signature: (Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;)[[Lcom/googlecode/lanterna/gui2/Component;
    MethodParameters:
            Name  Flags
      components  

  private com.googlecode.lanterna.gui2.Component[][] eliminateUnusedRowsAndColumns(com.googlecode.lanterna.gui2.Component[][]);
    descriptor: ([[Lcom/googlecode/lanterna/gui2/Component;)[[Lcom/googlecode/lanterna/gui2/Component;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=15, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // com.googlecode.lanterna.gui2.Component[][] table
         0: .line 791
            aload 1 /* table */
            arraylength
            ifne 2
         1: .line 792
            aload 1 /* table */
            areturn
         2: .line 796
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* rowsToRemove */
        start local 2 // java.util.List rowsToRemove
         3: .line 797
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* columnsToRemove */
        start local 3 // java.util.List columnsToRemove
         4: .line 799
            aload 1 /* table */
            arraylength
            istore 4 /* tableRows */
        start local 4 // int tableRows
         5: .line 800
            aload 1 /* table */
            iconst_0
            aaload
            arraylength
            istore 5 /* tableColumns */
        start local 5 // int tableColumns
         6: .line 804
            iload 5 /* tableColumns */
            iconst_1
            isub
            istore 6 /* column */
        start local 6 // int column
         7: goto 16
         8: .line 805
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] java.util.List java.util.List int int int
      StackMap stack:
            aload 1 /* table */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 13
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] java.util.List java.util.List int int int top int int com.googlecode.lanterna.gui2.Component[][]
      StackMap stack:
         9: aload 10
            iload 8
            aaload
            astore 7 /* row */
        start local 7 // com.googlecode.lanterna.gui2.Component[] row
        10: .line 806
            aload 7 /* row */
            iload 6 /* column */
            aaload
            ifnull 12
        11: .line 807
            goto 15
        end local 7 // com.googlecode.lanterna.gui2.Component[] row
        12: .line 805
      StackMap locals:
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        13: iload 8
            iload 9
            if_icmplt 9
        14: .line 810
            aload 3 /* columnsToRemove */
            iload 6 /* column */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 804
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] java.util.List java.util.List int int int
      StackMap stack:
            iinc 6 /* column */ -1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* column */
            ifgt 8
        end local 6 // int column
        17: .line 815
            iload 4 /* tableRows */
            iconst_1
            isub
            istore 6 /* row */
        start local 6 // int row
        18: goto 27
        19: .line 816
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* column */
        start local 7 // int column
        20: goto 24
        21: .line 817
      StackMap locals: int
      StackMap stack:
            aload 1 /* table */
            iload 6 /* row */
            aaload
            iload 7 /* column */
            aaload
            ifnull 23
        22: .line 818
            goto 26
        23: .line 816
      StackMap locals:
      StackMap stack:
            iinc 7 /* column */ 1
      StackMap locals:
      StackMap stack:
        24: iload 7 /* column */
            iload 5 /* tableColumns */
            if_icmplt 21
        end local 7 // int column
        25: .line 821
            aload 2 /* rowsToRemove */
            iload 6 /* row */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        26: .line 815
      StackMap locals:
      StackMap stack:
            iinc 6 /* row */ -1
      StackMap locals:
      StackMap stack:
        27: iload 6 /* row */
            ifgt 19
        end local 6 // int row
        28: .line 825
            aload 2 /* rowsToRemove */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 30
            aload 3 /* columnsToRemove */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 30
        29: .line 826
            aload 1 /* table */
            areturn
        30: .line 830
      StackMap locals:
      StackMap stack:
            iload 4 /* tableRows */
            aload 2 /* rowsToRemove */
            invokeinterface java.util.List.size:()I
            isub
            anewarray com.googlecode.lanterna.gui2.Component[]
            astore 6 /* newTable */
        start local 6 // com.googlecode.lanterna.gui2.Component[][] newTable
        31: .line 831
            iconst_0
            istore 7 /* insertedRowCounter */
        start local 7 // int insertedRowCounter
        32: .line 832
            aload 1 /* table */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 45
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] java.util.List java.util.List int int com.googlecode.lanterna.gui2.Component[][] int top int int com.googlecode.lanterna.gui2.Component[][]
      StackMap stack:
        33: aload 11
            iload 9
            aaload
            astore 8 /* row */
        start local 8 // com.googlecode.lanterna.gui2.Component[] row
        34: .line 833
            iload 5 /* tableColumns */
            aload 3 /* columnsToRemove */
            invokeinterface java.util.List.size:()I
            isub
            anewarray com.googlecode.lanterna.gui2.Component
            astore 12 /* newColumn */
        start local 12 // com.googlecode.lanterna.gui2.Component[] newColumn
        35: .line 834
            iconst_0
            istore 13 /* insertedColumnCounter */
        start local 13 // int insertedColumnCounter
        36: .line 835
            iconst_0
            istore 14 /* column */
        start local 14 // int column
        37: goto 42
        38: .line 836
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] java.util.List java.util.List int int com.googlecode.lanterna.gui2.Component[][] int com.googlecode.lanterna.gui2.Component[] int int com.googlecode.lanterna.gui2.Component[][] com.googlecode.lanterna.gui2.Component[] int int
      StackMap stack:
            aload 3 /* columnsToRemove */
            iload 14 /* column */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 40
        39: .line 837
            goto 41
        40: .line 839
      StackMap locals:
      StackMap stack:
            aload 12 /* newColumn */
            iload 13 /* insertedColumnCounter */
            iinc 13 /* insertedColumnCounter */ 1
            aload 8 /* row */
            iload 14 /* column */
            aaload
            aastore
        41: .line 835
      StackMap locals:
      StackMap stack:
            iinc 14 /* column */ 1
      StackMap locals:
      StackMap stack:
        42: iload 14 /* column */
            iload 5 /* tableColumns */
            if_icmplt 38
        end local 14 // int column
        43: .line 841
            aload 6 /* newTable */
            iload 7 /* insertedRowCounter */
            iinc 7 /* insertedRowCounter */ 1
            aload 12 /* newColumn */
            aastore
        end local 13 // int insertedColumnCounter
        end local 12 // com.googlecode.lanterna.gui2.Component[] newColumn
        end local 8 // com.googlecode.lanterna.gui2.Component[] row
        44: .line 832
            iinc 9 1
      StackMap locals: com.googlecode.lanterna.gui2.GridLayout com.googlecode.lanterna.gui2.Component[][] java.util.List java.util.List int int com.googlecode.lanterna.gui2.Component[][] int top int int com.googlecode.lanterna.gui2.Component[][]
      StackMap stack:
        45: iload 9
            iload 10
            if_icmplt 33
        46: .line 843
            aload 6 /* newTable */
            areturn
        end local 7 // int insertedRowCounter
        end local 6 // com.googlecode.lanterna.gui2.Component[][] newTable
        end local 5 // int tableColumns
        end local 4 // int tableRows
        end local 3 // java.util.List columnsToRemove
        end local 2 // java.util.List rowsToRemove
        end local 1 // com.googlecode.lanterna.gui2.Component[][] table
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   47     0                   this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0   47     1                  table  [[Lcom/googlecode/lanterna/gui2/Component;
            3   47     2           rowsToRemove  Ljava/util/List<Ljava/lang/Integer;>;
            4   47     3        columnsToRemove  Ljava/util/List<Ljava/lang/Integer;>;
            5   47     4              tableRows  I
            6   47     5           tableColumns  I
            7   17     6                 column  I
           10   12     7                    row  [Lcom/googlecode/lanterna/gui2/Component;
           18   28     6                    row  I
           20   25     7                 column  I
           31   47     6               newTable  [[Lcom/googlecode/lanterna/gui2/Component;
           32   47     7     insertedRowCounter  I
           34   44     8                    row  [Lcom/googlecode/lanterna/gui2/Component;
           35   44    12              newColumn  [Lcom/googlecode/lanterna/gui2/Component;
           36   44    13  insertedColumnCounter  I
           37   43    14                 column  I
    MethodParameters:
       Name  Flags
      table  

  private com.googlecode.lanterna.gui2.GridLayout$GridLayoutData getLayoutData(com.googlecode.lanterna.gui2.Component);
    descriptor: (Lcom/googlecode/lanterna/gui2/Component;)Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.GridLayout this
        start local 1 // com.googlecode.lanterna.gui2.Component component
         0: .line 847
            aload 1 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getLayoutData:()Lcom/googlecode/lanterna/gui2/LayoutData;
            astore 2 /* layoutData */
        start local 2 // com.googlecode.lanterna.gui2.LayoutData layoutData
         1: .line 848
            aload 2 /* layoutData */
            instanceof com.googlecode.lanterna.gui2.GridLayout$GridLayoutData
            ifeq 3
         2: .line 849
            aload 2 /* layoutData */
            checkcast com.googlecode.lanterna.gui2.GridLayout$GridLayoutData
            areturn
         3: .line 852
      StackMap locals: com.googlecode.lanterna.gui2.LayoutData
      StackMap stack:
            getstatic com.googlecode.lanterna.gui2.GridLayout.DEFAULT:Lcom/googlecode/lanterna/gui2/GridLayout$GridLayoutData;
            areturn
        end local 2 // com.googlecode.lanterna.gui2.LayoutData layoutData
        end local 1 // com.googlecode.lanterna.gui2.Component component
        end local 0 // com.googlecode.lanterna.gui2.GridLayout this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/googlecode/lanterna/gui2/GridLayout;
            0    4     1   component  Lcom/googlecode/lanterna/gui2/Component;
            1    4     2  layoutData  Lcom/googlecode/lanterna/gui2/LayoutData;
    MethodParameters:
           Name  Flags
      component  

  static int[] $SWITCH_TABLE$com$googlecode$lanterna$gui2$GridLayout$Alignment();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 37
            getstatic com.googlecode.lanterna.gui2.GridLayout.$SWITCH_TABLE$com$googlecode$lanterna$gui2$GridLayout$Alignment:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.googlecode.lanterna.gui2.GridLayout$Alignment.values:()[Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.googlecode.lanterna.gui2.GridLayout$Alignment.BEGINNING:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
            invokevirtual com.googlecode.lanterna.gui2.GridLayout$Alignment.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.googlecode.lanterna.gui2.GridLayout$Alignment.CENTER:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
            invokevirtual com.googlecode.lanterna.gui2.GridLayout$Alignment.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.googlecode.lanterna.gui2.GridLayout$Alignment.END:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
            invokevirtual com.googlecode.lanterna.gui2.GridLayout$Alignment.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.googlecode.lanterna.gui2.GridLayout$Alignment.FILL:Lcom/googlecode/lanterna/gui2/GridLayout$Alignment;
            invokevirtual com.googlecode.lanterna.gui2.GridLayout$Alignment.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic com.googlecode.lanterna.gui2.GridLayout.$SWITCH_TABLE$com$googlecode$lanterna$gui2$GridLayout$Alignment:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
}
SourceFile: "GridLayout.java"
NestMembers:
  com.googlecode.lanterna.gui2.GridLayout$Alignment  com.googlecode.lanterna.gui2.GridLayout$GridLayoutData
InnerClasses:
  public final Alignment = com.googlecode.lanterna.gui2.GridLayout$Alignment of com.googlecode.lanterna.gui2.GridLayout
  GridLayoutData = com.googlecode.lanterna.gui2.GridLayout$GridLayoutData of com.googlecode.lanterna.gui2.GridLayout