public abstract class com.googlecode.lanterna.screen.AbstractScreen implements com.googlecode.lanterna.screen.Screen
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.googlecode.lanterna.screen.AbstractScreen
  super_class: java.lang.Object
{
  private com.googlecode.lanterna.TerminalPosition cursorPosition;
    descriptor: Lcom/googlecode/lanterna/TerminalPosition;
    flags: (0x0002) ACC_PRIVATE

  private com.googlecode.lanterna.screen.ScreenBuffer backBuffer;
    descriptor: Lcom/googlecode/lanterna/screen/ScreenBuffer;
    flags: (0x0002) ACC_PRIVATE

  private com.googlecode.lanterna.screen.ScreenBuffer frontBuffer;
    descriptor: Lcom/googlecode/lanterna/screen/ScreenBuffer;
    flags: (0x0002) ACC_PRIVATE

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

  private com.googlecode.lanterna.screen.TabBehaviour tabBehaviour;
    descriptor: Lcom/googlecode/lanterna/screen/TabBehaviour;
    flags: (0x0002) ACC_PRIVATE

  private com.googlecode.lanterna.TerminalSize terminalSize;
    descriptor: Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0002) ACC_PRIVATE

  private com.googlecode.lanterna.TerminalSize latestResizeRequest;
    descriptor: Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(com.googlecode.lanterna.TerminalSize);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
        start local 1 // com.googlecode.lanterna.TerminalSize initialSize
         0: .line 52
            aload 0 /* this */
            aload 1 /* initialSize */
            getstatic com.googlecode.lanterna.screen.AbstractScreen.DEFAULT_CHARACTER:Lcom/googlecode/lanterna/TextCharacter;
            invokespecial com.googlecode.lanterna.screen.AbstractScreen.<init>:(Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/TextCharacter;)V
         1: .line 53
            return
        end local 1 // com.googlecode.lanterna.TerminalSize initialSize
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0    2     1  initialSize  Lcom/googlecode/lanterna/TerminalSize;
    MethodParameters:
             Name  Flags
      initialSize  

  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=5, locals=3, args_size=3
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
        start local 1 // com.googlecode.lanterna.TerminalSize initialSize
        start local 2 // com.googlecode.lanterna.TextCharacter defaultCharacter
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 65
            aload 0 /* this */
            new com.googlecode.lanterna.screen.ScreenBuffer
            dup
            aload 1 /* initialSize */
            aload 2 /* defaultCharacter */
            invokespecial com.googlecode.lanterna.screen.ScreenBuffer.<init>:(Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/TextCharacter;)V
            putfield com.googlecode.lanterna.screen.AbstractScreen.frontBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
         2: .line 66
            aload 0 /* this */
            new com.googlecode.lanterna.screen.ScreenBuffer
            dup
            aload 1 /* initialSize */
            aload 2 /* defaultCharacter */
            invokespecial com.googlecode.lanterna.screen.ScreenBuffer.<init>:(Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/TextCharacter;)V
            putfield com.googlecode.lanterna.screen.AbstractScreen.backBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
         3: .line 67
            aload 0 /* this */
            aload 2 /* defaultCharacter */
            putfield com.googlecode.lanterna.screen.AbstractScreen.defaultCharacter:Lcom/googlecode/lanterna/TextCharacter;
         4: .line 68
            aload 0 /* this */
            new com.googlecode.lanterna.TerminalPosition
            dup
            iconst_0
            iconst_0
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
            putfield com.googlecode.lanterna.screen.AbstractScreen.cursorPosition:Lcom/googlecode/lanterna/TerminalPosition;
         5: .line 69
            aload 0 /* this */
            getstatic com.googlecode.lanterna.screen.TabBehaviour.ALIGN_TO_COLUMN_4:Lcom/googlecode/lanterna/screen/TabBehaviour;
            putfield com.googlecode.lanterna.screen.AbstractScreen.tabBehaviour:Lcom/googlecode/lanterna/screen/TabBehaviour;
         6: .line 70
            aload 0 /* this */
            aload 1 /* initialSize */
            putfield com.googlecode.lanterna.screen.AbstractScreen.terminalSize:Lcom/googlecode/lanterna/TerminalSize;
         7: .line 71
            aload 0 /* this */
            aconst_null
            putfield com.googlecode.lanterna.screen.AbstractScreen.latestResizeRequest:Lcom/googlecode/lanterna/TerminalSize;
         8: .line 72
            return
        end local 2 // com.googlecode.lanterna.TextCharacter defaultCharacter
        end local 1 // com.googlecode.lanterna.TerminalSize initialSize
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0    9     1       initialSize  Lcom/googlecode/lanterna/TerminalSize;
            0    9     2  defaultCharacter  Lcom/googlecode/lanterna/TextCharacter;
    MethodParameters:
                  Name  Flags
      initialSize       
      defaultCharacter  

  public com.googlecode.lanterna.TerminalPosition getCursorPosition();
    descriptor: ()Lcom/googlecode/lanterna/TerminalPosition;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
         0: .line 80
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.cursorPosition:Lcom/googlecode/lanterna/TerminalPosition;
            areturn
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/screen/AbstractScreen;

  public void setCursorPosition(com.googlecode.lanterna.TerminalPosition);
    descriptor: (Lcom/googlecode/lanterna/TerminalPosition;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
        start local 1 // com.googlecode.lanterna.TerminalPosition position
         0: .line 91
            aload 1 /* position */
            ifnonnull 3
         1: .line 93
            aload 0 /* this */
            aconst_null
            putfield com.googlecode.lanterna.screen.AbstractScreen.cursorPosition:Lcom/googlecode/lanterna/TerminalPosition;
         2: .line 94
            return
         3: .line 96
      StackMap locals:
      StackMap stack:
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            ifge 5
         4: .line 97
            aload 1 /* position */
            iconst_0
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 1 /* position */
         5: .line 99
      StackMap locals:
      StackMap stack:
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            ifge 7
         6: .line 100
            aload 1 /* position */
            iconst_0
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 1 /* position */
         7: .line 102
      StackMap locals:
      StackMap stack:
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.terminalSize:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            if_icmplt 9
         8: .line 103
            aload 1 /* position */
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.terminalSize:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_1
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 1 /* position */
         9: .line 105
      StackMap locals:
      StackMap stack:
            aload 1 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.terminalSize:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            if_icmplt 11
        10: .line 106
            aload 1 /* position */
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.terminalSize:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_1
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 1 /* position */
        11: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* position */
            putfield com.googlecode.lanterna.screen.AbstractScreen.cursorPosition:Lcom/googlecode/lanterna/TerminalPosition;
        12: .line 109
            return
        end local 1 // com.googlecode.lanterna.TerminalPosition position
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0   13     1  position  Lcom/googlecode/lanterna/TerminalPosition;
    MethodParameters:
          Name  Flags
      position  

  public void setTabBehaviour(com.googlecode.lanterna.screen.TabBehaviour);
    descriptor: (Lcom/googlecode/lanterna/screen/TabBehaviour;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
        start local 1 // com.googlecode.lanterna.screen.TabBehaviour tabBehaviour
         0: .line 113
            aload 1 /* tabBehaviour */
            ifnull 2
         1: .line 114
            aload 0 /* this */
            aload 1 /* tabBehaviour */
            putfield com.googlecode.lanterna.screen.AbstractScreen.tabBehaviour:Lcom/googlecode/lanterna/screen/TabBehaviour;
         2: .line 116
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.googlecode.lanterna.screen.TabBehaviour tabBehaviour
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0    3     1  tabBehaviour  Lcom/googlecode/lanterna/screen/TabBehaviour;
    MethodParameters:
              Name  Flags
      tabBehaviour  

  public com.googlecode.lanterna.screen.TabBehaviour getTabBehaviour();
    descriptor: ()Lcom/googlecode/lanterna/screen/TabBehaviour;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
         0: .line 120
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.tabBehaviour:Lcom/googlecode/lanterna/screen/TabBehaviour;
            areturn
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/screen/AbstractScreen;

  public void setCharacter(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.screen.AbstractScreen this
        start local 1 // com.googlecode.lanterna.TerminalPosition position
        start local 2 // com.googlecode.lanterna.TextCharacter screenCharacter
         0: .line 125
            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 /* screenCharacter */
            invokevirtual com.googlecode.lanterna.screen.AbstractScreen.setCharacter:(IILcom/googlecode/lanterna/TextCharacter;)V
         1: .line 126
            return
        end local 2 // com.googlecode.lanterna.TextCharacter screenCharacter
        end local 1 // com.googlecode.lanterna.TerminalPosition position
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0    2     1         position  Lcom/googlecode/lanterna/TerminalPosition;
            0    2     2  screenCharacter  Lcom/googlecode/lanterna/TextCharacter;
    MethodParameters:
                 Name  Flags
      position         
      screenCharacter  

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

  public synchronized void setCharacter(int, int, com.googlecode.lanterna.TextCharacter);
    descriptor: (IILcom/googlecode/lanterna/TextCharacter;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
        start local 1 // int column
        start local 2 // int row
        start local 3 // com.googlecode.lanterna.TextCharacter screenCharacter
         0: .line 142
            aload 3 /* screenCharacter */
            bipush 9
            invokevirtual com.googlecode.lanterna.TextCharacter.is:(C)Z
            ifeq 8
         1: .line 144
            aload 3 /* screenCharacter */
            bipush 32
            invokevirtual com.googlecode.lanterna.TextCharacter.withCharacter:(C)Lcom/googlecode/lanterna/TextCharacter;
            astore 3 /* screenCharacter */
         2: .line 147
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 148
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.backBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
            iload 1 /* column */
            iload 4 /* i */
            iadd
            iload 2 /* row */
            aload 3 /* screenCharacter */
            invokevirtual com.googlecode.lanterna.screen.ScreenBuffer.setCharacterAt:(IILcom/googlecode/lanterna/TextCharacter;)V
         5: .line 147
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.tabBehaviour:Lcom/googlecode/lanterna/screen/TabBehaviour;
            ldc "\t"
            iload 1 /* column */
            invokevirtual com.googlecode.lanterna.screen.TabBehaviour.replaceTabs:(Ljava/lang/String;I)Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmplt 4
        end local 4 // int i
         7: .line 150
            goto 9
         8: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.backBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
            iload 1 /* column */
            iload 2 /* row */
            aload 3 /* screenCharacter */
            invokevirtual com.googlecode.lanterna.screen.ScreenBuffer.setCharacterAt:(IILcom/googlecode/lanterna/TextCharacter;)V
         9: .line 155
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.googlecode.lanterna.TextCharacter screenCharacter
        end local 2 // int row
        end local 1 // int column
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0   10     1           column  I
            0   10     2              row  I
            0   10     3  screenCharacter  Lcom/googlecode/lanterna/TextCharacter;
            3    7     4                i  I
    MethodParameters:
                 Name  Flags
      column           
      row              
      screenCharacter  

  public synchronized com.googlecode.lanterna.TextCharacter getFrontCharacter(com.googlecode.lanterna.TerminalPosition);
    descriptor: (Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/TextCharacter;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
        start local 1 // com.googlecode.lanterna.TerminalPosition position
         0: .line 159
            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.screen.AbstractScreen.getFrontCharacter:(II)Lcom/googlecode/lanterna/TextCharacter;
            areturn
        end local 1 // com.googlecode.lanterna.TerminalPosition position
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0    1     1  position  Lcom/googlecode/lanterna/TerminalPosition;
    MethodParameters:
          Name  Flags
      position  

  public com.googlecode.lanterna.TextCharacter getFrontCharacter(int, int);
    descriptor: (II)Lcom/googlecode/lanterna/TextCharacter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
        start local 1 // int column
        start local 2 // int row
         0: .line 164
            aload 0 /* this */
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.frontBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
            iload 1 /* column */
            iload 2 /* row */
            invokevirtual com.googlecode.lanterna.screen.AbstractScreen.getCharacterFromBuffer:(Lcom/googlecode/lanterna/screen/ScreenBuffer;II)Lcom/googlecode/lanterna/TextCharacter;
            areturn
        end local 2 // int row
        end local 1 // int column
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0    1     1  column  I
            0    1     2     row  I
    MethodParameters:
        Name  Flags
      column  
      row     

  public synchronized com.googlecode.lanterna.TextCharacter getBackCharacter(com.googlecode.lanterna.TerminalPosition);
    descriptor: (Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/TextCharacter;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
        start local 1 // com.googlecode.lanterna.TerminalPosition position
         0: .line 169
            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.screen.AbstractScreen.getBackCharacter:(II)Lcom/googlecode/lanterna/TextCharacter;
            areturn
        end local 1 // com.googlecode.lanterna.TerminalPosition position
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0    1     1  position  Lcom/googlecode/lanterna/TerminalPosition;
    MethodParameters:
          Name  Flags
      position  

  public com.googlecode.lanterna.TextCharacter getBackCharacter(int, int);
    descriptor: (II)Lcom/googlecode/lanterna/TextCharacter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
        start local 1 // int column
        start local 2 // int row
         0: .line 174
            aload 0 /* this */
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.backBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
            iload 1 /* column */
            iload 2 /* row */
            invokevirtual com.googlecode.lanterna.screen.AbstractScreen.getCharacterFromBuffer:(Lcom/googlecode/lanterna/screen/ScreenBuffer;II)Lcom/googlecode/lanterna/TextCharacter;
            areturn
        end local 2 // int row
        end local 1 // int column
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0    1     1  column  I
            0    1     2     row  I
    MethodParameters:
        Name  Flags
      column  
      row     

  public void refresh();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
         0: .line 179
            aload 0 /* this */
            getstatic com.googlecode.lanterna.screen.Screen$RefreshType.AUTOMATIC:Lcom/googlecode/lanterna/screen/Screen$RefreshType;
            invokevirtual com.googlecode.lanterna.screen.AbstractScreen.refresh:(Lcom/googlecode/lanterna/screen/Screen$RefreshType;)V
         1: .line 180
            return
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/googlecode/lanterna/screen/AbstractScreen;
    Exceptions:
      throws java.io.IOException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
         0: .line 184
            aload 0 /* this */
            invokevirtual com.googlecode.lanterna.screen.AbstractScreen.stopScreen:()V
         1: .line 185
            return
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/googlecode/lanterna/screen/AbstractScreen;
    Exceptions:
      throws java.io.IOException

  public synchronized void clear();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
         0: .line 189
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.backBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.defaultCharacter:Lcom/googlecode/lanterna/TextCharacter;
            invokevirtual com.googlecode.lanterna.screen.ScreenBuffer.setAll:(Lcom/googlecode/lanterna/TextCharacter;)V
         1: .line 190
            return
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/googlecode/lanterna/screen/AbstractScreen;

  public synchronized com.googlecode.lanterna.TerminalSize doResizeIfNecessary();
    descriptor: ()Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
         0: .line 194
            aload 0 /* this */
            invokevirtual com.googlecode.lanterna.screen.AbstractScreen.getAndClearPendingResize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 1 /* pendingResize */
        start local 1 // com.googlecode.lanterna.TerminalSize pendingResize
         1: .line 195
            aload 1 /* pendingResize */
            ifnonnull 3
         2: .line 196
            aconst_null
            areturn
         3: .line 199
      StackMap locals: com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.backBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
            aload 1 /* pendingResize */
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.defaultCharacter:Lcom/googlecode/lanterna/TextCharacter;
            invokevirtual com.googlecode.lanterna.screen.ScreenBuffer.resize:(Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/TextCharacter;)Lcom/googlecode/lanterna/screen/ScreenBuffer;
            putfield com.googlecode.lanterna.screen.AbstractScreen.backBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
         4: .line 200
            aload 0 /* this */
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.frontBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
            aload 1 /* pendingResize */
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.defaultCharacter:Lcom/googlecode/lanterna/TextCharacter;
            invokevirtual com.googlecode.lanterna.screen.ScreenBuffer.resize:(Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/TextCharacter;)Lcom/googlecode/lanterna/screen/ScreenBuffer;
            putfield com.googlecode.lanterna.screen.AbstractScreen.frontBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
         5: .line 201
            aload 1 /* pendingResize */
            areturn
        end local 1 // com.googlecode.lanterna.TerminalSize pendingResize
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            1    6     1  pendingResize  Lcom/googlecode/lanterna/TerminalSize;

  public com.googlecode.lanterna.TerminalSize getTerminalSize();
    descriptor: ()Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
         0: .line 206
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.terminalSize:Lcom/googlecode/lanterna/TerminalSize;
            areturn
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/screen/AbstractScreen;

  protected com.googlecode.lanterna.screen.ScreenBuffer getFrontBuffer();
    descriptor: ()Lcom/googlecode/lanterna/screen/ScreenBuffer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
         0: .line 214
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.frontBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
            areturn
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/screen/AbstractScreen;

  protected com.googlecode.lanterna.screen.ScreenBuffer getBackBuffer();
    descriptor: ()Lcom/googlecode/lanterna/screen/ScreenBuffer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
         0: .line 222
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.backBuffer:Lcom/googlecode/lanterna/screen/ScreenBuffer;
            areturn
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/screen/AbstractScreen;

  private synchronized com.googlecode.lanterna.TerminalSize getAndClearPendingResize();
    descriptor: ()Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
         0: .line 226
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.latestResizeRequest:Lcom/googlecode/lanterna/TerminalSize;
            ifnull 4
         1: .line 227
            aload 0 /* this */
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.latestResizeRequest:Lcom/googlecode/lanterna/TerminalSize;
            putfield com.googlecode.lanterna.screen.AbstractScreen.terminalSize:Lcom/googlecode/lanterna/TerminalSize;
         2: .line 228
            aload 0 /* this */
            aconst_null
            putfield com.googlecode.lanterna.screen.AbstractScreen.latestResizeRequest:Lcom/googlecode/lanterna/TerminalSize;
         3: .line 229
            aload 0 /* this */
            getfield com.googlecode.lanterna.screen.AbstractScreen.terminalSize:Lcom/googlecode/lanterna/TerminalSize;
            areturn
         4: .line 231
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/googlecode/lanterna/screen/AbstractScreen;

  protected void addResizeRequest(com.googlecode.lanterna.TerminalSize);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
        start local 1 // com.googlecode.lanterna.TerminalSize newSize
         0: .line 239
            aload 0 /* this */
            aload 1 /* newSize */
            putfield com.googlecode.lanterna.screen.AbstractScreen.latestResizeRequest:Lcom/googlecode/lanterna/TerminalSize;
         1: .line 240
            return
        end local 1 // com.googlecode.lanterna.TerminalSize newSize
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0    2     1  newSize  Lcom/googlecode/lanterna/TerminalSize;
    MethodParameters:
         Name  Flags
      newSize  

  private com.googlecode.lanterna.TextCharacter getCharacterFromBuffer(com.googlecode.lanterna.screen.ScreenBuffer, int, int);
    descriptor: (Lcom/googlecode/lanterna/screen/ScreenBuffer;II)Lcom/googlecode/lanterna/TextCharacter;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
        start local 1 // com.googlecode.lanterna.screen.ScreenBuffer buffer
        start local 2 // int column
        start local 3 // int row
         0: .line 243
            aload 1 /* buffer */
            iload 2 /* column */
            iload 3 /* row */
            invokevirtual com.googlecode.lanterna.screen.ScreenBuffer.getCharacterAt:(II)Lcom/googlecode/lanterna/TextCharacter;
            areturn
        end local 3 // int row
        end local 2 // int column
        end local 1 // com.googlecode.lanterna.screen.ScreenBuffer buffer
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0    1     1  buffer  Lcom/googlecode/lanterna/screen/ScreenBuffer;
            0    1     2  column  I
            0    1     3     row  I
    MethodParameters:
        Name  Flags
      buffer  
      column  
      row     

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
         0: .line 248
            aload 0 /* this */
            invokevirtual com.googlecode.lanterna.screen.AbstractScreen.getBackBuffer:()Lcom/googlecode/lanterna/screen/ScreenBuffer;
            invokevirtual com.googlecode.lanterna.screen.ScreenBuffer.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/screen/AbstractScreen;

  public void scrollLines(int, int, int);
    descriptor: (III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.googlecode.lanterna.screen.AbstractScreen this
        start local 1 // int firstLine
        start local 2 // int lastLine
        start local 3 // int distance
         0: .line 256
            aload 0 /* this */
            invokevirtual com.googlecode.lanterna.screen.AbstractScreen.getBackBuffer:()Lcom/googlecode/lanterna/screen/ScreenBuffer;
            iload 1 /* firstLine */
            iload 2 /* lastLine */
            iload 3 /* distance */
            invokevirtual com.googlecode.lanterna.screen.ScreenBuffer.scrollLines:(III)V
         1: .line 257
            return
        end local 3 // int distance
        end local 2 // int lastLine
        end local 1 // int firstLine
        end local 0 // com.googlecode.lanterna.screen.AbstractScreen this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/googlecode/lanterna/screen/AbstractScreen;
            0    2     1  firstLine  I
            0    2     2   lastLine  I
            0    2     3   distance  I
    MethodParameters:
           Name  Flags
      firstLine  
      lastLine   
      distance   
}
SourceFile: "AbstractScreen.java"
NestMembers:
  com.googlecode.lanterna.screen.AbstractScreen$1
InnerClasses:
  com.googlecode.lanterna.screen.AbstractScreen$1
  public final RefreshType = com.googlecode.lanterna.screen.Screen$RefreshType of com.googlecode.lanterna.screen.Screen