public final ProcessHandler createProcess(final @Nullable Map<String, String> env) throws ExecutionException {
    final GeneralCommandLine commandLine = createCommandLine();
    if (env != null) {
      commandLine.getEnvironment().putAll(env);
    }
    PydevConsoleRunnerUtil.setCorrectStdOutEncoding(commandLine); // To support UTF-8 output

    ProcessHandler handler;
    var additionalData = mySdk.getSdkAdditionalData();
    if (additionalData instanceof PyRemoteSdkAdditionalDataMarker) {
      // Either legacy remote or target SDK
      if (additionalData instanceof PyRemoteSdkAdditionalData) {
        handler = executeLegacyRemoteProcess(commandLine, (PyRemoteSdkAdditionalData)additionalData);
      }
      else if (additionalData instanceof PyTargetAwareAdditionalData) {
        handler = executeTargetBasedProcess((PyTargetAwareAdditionalData)additionalData);
      }
      else {
        throw new IllegalArgumentException("Unknown additional data " + additionalData);
      }
    }
    else {
      handler = executeLegacyLocalProcess(commandLine);
    }
    return handler;
  }
public final ProcessHandler createProcess(final @Nullable Map<String, String> env)