@Override
	public void restoreXml(XmlPullParser parser) throws XmlParseException {
		XmlElement elem = parser.start(ELEM_VARARGS.name());
		String firstPosString = elem.getAttribute(ATTRIB_FIRST.name());
		if (firstPosString != null) {
			firstPos = SpecXmlUtils.decodeInt(firstPosString);
		}
		String lastPosString = elem.getAttribute(ATTRIB_LAST.name());
		if (lastPosString != null) {
			lastPos = SpecXmlUtils.decodeInt(lastPosString);
		}
		parser.end(elem);
	}
A filter that selects a range of function parameters that are considered optional.
If the underlying function prototype takes variable arguments, the first n
parameters (as determined by PrototypePieces.firstVarArgSlot) are considered non-optional.
If additional data-types are provided beyond the initial n, these are considered optional.
By default this filter matches on all parameters in a prototype with variable arguments.
Optionally, it can filter on a range of parameters that are specified relative to the
first variable argument.
   {@code <varargs first="0"/>}   - matches optional arguments but not non-optional ones.
   {@code <varargs first="0" last="0"/>}  -  matches the first optional argument.
   {@code <varargs first="-1"/>} - matches the last non-optional argument and all optional ones.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/protorules/VarargsFilter.java