@Contract("null, _, _ -> null; !null,_,_->!null")
  public static String toCanonicalPath(@Nullable String path, char separatorChar, boolean removeLastSlash) {
    return toCanonicalPath(path, separatorChar, removeLastSlash, null);
  }
@Contract("null, _, _ -> null; !null,_,_->!null")
  public static String toCanonicalPath(@Nullable String path, char separatorChar, boolean removeLastSlash)