static @NotNull List<WslDistributionAndVersion> parseWslVerboseListOutput(@NotNull List<String> stdoutLines)
    throws IllegalStateException {
    if (stdoutLines.isEmpty()) {
      throw new IllegalStateException("[wsl -l -v] parsing error: stdout is empty");
    }

    // skip the first line: "NAME  STATE  VERSION"
    stdoutLines = ContainerUtil.subList(stdoutLines, 1);
    final List<WslDistributionAndVersion> result = new ArrayList<>(stdoutLines.size());

    for (String l : stdoutLines) {
      List<String> words = StringUtil.split(l, " ");
      if ("*".equals(ContainerUtil.getFirstItem(words))) {
        words = ContainerUtil.subList(words, 1);
      }

      final String distributionName = ContainerUtil.getFirstItem(words);
      if (StringUtil.isEmpty(distributionName)) {
        throw new IllegalStateException("[wsl -l -v] parsing error: malformed distribution name" +
                                        "\nline: " + l +
                                        "\nstdout: " + StringUtil.join(stdoutLines, "\n"));
      }
      final int version = StringUtil.parseInt(ContainerUtil.getLastItem(words), -1);
      if (version == -1) {
        throw new IllegalStateException("[wsl -l -v] parsing error: malformed version" +
                                        "\nline: " + l +
                                        "\nstdout: " + StringUtil.join(stdoutLines, "\n"));
      }
      if (!INTERNAL_DISTRIBUTIONS.contains(distributionName)) {
        result.add(new WslDistributionAndVersion(distributionName, version));
      }
    }
    return result;
  }
static @NotNull List<WslDistributionAndVersion> parseWslVerboseListOutput(@NotNull List<String> stdoutLines)