docs: @Pure
  	@SuppressWarnings({"unchecked", "rawtypes", "checkstyle:returncount", "checkstyle:npathcomplexity"})
  	private static int compareRawValues(Object arg0, Object arg1) {
  		if (arg0 == arg1) {
  			return 0;
  		}
  		if (arg0 == null) {
  			return Integer.MAX_VALUE;
  		}
  		if (arg1 == null) {
  			return Integer.MIN_VALUE;
  		}
  
  		if ((arg0 instanceof Number) && (arg1 instanceof Number)) {
  			return Double.compare(((Number) arg0).doubleValue(), ((Number) arg1).doubleValue());
  		}
  
  		try {
  			if (arg0 instanceof Comparable<?>) {
  				return ((Comparable) arg0).compareTo(arg1);
  			}
  		} catch (RuntimeException exception) {
  			//
  		}
  
  		try {
  			if (arg1 instanceof Comparable<?>) {
  				return -((Comparable) arg1).compareTo(arg0);
  			}
  		} catch (RuntimeException exception) {
  			//
  		}
  
  		if (arg0.equals(arg1)) {
  			return 0;
  		}
  
  		final String sv0 = arg0.toString();
  		final String sv1 = arg1.toString();
  
  		if (sv0 == sv1) {
  			return 0;
  		}
  		if (sv0 == null) {
  			return Integer.MAX_VALUE;
  		}
  		if (sv1 == null) {
  			return Integer.MIN_VALUE;
  		}
  
  		return sv0.compareTo(sv1);
  	}