import java.math.BigInteger;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.function.BiFunction;
import java.util.stream.Collectors;
@FunctionalInterface
interface VarargFunction {
public OUTPUT apply(List extends INPUT> input);
public default OUTPUT apply() {
return apply(Collections.emptyList());
}
public default OUTPUT apply(INPUT input) {
return apply(Collections.singletonList(input));
}
public default OUTPUT apply(INPUT input, INPUT input2) {
return apply(Arrays.asList(input, input2));
}
public default OUTPUT apply(INPUT input, INPUT input2, INPUT input3) {
return apply(Arrays.asList(input, input2, input3));
}
public default OUTPUT apply(Class type, Object... input) {
List i = Collections.checkedList(new ArrayList<>(), type);
for (Object object : input) {
i.add(type.cast(object));
}
return apply(i);
}
public default VarargFunction compose(
VarargFunction