public class com.googlecode.lanterna.graphics.BasicTextImage implements com.googlecode.lanterna.graphics.TextImage
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.googlecode.lanterna.graphics.BasicTextImage
  super_class: java.lang.Object
{
  private final com.googlecode.lanterna.TerminalSize size;
    descriptor: Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.googlecode.lanterna.TextCharacter[][] buffer;
    descriptor: [[Lcom/googlecode/lanterna/TextCharacter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // int columns
        start local 2 // int rows
         0: .line 45
            aload 0 /* this */
            new com.googlecode.lanterna.TerminalSize
            dup
            iload 1 /* columns */
            iload 2 /* rows */
            invokespecial com.googlecode.lanterna.TerminalSize.<init>:(II)V
            invokespecial com.googlecode.lanterna.graphics.BasicTextImage.<init>:(Lcom/googlecode/lanterna/TerminalSize;)V
         1: .line 46
            return
        end local 2 // int rows
        end local 1 // int columns
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0    2     1  columns  I
            0    2     2     rows  I
    MethodParameters:
         Name  Flags
      columns  
      rows     

  public void <init>(com.googlecode.lanterna.TerminalSize);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // com.googlecode.lanterna.TerminalSize size
         0: .line 54
            aload 0 /* this */
            aload 1 /* size */
            new com.googlecode.lanterna.TextCharacter
            dup
            bipush 32
            getstatic com.googlecode.lanterna.TextColor$ANSI.DEFAULT:Lcom/googlecode/lanterna/TextColor$ANSI;
            getstatic com.googlecode.lanterna.TextColor$ANSI.DEFAULT:Lcom/googlecode/lanterna/TextColor$ANSI;
            iconst_0
            anewarray com.googlecode.lanterna.SGR
            invokespecial com.googlecode.lanterna.TextCharacter.<init>:(CLcom/googlecode/lanterna/TextColor;Lcom/googlecode/lanterna/TextColor;[Lcom/googlecode/lanterna/SGR;)V
            invokespecial com.googlecode.lanterna.graphics.BasicTextImage.<init>:(Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/TextCharacter;)V
         1: .line 55
            return
        end local 1 // com.googlecode.lanterna.TerminalSize size
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0    2     1  size  Lcom/googlecode/lanterna/TerminalSize;
    MethodParameters:
      Name  Flags
      size  

  public void <init>(com.googlecode.lanterna.TerminalSize, com.googlecode.lanterna.TextCharacter);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/TextCharacter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // com.googlecode.lanterna.TerminalSize size
        start local 2 // com.googlecode.lanterna.TextCharacter initialContent
         0: .line 63
            aload 0 /* this */
            aload 1 /* size */
            iconst_0
            anewarray com.googlecode.lanterna.TextCharacter[]
            aload 2 /* initialContent */
            invokespecial com.googlecode.lanterna.graphics.BasicTextImage.<init>:(Lcom/googlecode/lanterna/TerminalSize;[[Lcom/googlecode/lanterna/TextCharacter;Lcom/googlecode/lanterna/TextCharacter;)V
         1: .line 64
            return
        end local 2 // com.googlecode.lanterna.TextCharacter initialContent
        end local 1 // com.googlecode.lanterna.TerminalSize size
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0    2     1            size  Lcom/googlecode/lanterna/TerminalSize;
            0    2     2  initialContent  Lcom/googlecode/lanterna/TextCharacter;
    MethodParameters:
                Name  Flags
      size            
      initialContent  

  private void <init>(com.googlecode.lanterna.TerminalSize, com.googlecode.lanterna.TextCharacter[][], com.googlecode.lanterna.TextCharacter);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;[[Lcom/googlecode/lanterna/TextCharacter;Lcom/googlecode/lanterna/TextCharacter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // com.googlecode.lanterna.TerminalSize size
        start local 2 // com.googlecode.lanterna.TextCharacter[][] toCopy
        start local 3 // com.googlecode.lanterna.TextCharacter initialContent
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 74
            aload 1 /* size */
            ifnull 2
            aload 2 /* toCopy */
            ifnull 2
            aload 3 /* initialContent */
            ifnonnull 8
         2: .line 75
      StackMap locals: com.googlecode.lanterna.graphics.BasicTextImage com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TextCharacter[][] com.googlecode.lanterna.TextCharacter
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot create BasicTextImage with null "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 76
            aload 1 /* size */
            ifnonnull 4
            ldc "size"
            goto 6
      StackMap locals: com.googlecode.lanterna.graphics.BasicTextImage com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TextCharacter[][] com.googlecode.lanterna.TextCharacter
      StackMap stack: new 2 new 2 java.lang.StringBuilder
         4: aload 2 /* toCopy */
            ifnonnull 5
            ldc "toCopy"
            goto 6
      StackMap locals: com.googlecode.lanterna.graphics.BasicTextImage com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TextCharacter[][] com.googlecode.lanterna.TextCharacter
      StackMap stack: new 2 new 2 java.lang.StringBuilder
         5: ldc "filler"
      StackMap locals: com.googlecode.lanterna.graphics.BasicTextImage com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TextCharacter[][] com.googlecode.lanterna.TextCharacter
      StackMap stack: new 2 new 2 java.lang.StringBuilder java.lang.String
         6: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 75
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 78
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* size */
            putfield com.googlecode.lanterna.graphics.BasicTextImage.size:Lcom/googlecode/lanterna/TerminalSize;
         9: .line 80
            aload 1 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            istore 4 /* rows */
        start local 4 // int rows
        10: .line 81
            aload 1 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            istore 5 /* columns */
        start local 5 // int columns
        11: .line 82
            aload 0 /* this */
            iload 4 /* rows */
            anewarray com.googlecode.lanterna.TextCharacter[]
            putfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
        12: .line 83
            iconst_0
            istore 6 /* y */
        start local 6 // int y
        13: goto 24
        14: .line 84
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 6 /* y */
            iload 5 /* columns */
            anewarray com.googlecode.lanterna.TextCharacter
            aastore
        15: .line 85
            iconst_0
            istore 7 /* x */
        start local 7 // int x
        16: goto 22
        17: .line 86
      StackMap locals: int
      StackMap stack:
            iload 6 /* y */
            aload 2 /* toCopy */
            arraylength
            if_icmpge 20
            iload 7 /* x */
            aload 2 /* toCopy */
            iload 6 /* y */
            aaload
            arraylength
            if_icmpge 20
        18: .line 87
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 6 /* y */
            aaload
            iload 7 /* x */
            aload 2 /* toCopy */
            iload 6 /* y */
            aaload
            iload 7 /* x */
            aaload
            aastore
        19: .line 88
            goto 21
        20: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 6 /* y */
            aaload
            iload 7 /* x */
            aload 3 /* initialContent */
            aastore
        21: .line 85
      StackMap locals:
      StackMap stack:
            iinc 7 /* x */ 1
      StackMap locals:
      StackMap stack:
        22: iload 7 /* x */
            iload 5 /* columns */
            if_icmplt 17
        end local 7 // int x
        23: .line 83
            iinc 6 /* y */ 1
      StackMap locals:
      StackMap stack:
        24: iload 6 /* y */
            iload 4 /* rows */
            if_icmplt 14
        end local 6 // int y
        25: .line 94
            return
        end local 5 // int columns
        end local 4 // int rows
        end local 3 // com.googlecode.lanterna.TextCharacter initialContent
        end local 2 // com.googlecode.lanterna.TextCharacter[][] toCopy
        end local 1 // com.googlecode.lanterna.TerminalSize size
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   26     0            this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0   26     1            size  Lcom/googlecode/lanterna/TerminalSize;
            0   26     2          toCopy  [[Lcom/googlecode/lanterna/TextCharacter;
            0   26     3  initialContent  Lcom/googlecode/lanterna/TextCharacter;
           10   26     4            rows  I
           11   26     5         columns  I
           13   25     6               y  I
           16   23     7               x  I
    MethodParameters:
                Name  Flags
      size            
      toCopy          
      initialContent  

  public com.googlecode.lanterna.TerminalSize getSize();
    descriptor: ()Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
         0: .line 98
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.size:Lcom/googlecode/lanterna/TerminalSize;
            areturn
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/graphics/BasicTextImage;

  public void setAll(com.googlecode.lanterna.TextCharacter);
    descriptor: (Lcom/googlecode/lanterna/TextCharacter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // com.googlecode.lanterna.TextCharacter character
         0: .line 103
            aload 1 /* character */
            ifnonnull 2
         1: .line 104
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot call BasicTextImage.setAll(..) with null character"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: com.googlecode.lanterna.graphics.BasicTextImage com.googlecode.lanterna.TextCharacter top int int com.googlecode.lanterna.TextCharacter[][]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* line */
        start local 2 // com.googlecode.lanterna.TextCharacter[] line
         4: .line 107
            aload 2 /* line */
            aload 1 /* character */
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
        end local 2 // com.googlecode.lanterna.TextCharacter[] line
         5: .line 106
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 3
         7: .line 109
            return
        end local 1 // com.googlecode.lanterna.TextCharacter character
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0    8     1  character  Lcom/googlecode/lanterna/TextCharacter;
            4    5     2       line  [Lcom/googlecode/lanterna/TextCharacter;
    MethodParameters:
           Name  Flags
      character  

  public com.googlecode.lanterna.graphics.BasicTextImage resize(com.googlecode.lanterna.TerminalSize, com.googlecode.lanterna.TextCharacter);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/TextCharacter;)Lcom/googlecode/lanterna/graphics/BasicTextImage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // com.googlecode.lanterna.TerminalSize newSize
        start local 2 // com.googlecode.lanterna.TextCharacter filler
         0: .line 113
            aload 1 /* newSize */
            ifnull 1
            aload 2 /* filler */
            ifnonnull 6
         1: .line 114
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot resize BasicTextImage with null "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 115
            aload 1 /* newSize */
            ifnonnull 3
            ldc "newSize"
            goto 4
      StackMap locals: com.googlecode.lanterna.graphics.BasicTextImage com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TextCharacter
      StackMap stack: new 1 new 1 java.lang.StringBuilder
         3: ldc "filler"
      StackMap locals: com.googlecode.lanterna.graphics.BasicTextImage com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TextCharacter
      StackMap stack: new 1 new 1 java.lang.StringBuilder java.lang.String
         4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 114
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 117
      StackMap locals:
      StackMap stack:
            aload 1 /* newSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            arraylength
            if_icmpne 9
         7: .line 118
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            arraylength
            ifeq 8
            aload 1 /* newSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iconst_0
            aaload
            arraylength
            if_icmpne 9
         8: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
         9: .line 121
      StackMap locals:
      StackMap stack:
            new com.googlecode.lanterna.graphics.BasicTextImage
            dup
            aload 1 /* newSize */
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            aload 2 /* filler */
            invokespecial com.googlecode.lanterna.graphics.BasicTextImage.<init>:(Lcom/googlecode/lanterna/TerminalSize;[[Lcom/googlecode/lanterna/TextCharacter;Lcom/googlecode/lanterna/TextCharacter;)V
            areturn
        end local 2 // com.googlecode.lanterna.TextCharacter filler
        end local 1 // com.googlecode.lanterna.TerminalSize newSize
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0   10     1  newSize  Lcom/googlecode/lanterna/TerminalSize;
            0   10     2   filler  Lcom/googlecode/lanterna/TextCharacter;
    MethodParameters:
         Name  Flags
      newSize  
      filler   

  public void setCharacterAt(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TextCharacter);
    descriptor: (Lcom/googlecode/lanterna/TerminalPosition;Lcom/googlecode/lanterna/TextCharacter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // com.googlecode.lanterna.TerminalPosition position
        start local 2 // com.googlecode.lanterna.TextCharacter character
         0: .line 126
            aload 1 /* position */
            ifnonnull 2
         1: .line 127
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot call BasicTextImage.setCharacterAt(..) with null position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aload 2 /* character */
            invokevirtual com.googlecode.lanterna.graphics.BasicTextImage.setCharacterAt:(IILcom/googlecode/lanterna/TextCharacter;)V
         3: .line 130
            return
        end local 2 // com.googlecode.lanterna.TextCharacter character
        end local 1 // com.googlecode.lanterna.TerminalPosition position
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0    4     1   position  Lcom/googlecode/lanterna/TerminalPosition;
            0    4     2  character  Lcom/googlecode/lanterna/TextCharacter;
    MethodParameters:
           Name  Flags
      position   
      character  

  public void setCharacterAt(int, int, com.googlecode.lanterna.TextCharacter);
    descriptor: (IILcom/googlecode/lanterna/TextCharacter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // int column
        start local 2 // int row
        start local 3 // com.googlecode.lanterna.TextCharacter character
         0: .line 134
            aload 3 /* character */
            ifnonnull 2
         1: .line 135
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot call BasicTextImage.setCharacterAt(..) with null character"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 137
      StackMap locals:
      StackMap stack:
            iload 1 /* column */
            iflt 3
            iload 2 /* row */
            iflt 3
            iload 2 /* row */
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            arraylength
            if_icmpge 3
            iload 1 /* column */
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iconst_0
            aaload
            arraylength
            if_icmplt 4
         3: .line 138
      StackMap locals:
      StackMap stack:
            return
         4: .line 142
      StackMap locals:
      StackMap stack:
            iload 1 /* column */
            ifle 6
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 2 /* row */
            aaload
            iload 1 /* column */
            iconst_1
            isub
            aaload
            invokevirtual com.googlecode.lanterna.TextCharacter.isDoubleWidth:()Z
            ifeq 6
         5: .line 143
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 2 /* row */
            aaload
            iload 1 /* column */
            iconst_1
            isub
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 2 /* row */
            aaload
            iload 1 /* column */
            iconst_1
            isub
            aaload
            bipush 32
            invokevirtual com.googlecode.lanterna.TextCharacter.withCharacter:(C)Lcom/googlecode/lanterna/TextCharacter;
            aastore
         6: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 2 /* row */
            aaload
            iload 1 /* column */
            aload 3 /* character */
            aastore
         7: .line 150
            aload 3 /* character */
            invokevirtual com.googlecode.lanterna.TextCharacter.isDoubleWidth:()Z
            ifeq 9
            iload 1 /* column */
            iconst_1
            iadd
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iconst_0
            aaload
            arraylength
            if_icmpge 9
         8: .line 151
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 2 /* row */
            aaload
            iload 1 /* column */
            iconst_1
            iadd
            aload 3 /* character */
            bipush 32
            invokevirtual com.googlecode.lanterna.TextCharacter.withCharacter:(C)Lcom/googlecode/lanterna/TextCharacter;
            aastore
         9: .line 153
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.googlecode.lanterna.TextCharacter character
        end local 2 // int row
        end local 1 // int column
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0   10     1     column  I
            0   10     2        row  I
            0   10     3  character  Lcom/googlecode/lanterna/TextCharacter;
    MethodParameters:
           Name  Flags
      column     
      row        
      character  

  public com.googlecode.lanterna.TextCharacter getCharacterAt(com.googlecode.lanterna.TerminalPosition);
    descriptor: (Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/TextCharacter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // com.googlecode.lanterna.TerminalPosition position
         0: .line 157
            aload 1 /* position */
            ifnonnull 2
         1: .line 158
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot call BasicTextImage.getCharacterAt(..) with null position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            invokevirtual com.googlecode.lanterna.graphics.BasicTextImage.getCharacterAt:(II)Lcom/googlecode/lanterna/TextCharacter;
            areturn
        end local 1 // com.googlecode.lanterna.TerminalPosition position
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0    3     1  position  Lcom/googlecode/lanterna/TerminalPosition;
    MethodParameters:
          Name  Flags
      position  

  public com.googlecode.lanterna.TextCharacter getCharacterAt(int, int);
    descriptor: (II)Lcom/googlecode/lanterna/TextCharacter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // int column
        start local 2 // int row
         0: .line 165
            iload 1 /* column */
            iflt 1
            iload 2 /* row */
            iflt 1
            iload 2 /* row */
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            arraylength
            if_icmpge 1
            iload 1 /* column */
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iconst_0
            aaload
            arraylength
            if_icmplt 2
         1: .line 166
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 2 /* row */
            aaload
            iload 1 /* column */
            aaload
            areturn
        end local 2 // int row
        end local 1 // int column
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0    3     1  column  I
            0    3     2     row  I
    MethodParameters:
        Name  Flags
      column  
      row     

  public void copyTo(com.googlecode.lanterna.graphics.TextImage);
    descriptor: (Lcom/googlecode/lanterna/graphics/TextImage;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // com.googlecode.lanterna.graphics.TextImage destination
         0: .line 174
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            arraylength
            ifle 2
         1: .line 175
            aload 0 /* this */
            aload 1 /* destination */
            iconst_0
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            arraylength
            iconst_0
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iconst_0
            aaload
            arraylength
            iconst_0
            iconst_0
            invokevirtual com.googlecode.lanterna.graphics.BasicTextImage.copyTo:(Lcom/googlecode/lanterna/graphics/TextImage;IIIIII)V
         2: .line 177
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.googlecode.lanterna.graphics.TextImage destination
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0    3     1  destination  Lcom/googlecode/lanterna/graphics/TextImage;
    MethodParameters:
             Name  Flags
      destination  

  public void copyTo(com.googlecode.lanterna.graphics.TextImage, int, int, int, int, int, int);
    descriptor: (Lcom/googlecode/lanterna/graphics/TextImage;IIIIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=13, args_size=8
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // com.googlecode.lanterna.graphics.TextImage destination
        start local 2 // int startRowIndex
        start local 3 // int rows
        start local 4 // int startColumnIndex
        start local 5 // int columns
        start local 6 // int destinationRowOffset
        start local 7 // int destinationColumnOffset
         0: .line 190
            iload 4 /* startColumnIndex */
            ifge 4
         1: .line 191
            iload 7 /* destinationColumnOffset */
            iload 4 /* startColumnIndex */
            ineg
            iadd
            istore 7 /* destinationColumnOffset */
         2: .line 192
            iload 5 /* columns */
            iload 4 /* startColumnIndex */
            iadd
            istore 5 /* columns */
         3: .line 193
            iconst_0
            istore 4 /* startColumnIndex */
         4: .line 195
      StackMap locals:
      StackMap stack:
            iload 2 /* startRowIndex */
            ifge 8
         5: .line 196
            iload 6 /* destinationRowOffset */
            iload 2 /* startRowIndex */
            ineg
            iadd
            istore 6 /* destinationRowOffset */
         6: .line 197
            iload 3 /* rows */
            iload 2 /* startRowIndex */
            iadd
            istore 3 /* rows */
         7: .line 198
            iconst_0
            istore 2 /* startRowIndex */
         8: .line 202
      StackMap locals:
      StackMap stack:
            iload 7 /* destinationColumnOffset */
            ifge 12
         9: .line 203
            iload 4 /* startColumnIndex */
            iload 7 /* destinationColumnOffset */
            isub
            istore 4 /* startColumnIndex */
        10: .line 204
            iload 5 /* columns */
            iload 7 /* destinationColumnOffset */
            iadd
            istore 5 /* columns */
        11: .line 205
            iconst_0
            istore 7 /* destinationColumnOffset */
        12: .line 207
      StackMap locals:
      StackMap stack:
            iload 6 /* destinationRowOffset */
            ifge 16
        13: .line 208
            iload 2 /* startRowIndex */
            iload 6 /* destinationRowOffset */
            isub
            istore 2 /* startRowIndex */
        14: .line 209
            iload 3 /* rows */
            iload 6 /* destinationRowOffset */
            iadd
            istore 3 /* rows */
        15: .line 210
            iconst_0
            istore 6 /* destinationRowOffset */
        16: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            arraylength
            iload 2 /* startRowIndex */
            isub
            iload 3 /* rows */
            invokestatic java.lang.Math.min:(II)I
            istore 3 /* rows */
        17: .line 215
            iload 3 /* rows */
            ifle 18
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iconst_0
            aaload
            arraylength
            iload 4 /* startColumnIndex */
            isub
            iload 5 /* columns */
            invokestatic java.lang.Math.min:(II)I
            goto 19
      StackMap locals:
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: istore 5 /* columns */
        20: .line 218
            aload 1 /* destination */
            invokeinterface com.googlecode.lanterna.graphics.TextImage.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iload 7 /* destinationColumnOffset */
            isub
            iload 5 /* columns */
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* columns */
        21: .line 219
            aload 1 /* destination */
            invokeinterface com.googlecode.lanterna.graphics.TextImage.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iload 6 /* destinationRowOffset */
            isub
            iload 3 /* rows */
            invokestatic java.lang.Math.min:(II)I
            istore 3 /* rows */
        22: .line 221
            iload 5 /* columns */
            ifle 23
            iload 3 /* rows */
            ifgt 24
        23: .line 222
      StackMap locals:
      StackMap stack:
            return
        24: .line 225
      StackMap locals:
      StackMap stack:
            aload 1 /* destination */
            invokeinterface com.googlecode.lanterna.graphics.TextImage.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 8 /* destinationSize */
        start local 8 // com.googlecode.lanterna.TerminalSize destinationSize
        25: .line 226
            aload 1 /* destination */
            instanceof com.googlecode.lanterna.graphics.BasicTextImage
            ifeq 33
        26: .line 227
            iload 6 /* destinationRowOffset */
            istore 9 /* targetRow */
        start local 9 // int targetRow
        27: .line 228
            iload 2 /* startRowIndex */
            istore 10 /* y */
        start local 10 // int y
        28: goto 31
        29: .line 229
      StackMap locals: com.googlecode.lanterna.TerminalSize int int
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 10 /* y */
            aaload
            iload 4 /* startColumnIndex */
            aload 1 /* destination */
            checkcast com.googlecode.lanterna.graphics.BasicTextImage
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 9 /* targetRow */
            iinc 9 /* targetRow */ 1
            aaload
            iload 7 /* destinationColumnOffset */
            iload 5 /* columns */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        30: .line 228
            iinc 10 /* y */ 1
      StackMap locals:
      StackMap stack:
        31: iload 10 /* y */
            iload 2 /* startRowIndex */
            iload 3 /* rows */
            iadd
            if_icmpge 59
            iload 9 /* targetRow */
            aload 8 /* destinationSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            if_icmplt 29
        end local 10 // int y
        end local 9 // int targetRow
        32: .line 231
            goto 59
        33: .line 234
      StackMap locals:
      StackMap stack:
            iload 2 /* startRowIndex */
            istore 9 /* y */
        start local 9 // int y
        34: goto 58
        35: .line 235
      StackMap locals: int
      StackMap stack:
            iload 4 /* startColumnIndex */
            istore 10 /* x */
        start local 10 // int x
        36: goto 56
        37: .line 236
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 9 /* y */
            aaload
            iload 10 /* x */
            aaload
            astore 11 /* character */
        start local 11 // com.googlecode.lanterna.TextCharacter character
        38: .line 237
            aload 11 /* character */
            invokevirtual com.googlecode.lanterna.TextCharacter.isDoubleWidth:()Z
            ifeq 48
        39: .line 239
            iload 10 /* x */
            iconst_1
            iadd
            iload 4 /* startColumnIndex */
            iload 5 /* columns */
            iadd
            if_icmpge 46
        40: .line 240
            aload 1 /* destination */
        41: .line 241
            iload 10 /* x */
            iload 4 /* startColumnIndex */
            isub
            iload 7 /* destinationColumnOffset */
            iadd
        42: .line 242
            iload 9 /* y */
            iload 2 /* startRowIndex */
            isub
            iload 6 /* destinationRowOffset */
            iadd
        43: .line 243
            aload 11 /* character */
            bipush 32
            invokevirtual com.googlecode.lanterna.TextCharacter.withCharacter:(C)Lcom/googlecode/lanterna/TextCharacter;
        44: .line 240
            invokeinterface com.googlecode.lanterna.graphics.TextImage.setCharacterAt:(IILcom/googlecode/lanterna/TextCharacter;)V
        45: .line 244
            goto 48
        46: .line 246
      StackMap locals: com.googlecode.lanterna.TextCharacter
      StackMap stack:
            iload 10 /* x */
            iconst_1
            iadd
            iload 4 /* startColumnIndex */
            iload 5 /* columns */
            iadd
            if_icmpne 48
        47: .line 247
            aload 11 /* character */
            bipush 32
            invokevirtual com.googlecode.lanterna.TextCharacter.withCharacter:(C)Lcom/googlecode/lanterna/TextCharacter;
            astore 11 /* character */
        48: .line 250
      StackMap locals:
      StackMap stack:
            aload 1 /* destination */
        49: .line 251
            iload 10 /* x */
            iload 4 /* startColumnIndex */
            isub
            iload 7 /* destinationColumnOffset */
            iadd
        50: .line 252
            iload 9 /* y */
            iload 2 /* startRowIndex */
            isub
            iload 6 /* destinationRowOffset */
            iadd
        51: .line 253
            aload 11 /* character */
        52: .line 250
            invokeinterface com.googlecode.lanterna.graphics.TextImage.setCharacterAt:(IILcom/googlecode/lanterna/TextCharacter;)V
        53: .line 254
            aload 11 /* character */
            invokevirtual com.googlecode.lanterna.TextCharacter.isDoubleWidth:()Z
            ifeq 55
        54: .line 255
            iinc 10 /* x */ 1
        end local 11 // com.googlecode.lanterna.TextCharacter character
        55: .line 235
      StackMap locals:
      StackMap stack:
            iinc 10 /* x */ 1
      StackMap locals:
      StackMap stack:
        56: iload 10 /* x */
            iload 4 /* startColumnIndex */
            iload 5 /* columns */
            iadd
            if_icmplt 37
        end local 10 // int x
        57: .line 234
            iinc 9 /* y */ 1
      StackMap locals:
      StackMap stack:
        58: iload 9 /* y */
            iload 2 /* startRowIndex */
            iload 3 /* rows */
            iadd
            if_icmplt 35
        end local 9 // int y
        59: .line 262
      StackMap locals:
      StackMap stack:
            iload 7 /* destinationColumnOffset */
            ifle 69
        60: .line 263
            iload 7 /* destinationColumnOffset */
            iconst_1
            isub
            istore 9 /* destinationX */
        start local 9 // int destinationX
        61: .line 264
            iload 2 /* startRowIndex */
            istore 10 /* y */
        start local 10 // int y
        62: goto 68
        63: .line 265
      StackMap locals: int int
      StackMap stack:
            iload 10 /* y */
            iload 2 /* startRowIndex */
            isub
            iload 6 /* destinationRowOffset */
            iadd
            istore 11 /* destinationY */
        start local 11 // int destinationY
        64: .line 266
            aload 1 /* destination */
            iload 9 /* destinationX */
            iload 11 /* destinationY */
            invokeinterface com.googlecode.lanterna.graphics.TextImage.getCharacterAt:(II)Lcom/googlecode/lanterna/TextCharacter;
            astore 12 /* neighbour */
        start local 12 // com.googlecode.lanterna.TextCharacter neighbour
        65: .line 267
            aload 12 /* neighbour */
            invokevirtual com.googlecode.lanterna.TextCharacter.isDoubleWidth:()Z
            ifeq 67
        66: .line 268
            aload 1 /* destination */
            iload 9 /* destinationX */
            iload 11 /* destinationY */
            aload 12 /* neighbour */
            bipush 32
            invokevirtual com.googlecode.lanterna.TextCharacter.withCharacter:(C)Lcom/googlecode/lanterna/TextCharacter;
            invokeinterface com.googlecode.lanterna.graphics.TextImage.setCharacterAt:(IILcom/googlecode/lanterna/TextCharacter;)V
        end local 12 // com.googlecode.lanterna.TextCharacter neighbour
        end local 11 // int destinationY
        67: .line 264
      StackMap locals:
      StackMap stack:
            iinc 10 /* y */ 1
      StackMap locals:
      StackMap stack:
        68: iload 10 /* y */
            iload 2 /* startRowIndex */
            iload 3 /* rows */
            iadd
            if_icmplt 63
        end local 10 // int y
        end local 9 // int destinationX
        69: .line 272
      StackMap locals:
      StackMap stack:
            return
        end local 8 // com.googlecode.lanterna.TerminalSize destinationSize
        end local 7 // int destinationColumnOffset
        end local 6 // int destinationRowOffset
        end local 5 // int columns
        end local 4 // int startColumnIndex
        end local 3 // int rows
        end local 2 // int startRowIndex
        end local 1 // com.googlecode.lanterna.graphics.TextImage destination
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   70     0                     this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0   70     1              destination  Lcom/googlecode/lanterna/graphics/TextImage;
            0   70     2            startRowIndex  I
            0   70     3                     rows  I
            0   70     4         startColumnIndex  I
            0   70     5                  columns  I
            0   70     6     destinationRowOffset  I
            0   70     7  destinationColumnOffset  I
           25   70     8          destinationSize  Lcom/googlecode/lanterna/TerminalSize;
           27   32     9                targetRow  I
           28   32    10                        y  I
           34   59     9                        y  I
           36   57    10                        x  I
           38   55    11                character  Lcom/googlecode/lanterna/TextCharacter;
           61   69     9             destinationX  I
           62   69    10                        y  I
           64   67    11             destinationY  I
           65   67    12                neighbour  Lcom/googlecode/lanterna/TextCharacter;
    MethodParameters:
                         Name  Flags
      destination              
      startRowIndex            
      rows                     
      startColumnIndex         
      columns                  
      destinationRowOffset     
      destinationColumnOffset  

  public com.googlecode.lanterna.graphics.TextGraphics newTextGraphics();
    descriptor: ()Lcom/googlecode/lanterna/graphics/TextGraphics;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
         0: .line 276
            new com.googlecode.lanterna.graphics.BasicTextImage$1
            dup
            aload 0 /* this */
            invokespecial com.googlecode.lanterna.graphics.BasicTextImage$1.<init>:(Lcom/googlecode/lanterna/graphics/BasicTextImage;)V
            areturn
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/graphics/BasicTextImage;

  private com.googlecode.lanterna.TextCharacter[] newBlankLine();
    descriptor: ()[Lcom/googlecode/lanterna/TextCharacter;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
         0: .line 296
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.size:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            anewarray com.googlecode.lanterna.TextCharacter
            astore 1 /* line */
        start local 1 // com.googlecode.lanterna.TextCharacter[] line
         1: .line 297
            aload 1 /* line */
            getstatic com.googlecode.lanterna.TextCharacter.DEFAULT_CHARACTER:Lcom/googlecode/lanterna/TextCharacter;
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 298
            aload 1 /* line */
            areturn
        end local 1 // com.googlecode.lanterna.TextCharacter[] line
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            1    3     1  line  [Lcom/googlecode/lanterna/TextCharacter;

  public void scrollLines(int, int, int);
    descriptor: (III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
        start local 1 // int firstLine
        start local 2 // int lastLine
        start local 3 // int distance
         0: .line 303
            iload 1 /* firstLine */
            ifge 1
            iconst_0
            istore 1 /* firstLine */
         1: .line 304
      StackMap locals:
      StackMap stack:
            iload 2 /* lastLine */
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.size:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            if_icmplt 2
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.size:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_1
            isub
            istore 2 /* lastLine */
         2: .line 305
      StackMap locals:
      StackMap stack:
            iload 1 /* firstLine */
            iload 2 /* lastLine */
            if_icmpge 25
         3: .line 306
            iload 3 /* distance */
            ifle 14
         4: .line 308
            iload 1 /* firstLine */
            istore 4 /* curLine */
        start local 4 // int curLine
         5: .line 310
            goto 8
         6: .line 311
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 4 /* curLine */
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 4 /* curLine */
            iload 3 /* distance */
            iadd
            aaload
            aastore
         7: .line 310
            iinc 4 /* curLine */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* curLine */
            iload 2 /* lastLine */
            iload 3 /* distance */
            isub
            if_icmple 6
         9: .line 314
            goto 12
        10: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 4 /* curLine */
            aload 0 /* this */
            invokevirtual com.googlecode.lanterna.graphics.BasicTextImage.newBlankLine:()[Lcom/googlecode/lanterna/TextCharacter;
            aastore
        11: .line 314
            iinc 4 /* curLine */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* curLine */
            iload 2 /* lastLine */
            if_icmple 10
        end local 4 // int curLine
        13: .line 317
            goto 25
        14: .line 318
      StackMap locals:
      StackMap stack:
            iload 3 /* distance */
            ifge 25
        15: .line 320
            iload 2 /* lastLine */
            istore 4 /* curLine */
        start local 4 // int curLine
        16: iload 3 /* distance */
            ineg
            istore 3 /* distance */
        17: .line 322
            goto 20
        18: .line 323
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 4 /* curLine */
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 4 /* curLine */
            iload 3 /* distance */
            isub
            aaload
            aastore
        19: .line 322
            iinc 4 /* curLine */ -1
      StackMap locals:
      StackMap stack:
        20: iload 4 /* curLine */
            iload 1 /* firstLine */
            iload 3 /* distance */
            iadd
            if_icmpge 18
        21: .line 326
            goto 24
        22: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            iload 4 /* curLine */
            aload 0 /* this */
            invokevirtual com.googlecode.lanterna.graphics.BasicTextImage.newBlankLine:()[Lcom/googlecode/lanterna/TextCharacter;
            aastore
        23: .line 326
            iinc 4 /* curLine */ -1
      StackMap locals:
      StackMap stack:
        24: iload 4 /* curLine */
            iload 1 /* firstLine */
            if_icmpge 22
        end local 4 // int curLine
        25: .line 331
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int distance
        end local 2 // int lastLine
        end local 1 // int firstLine
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   26     0       this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            0   26     1  firstLine  I
            0   26     2   lastLine  I
            0   26     3   distance  I
            5   13     4    curLine  I
           16   25     4    curLine  I
    MethodParameters:
           Name  Flags
      firstLine  
      lastLine   
      distance   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
         0: .line 335
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.size:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.size:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_1
            iadd
            imul
            bipush 50
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 336
            aload 1 /* sb */
            bipush 123
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.size:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 120
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.size:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         2: .line 337
            aload 0 /* this */
            getfield com.googlecode.lanterna.graphics.BasicTextImage.buffer:[[Lcom/googlecode/lanterna/TextCharacter;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 11
      StackMap locals: com.googlecode.lanterna.graphics.BasicTextImage java.lang.StringBuilder top int int com.googlecode.lanterna.TextCharacter[][]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* line */
        start local 2 // com.googlecode.lanterna.TextCharacter[] line
         4: .line 338
            aload 2 /* line */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 8
      StackMap locals: com.googlecode.lanterna.graphics.BasicTextImage java.lang.StringBuilder com.googlecode.lanterna.TextCharacter[] int int com.googlecode.lanterna.TextCharacter[][] top int int com.googlecode.lanterna.TextCharacter[]
      StackMap stack:
         5: aload 9
            iload 7
            aaload
            astore 6 /* tc */
        start local 6 // com.googlecode.lanterna.TextCharacter tc
         6: .line 339
            aload 1 /* sb */
            aload 6 /* tc */
            invokevirtual com.googlecode.lanterna.TextCharacter.getCharacter:()C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 6 // com.googlecode.lanterna.TextCharacter tc
         7: .line 338
            iinc 7 1
      StackMap locals:
      StackMap stack:
         8: iload 7
            iload 8
            if_icmplt 5
         9: .line 341
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 2 // com.googlecode.lanterna.TextCharacter[] line
        10: .line 337
            iinc 3 1
      StackMap locals: com.googlecode.lanterna.graphics.BasicTextImage java.lang.StringBuilder top int int com.googlecode.lanterna.TextCharacter[][]
      StackMap stack:
        11: iload 3
            iload 4
            if_icmplt 3
        12: .line 343
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // com.googlecode.lanterna.graphics.BasicTextImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lcom/googlecode/lanterna/graphics/BasicTextImage;
            1   13     1    sb  Ljava/lang/StringBuilder;
            4   10     2  line  [Lcom/googlecode/lanterna/TextCharacter;
            6    7     6    tc  Lcom/googlecode/lanterna/TextCharacter;

  public com.googlecode.lanterna.graphics.TextImage resize(com.googlecode.lanterna.TerminalSize, com.googlecode.lanterna.TextCharacter);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/TextCharacter;)Lcom/googlecode/lanterna/graphics/TextImage;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokevirtual com.googlecode.lanterna.graphics.BasicTextImage.resize:(Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/TextCharacter;)Lcom/googlecode/lanterna/graphics/BasicTextImage;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "BasicTextImage.java"
NestMembers:
  com.googlecode.lanterna.graphics.BasicTextImage$1
InnerClasses:
  public final ANSI = com.googlecode.lanterna.TextColor$ANSI of com.googlecode.lanterna.TextColor
  com.googlecode.lanterna.graphics.BasicTextImage$1