private static <T> Set<T> getOrCreate(Map<String, Set<T>> map, String key) {
    return map.computeIfAbsent(key, k -> new TreeSet<>());
  }
private static <T> Set<T> getOrCreate(Map<String, Set<T>> map, String key)