public static @NotNull UITheme loadTempTheme(@NotNull InputStream stream, @NotNull IconPathPatcher patcher) throws IOException {
    UITheme theme = UITheme.Companion.loadTempThemeFromJson(stream, ID);

    IconPathPatcher oldPatcher = theme.patcher;
    if (oldPatcher == null) {
      return theme;
    }

    theme.patcher = new IconPathPatcher() {
      @Override
      public @Nullable String patchPath(@NotNull String path, @Nullable ClassLoader classLoader) {
        String result = oldPatcher.patchPath(path, classLoader);
        return result == null ? null : patcher.patchPath(result, classLoader);
      }

      @Override
      public @Nullable ClassLoader getContextClassLoader(@NotNull String path, @Nullable ClassLoader originalClassLoader) {
        return patcher.getContextClassLoader(path, originalClassLoader);
      }
    };

    return theme;
  }
public static @NotNull UITheme loadTempTheme(@NotNull InputStream stream, @NotNull IconPathPatcher patcher)