@NotNull
  public static Map<String, String> parseOptions(String[] args) {
    Map<String, String> options = new HashMap<>();
    for (int i = 0, length = args.length; i < length; i++) {
      String arg = args[i];
      if (!isOptionName(arg)) continue;

      if (requireValue(arg) && (i + 1) < length && !isOptionName(args[i + 1])) {
        options.put(arg, args[i + 1]);
      }
      else {
        options.put(arg, null);
      }
    }
    return options;
  }
@NotNull
  public static Map<String, String> parseOptions(String[] args)