public void moveCursorDown(int n, boolean dedupWrap) {
		int prevY = curY - 1;
		if (dedupWrap && n == 1 && prevY >= 0 && prevY < lines.size() &&
			lines.get(prevY).wrappedToNext) {
			lines.get(prevY).wrappedToNext = false;
		}
		else {
			curY += n;
			bottomY = Math.max(bottomY, curY);
			checkVerticalScroll();
		}
	}
Move the cursor down n rows

<p>
If the cursor would move below the bottom of the display, the viewport will be scrolled so
that the cursor remains in the display. The value of n must be positive, otherwise behavior
is undefined. To move the cursor up, use {@link #moveCursorUp(int)}.

<p>
ConPty has a habit of moving the cursor past the end of the current line before sending CRLF.
(Though, I imagine there are other applications that might do this.) The {@code dedupWrap}
parameter is made to accommodate this. If it is set, n is a single line, and the previous
line was wrapped, then this does nothing more than remove the wrapped flag from the previous
line.

@param n the number of lines to move down
@param dedupWrap whether to detect and ignore a line feed after wrapping
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/terminal/vt/VtBuffer.java