static L takeFirstNSSILines(int maxLines, Iterable l) { if (maxLines == Int.MAX_VALUE) ret asList(l); int sum = 0; new L out; fOr (ssi : l) { if (sum >= maxLines) break; int linesToCopy = min(ssi.height(), maxLines-sum); if (linesToCopy < ssi.height()) break; out.add(ssi); //out.add(linesToCopy == ssi.height() ? ssi : ssi.topPart(linesToCopy)); sum += ssi.height(); } ret out; }