package common;

import java.math.BigInteger;

public class BaseSolution implements Solution {

    protected String inputFilename = "input.txt";

    public Solution run() throws Exception {
        System.out.println("Solution for " + getDayName());
        System.out.println("Part1: " + part1());
        System.out.println("Part2: " + part2());
        return this;
    }

    protected String getDayName() {
        // Something like "day01.Solution"
        String packageName = getClass().getName();
        // What we're after is the "day01" piece
        String[] bits = packageName.split("\\.");
        return bits[bits.length - 2];
    }

    /**
     * via https://stackoverflow.com/a/7603444
     */
    protected String getCurrentDir() {
        return System.getProperty("user.dir");
    }

    protected String getInputFilename() {
        return getCurrentDir() + "/src/" + getDayName() + "/" + inputFilename;
    }

    protected InputReader getInputReader() {
        return new InputReader(getInputFilename());
    }

    protected int[] getInputPositions() {
        InputReader reader = getInputReader();
        String line = reader.next();
        return IntcodeComputer.buildInputPositions(line);
    }

    protected BigInteger[] getInputPositionsBigInteger() {
        InputReader reader = getInputReader();
        String line = reader.next();
        return IntcodeComputer.buildInputPositionsBigInteger(line);
    }

    @Override
    public String part1() throws Exception {
        return null;
    }

    @Override
    public String part2() throws Exception {
        return null;
    }
}

@@ -38,16 +38,67 @@
 Integer;
+%0Aimport java.util.ArrayList;%0Aimport java.util.List;
 %0A%0Apublic
@@ -1076,32 +1076,365 @@
 name());%0A    %7D%0A%0A
+    protected List%3CString%3E getInputStrings() %7B%0A        List%3CString%3E inputStrings = new ArrayList%3C%3E();%0A        InputReader reader = getInputReader();%0A        String line = reader.next();%0A        while (line != null) %7B%0A            inputStrings.add(line);%0A            line = reader.next();%0A        %7D%0A        return inputStrings;%0A    %7D%0A%0A
     protected in

Add `getInputStrings()` to `BaseSolution`