docs: public boolean matchesWithMask(long lowerValue, long upperValue, long mask) {
  		if(lowerValue == upperValue) {
  			return matchesWithMask(lowerValue, mask);
  		}
  		if(!isMultiple()) {
  			//we know lowerValue and upperValue are not the same, so impossible to match those two values with a single value
  			return false;
  		}
  		long thisValue = getDivisionValue();
  		long thisUpperValue = getUpperDivisionValue();
  		if(!isMaskCompatibleWithRange(thisValue, thisUpperValue, mask, getMaxValue())) {
  			return false;
  		}
  		return lowerValue == (thisValue & mask) && upperValue == (thisUpperValue & mask);
  	}