public static @Nullable <T extends BeforeRunTask<?>> BeforeRunTaskProvider<T> getProvider(@NotNull Project project, Key<T> key) {
    Iterator<BeforeRunTaskProvider<BeforeRunTask<?>>> iterator = EP_NAME.asSequence(project).iterator();
    while (iterator.hasNext()) {
      BeforeRunTaskProvider<BeforeRunTask<?>> provider = iterator.next();
      if (provider.getId() == key) {
        //noinspection unchecked
        return (BeforeRunTaskProvider<T>)provider;
      }
    }
    return null;
  }
public static @Nullable <T extends BeforeRunTask<?>> BeforeRunTaskProvider<T> getProvider(@NotNull Project project, Key<T> key)