text: public ValueEval evaluate(ValueEval[] args, int srcRowIndex, int srcColumnIndex) {int nInnerArgs = args.length-1; if (nInnerArgs < 1) {return ErrorEval.VALUE_INVALID;}final Function innerFunc;int functionCode = 0;try {ValueEval ve = OperandResolver.getSingleValue(args[0], srcRowIndex, srcColumnIndex);functionCode = OperandResolver.coerceValueToInt(ve);innerFunc = findFunction(functionCode);} catch (EvaluationException e) {return e.getErrorEval();}final List<ValueEval> list = new ArrayList<>(Arrays.asList(args).subList(1, args.length));Iterator<ValueEval> it = list.iterator();while(it.hasNext()) {ValueEval eval = it.next();if(eval instanceof LazyRefEval) {LazyRefEval lazyRefEval = (LazyRefEval) eval;if(lazyRefEval.isSubTotal()) {it.remove();}if (functionCode > 100 && lazyRefEval.isRowHidden()) {it.remove();}}}return innerFunc.evaluate(list.toArray(new ValueEval[0]), srcRowIndex, srcColumnIndex);}