if (debug) { System.err.println("Removing last " + key + " for " + p); }
    public FreerailsSerializable removeLast(KEY key, FreerailsPrincipal p) {        if (debug) {            System.err.println("Removing last " + key + " for " + p);        }        int size;        if (key.shared) {            size = lists[key.getKeyNumber()].size();        } else {            size = ((ArrayList)lists[key.getKeyNumber()].get(getPlayerIndex(p))).size();        }        int index = size - 1;        if (key.shared) {            return (FreerailsSerializable)lists[key.getKeyNumber()].remove(index);        }        return (FreerailsSerializable)((ArrayList)lists[key.getKeyNumber()].get(getPlayerIndex(                p))).remove(index);    }