Skip to content

fix: remove duplicate nav bar in ScummVM packers + align style with D…#18

Open
aciderix wants to merge 1 commit into
mainfrom
feat/scummvm-fr-unified-nav
Open

fix: remove duplicate nav bar in ScummVM packers + align style with D…#18
aciderix wants to merge 1 commit into
mainfrom
feat/scummvm-fr-unified-nav

Conversation

@aciderix

@aciderix aciderix commented Mar 6, 2026

Copy link
Copy Markdown
Owner

…OS packer

Summary by Sourcery

Refresh the ScummVM packer HTML tools in both English and French to remove duplicated navigation and align their layout, styling, and progress/download UI with the DOS packer.

Bug Fixes:

  • Remove the duplicated top navigation bar in the ScummVM packer pages by integrating navigation into the main container structure.

Enhancements:

  • Redesign the ScummVM packer pages with a unified container/header layout, updated typography, and improved tabbed navigation styling.
  • Refine the drag-and-drop file input, file metadata display, and engine list cards for clearer presentation and better responsiveness across devices.
  • Modernize the progress and download sections, including a slimmer progress bar and consolidated download summary text, for a cleaner workflow.
  • Standardize CSS utility classes, scrollbars, and form controls between the English and French ScummVM packer pages to match the DOS packer experience.

Summary by CodeRabbit

  • Documentation

    • Refreshed ScummVM packer tool documentation pages (English and French versions).
  • Style

    • Redesigned UI with improved header, navigation tabs, and form layouts.
    • Enhanced progress visualization with upgraded progress tracking display.
    • Added error banner component for better error messaging.
    • Improved responsive design for smaller screens.

@sourcery-ai

sourcery-ai Bot commented Mar 6, 2026

Copy link
Copy Markdown

Reviewer's Guide

Refactors the ScummVM packer EN/FR HTML pages to remove a duplicated top navigation bar and align their layout, styling, and progress/download UI with the existing DOS packer design while preserving existing functionality.

File-Level Changes

Change Details Files
Unifies layout and typography with a new container, header, and footer while removing the old hero section and duplicate nav bar.
  • Introduces a global CSS reset, updated font stack, smooth scrolling, and overflow handling on body
  • Replaces the old hero-based title section with a new gradient-styled header (.header, .logo, .subtitle) and adds a .footer
  • Wraps the entire page content in a single .container and moves the top-nav inside it, eliminating the extra/duplicate nav bar markup
docs/pack_scummvm_game_en.html
docs/pack_scummvm_game_fr.html
Modernizes the card, tab, and form UI to match the DOS packer, including buttons, progress bar, and download section.
  • Reworks .tabs and .tab-btn styling to use pill-style buttons with gradient active states and fade-in tab content animation
  • Standardizes cards using .card and .card-title with icons instead of step-number h2 headings
  • Introduces .form-group/.form-row and .form-input/.form-select/.form-label in place of the previous option-row/option-group structure
  • Updates the progress section to use .progress-bar-track/.progress-bar-fill and a monospace .progress-log list instead of .progress-bar-outer/.progress-bar-inner/.progress-steps
  • Simplifies the download section into a single .download-btn plus .download-info instead of the previous download card with multiple metadata spans
docs/pack_scummvm_game_en.html
docs/pack_scummvm_game_fr.html
Improves the dropzone and file info UX and aligns their class names with the new design.
  • Redesigns .dropzone to include hover glow, success state (.has-file), explicit .dropzone-icon/.dropzone-text/.dropzone-hint, and a dedicated .dropzone-btn instead of implicit clickable area
  • Refactors .file-info structure into .file-info-row entries with .label/.value classes, replacing the previous .meta/.meta-item/.lbl/.val layout
  • Updates JavaScript to set engine status classes to .value detected/unknown instead of .val detected/unknown and to target the new progress bar id (#progress-fill)
  • Keeps the same folder input field but positions it after the visual button, consistent with new markup and accessibility
docs/pack_scummvm_game_en.html
docs/pack_scummvm_game_fr.html
Updates embedded loader template progress bar markup to match new CSS naming.
  • Changes the loading template’s progress bar markup from a container .progress-bar with inner .progress-fill to a nested .progress-fill wrapper with inner #progress element
  • Ensures consistency between the inline loader HTML and the new progress bar styling logic used elsewhere in the packer pages
docs/pack_scummvm_game_en.html
docs/pack_scummvm_game_fr.html
Adjusts JavaScript download completion handling to use the simplified download section UI.
  • Removes population of now-removed #dl-engine, #dl-title, and #dl-size spans in the download card
  • Sets the new #download-info text to include engine, game title, packed size, and offline status in a single summary line while preserving the download button behavior
docs/pack_scummvm_game_en.html
docs/pack_scummvm_game_fr.html

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai

coderabbitai Bot commented Mar 6, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Comprehensive UI redesign of ScummVM packer HTML pages (English and French versions) with CSS reset, new header layout, reorganized navigation, refactored card and form components, redesigned dropzone and progress indicators, and updated JavaScript logic to align with new DOM structure. Core functionality preserved.

Changes

Cohort / File(s) Summary
ScummVM Packer UI Redesign
docs/pack_scummvm_game_en.html, docs/pack_scummvm_game_fr.html
Complete CSS reset and base styling overhaul. Introduced dedicated header section with logo/subtitle, replaced navigation with responsive card-like tabs, refactored card/section styling with icons and uppercase labels, redesigned dropzone with button, transformed file-info to row-based layout with collapsible list, consolidated form controls into unified layouts, redesigned progress bar with track/fill and log area, reworked engine grid with hover states, added error-banner and footer components. Updated responsive behavior for screens under 600px. Modified JavaScript to target new DOM IDs/classes (e.g., progress-bar → progress-fill, val → value, file-info-row structure) and adjusted engine detection, file list visibility, and progress tracking logic.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 A rabbit hops through the code,
Finding buttons and grids on the road,
New colors and forms, so divine,
The packer now shines—redesigned!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main changes: removing duplicate navigation bars and aligning styles across ScummVM packer files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/scummvm-fr-unified-nav

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 3 issues, and left some high level feedback:

  • The new dropzone markup removes the CSS that made the hidden file input cover the whole area (position:absolute; inset:0; opacity:0;), and the added button doesn’t toggle the input, so the native file input may now be visible and clicking the drop area or button won’t behave as before—consider restoring the hidden-overlay input or wiring the button’s click to trigger folder-input.click() and explicitly hiding the input.
  • In the embedded game template, the outer loading progress bar container was changed from class="progress-bar" to class="progress-fill", which likely breaks any styling or JS that expects a distinct track/container element; this looks like a typo and should probably remain a separate container class.
  • The progress step styling now uses .progress-log .step.* selectors, but the generated <li> elements don’t have a step class and setStepActive/setStepDone toggle only active/done/error on the <li> tags, so the CSS will never apply—either add a step class to the <li> elements or change the selectors to target .progress-log li.active/.done/.error.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The new dropzone markup removes the CSS that made the hidden file input cover the whole area (`position:absolute; inset:0; opacity:0;`), and the added button doesn’t toggle the input, so the native file input may now be visible and clicking the drop area or button won’t behave as before—consider restoring the hidden-overlay input or wiring the button’s click to trigger `folder-input.click()` and explicitly hiding the input.
- In the embedded game template, the outer loading progress bar container was changed from `class="progress-bar"` to `class="progress-fill"`, which likely breaks any styling or JS that expects a distinct track/container element; this looks like a typo and should probably remain a separate container class.
- The progress step styling now uses `.progress-log .step.*` selectors, but the generated `<li>` elements don’t have a `step` class and `setStepActive/setStepDone` toggle only `active/done/error` on the `<li>` tags, so the CSS will never apply—either add a `step` class to the `<li>` elements or change the selectors to target `.progress-log li.active/.done/.error`.

## Individual Comments

### Comment 1
<location path="docs/pack_scummvm_game_fr.html" line_range="1306" />
<code_context>
     <div id="loading">
         <h1>🎮 {{GAME_TITLE}}</h1>
-        <div class="progress-bar"><div class="progress-fill" id="progress"></div></div>
+        <div class="progress-fill"><div class="progress-fill" id="progress"></div></div>
         <div class="status" id="status">Initializing...</div>
         <div class="detail" id="detail"></div>
</code_context>
<issue_to_address>
**issue (bug_risk):** Same progress bar structure issue in the French template as in the English one.

This template should match the original loader structure: keep `progress-bar` on the outer div and `progress-fill` only on the inner div so existing CSS continues to apply correctly.
</issue_to_address>

### Comment 2
<location path="docs/pack_scummvm_game_en.html" line_range="238-120" />
<code_context>
-.dropzone .sublabel { font-size: 0.85em; color: var(--text-dim); }
-.dropzone input[type="file"] {
-    position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%;
+.dropzone-btn:hover {
+  border-color: var(--accent);
+  color: var(--accent);
 }
</code_context>
<issue_to_address>
**suggestion (bug_risk):** The hidden file input in the dropzone is no longer visually suppressed and may show alongside the custom button.

Previously, the file input was absolutely positioned and transparent so the native control was hidden while the dropzone remained clickable. With that styling removed, the browser’s default file input may now render alongside the custom button. If you’re triggering `folderInput.click()` programmatically, add styling to hide the input again (e.g. `display: none` or `position: absolute; opacity: 0;`) to prevent visual overlap with the custom UI.

Suggested implementation:

```
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

/* Visually hide the native file input used for the folder picker while keeping it usable via JS */
.dropzone input[type="file"],
#folderInput {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: 0;
  border: 0;
  clip: rect(0, 0, 0, 0);
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

html { scroll-behavior: smooth; }

```

1. Ensure the file input used for folder selection either:
   - Has `id="folderInput"`, or
   - Is inside the `.dropzone` container so it matches `.dropzone input[type="file"]`.
2. Confirm that the JavaScript still calls `folderInput.click()` (or the correct element reference) so the hidden control is activated programmatically.
</issue_to_address>

### Comment 3
<location path="docs/pack_scummvm_game_fr.html" line_range="1660" />
<code_context>
         const dlBtn = document.getElementById('download-btn');
         dlBtn.href = url;
         dlBtn.download = outputFilename;
+        document.getElementById('download-info').textContent = `🎮 ${engine} — 📝 ${gameTitle} — 📦 ${formatBytes(blob.size)} — ✈️ 100% offline`;

         setStepDone(8);
</code_context>
<issue_to_address>
**nitpick:** Downloaded file info string in the French page is not localized (“100% offline”).

The `download-info` text on the French page still ends with `100% offline`, which is inconsistent with the localized UI. Consider translating this fragment (for example, to `100% hors ligne`).
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

<div id="loading">
<h1>🎮 {{GAME_TITLE}}</h1>
<div class="progress-bar"><div class="progress-fill" id="progress"></div></div>
<div class="progress-fill"><div class="progress-fill" id="progress"></div></div>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (bug_risk): Same progress bar structure issue in the French template as in the English one.

This template should match the original loader structure: keep progress-bar on the outer div and progress-fill only on the inner div so existing CSS continues to apply correctly.


/* ── Tabs ── */
.tabs { display: flex; gap: 4px; margin-bottom: 24px; border-bottom: 1px solid var(--border); }
/* Navigation Tabs */

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (bug_risk): The hidden file input in the dropzone is no longer visually suppressed and may show alongside the custom button.

Previously, the file input was absolutely positioned and transparent so the native control was hidden while the dropzone remained clickable. With that styling removed, the browser’s default file input may now render alongside the custom button. If you’re triggering folderInput.click() programmatically, add styling to hide the input again (e.g. display: none or position: absolute; opacity: 0;) to prevent visual overlap with the custom UI.

Suggested implementation:

  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

/* Visually hide the native file input used for the folder picker while keeping it usable via JS */
.dropzone input[type="file"],
#folderInput {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: 0;
  border: 0;
  clip: rect(0, 0, 0, 0);
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

html { scroll-behavior: smooth; }

  1. Ensure the file input used for folder selection either:
    • Has id="folderInput", or
    • Is inside the .dropzone container so it matches .dropzone input[type="file"].
  2. Confirm that the JavaScript still calls folderInput.click() (or the correct element reference) so the hidden control is activated programmatically.

const dlBtn = document.getElementById('download-btn');
dlBtn.href = url;
dlBtn.download = outputFilename;
document.getElementById('download-info').textContent = `🎮 ${engine} — 📝 ${gameTitle} — 📦 ${formatBytes(blob.size)} — ✈️ 100% offline`;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick: Downloaded file info string in the French page is not localized (“100% offline”).

The download-info text on the French page still ends with 100% offline, which is inconsistent with the localized UI. Consider translating this fragment (for example, to 100% hors ligne).

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/pack_scummvm_game_fr.html (1)

1666-1668: ⚠️ Potential issue | 🟡 Minor

Localization inconsistency: Error message uses English.

Line 1667 uses 'Error: ' instead of the French equivalent. This breaks the otherwise consistent French localization in this file.

🌐 Proposed fix
     } catch (err) {
-        setStepError(currentStep, 'Error: ' + err.message);
+        setStepError(currentStep, 'Erreur : ' + err.message);
         console.error(err);
     }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/pack_scummvm_game_fr.html` around lines 1666 - 1668, The error message
string is in English; update the call to setStepError so the prefix uses the
French localization (replace "Error: " with "Erreur : ") when building the
message from err.message (the call to setStepError(currentStep, 'Error: ' +
err.message)); keep using currentStep and err.message so the error content is
preserved and consistent with the French file.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/pack_scummvm_game_en.html`:
- Around line 1304-1309: The generated HTML uses the wrong class for the outer
progress container (it currently emits <div class="progress-fill">) which breaks
the CSS; update the template in packers/scummvm/pack_scummvm_game.py (the HTML
generation code around the loading block / the function/template that emits the
div with id="loading") so the outer container uses class="progress-bar" and the
inner remains <div class="progress-fill" id="progress"></div>, preserving the id
and inner structure expected by the stylesheet.

In `@docs/pack_scummvm_game_fr.html`:
- Around line 1304-1309: The progress bar outer element in the loading block
uses the wrong class name which breaks styling; change the outer div with
class="progress-fill" (the container surrounding the inner div with
id="progress") to class="progress-bar" so the structure matches the English
version and the CSS targets the correct element (look for the loading section
containing id="loading" and the inner div id="progress").

---

Outside diff comments:
In `@docs/pack_scummvm_game_fr.html`:
- Around line 1666-1668: The error message string is in English; update the call
to setStepError so the prefix uses the French localization (replace "Error: "
with "Erreur : ") when building the message from err.message (the call to
setStepError(currentStep, 'Error: ' + err.message)); keep using currentStep and
err.message so the error content is preserved and consistent with the French
file.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8f34339a-3e76-4008-ba04-2ed82751c0aa

📥 Commits

Reviewing files that changed from the base of the PR and between 9ab4f27 and 3e1f4b3.

📒 Files selected for processing (2)
  • docs/pack_scummvm_game_en.html
  • docs/pack_scummvm_game_fr.html

Comment on lines 1304 to 1309
<div id="loading">
<h1>🎮 {{GAME_TITLE}}</h1>
<div class="progress-bar"><div class="progress-fill" id="progress"></div></div>
<div class="progress-fill"><div class="progress-fill" id="progress"></div></div>
<div class="status" id="status">Initializing...</div>
<div class="detail" id="detail"></div>
</div>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Critical: Incorrect progress bar HTML structure in generated games.

The outer <div> at line 1306 uses class="progress-fill" but should be class="progress-bar". The CSS at lines 1293-1294 expects .progress-bar as the outer container (with width/height/background) and .progress-fill as the inner element. This mismatch causes the progress bar to be completely unstyled in generated game files.

As indicated in the context snippet from packers/scummvm/pack_scummvm_game.py:411-418, the correct structure is <div class="progress-bar"><div class="progress-fill" id="progress"></div></div>.

🐛 Proposed fix
     <div id="loading">
         <h1>🎮 {{GAME_TITLE}}</h1>
-        <div class="progress-fill"><div class="progress-fill" id="progress"></div></div>
+        <div class="progress-bar"><div class="progress-fill" id="progress"></div></div>
         <div class="status" id="status">Initializing...</div>
         <div class="detail" id="detail"></div>
     </div>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<div id="loading">
<h1>🎮 {{GAME_TITLE}}</h1>
<div class="progress-bar"><div class="progress-fill" id="progress"></div></div>
<div class="progress-fill"><div class="progress-fill" id="progress"></div></div>
<div class="status" id="status">Initializing...</div>
<div class="detail" id="detail"></div>
</div>
<div id="loading">
<h1>🎮 {{GAME_TITLE}}</h1>
<div class="progress-bar"><div class="progress-fill" id="progress"></div></div>
<div class="status" id="status">Initializing...</div>
<div class="detail" id="detail"></div>
</div>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/pack_scummvm_game_en.html` around lines 1304 - 1309, The generated HTML
uses the wrong class for the outer progress container (it currently emits <div
class="progress-fill">) which breaks the CSS; update the template in
packers/scummvm/pack_scummvm_game.py (the HTML generation code around the
loading block / the function/template that emits the div with id="loading") so
the outer container uses class="progress-bar" and the inner remains <div
class="progress-fill" id="progress"></div>, preserving the id and inner
structure expected by the stylesheet.

Comment on lines 1304 to 1309
<div id="loading">
<h1>🎮 {{GAME_TITLE}}</h1>
<div class="progress-bar"><div class="progress-fill" id="progress"></div></div>
<div class="progress-fill"><div class="progress-fill" id="progress"></div></div>
<div class="status" id="status">Initialisation...</div>
<div class="detail" id="detail"></div>
</div>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Critical: Same progress bar HTML structure bug as English version.

Identical issue to the English file: the outer <div> uses class="progress-fill" instead of class="progress-bar", breaking the progress bar styling in generated French game files.

🐛 Proposed fix
     <div id="loading">
         <h1>🎮 {{GAME_TITLE}}</h1>
-        <div class="progress-fill"><div class="progress-fill" id="progress"></div></div>
+        <div class="progress-bar"><div class="progress-fill" id="progress"></div></div>
         <div class="status" id="status">Initialisation...</div>
         <div class="detail" id="detail"></div>
     </div>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<div id="loading">
<h1>🎮 {{GAME_TITLE}}</h1>
<div class="progress-bar"><div class="progress-fill" id="progress"></div></div>
<div class="progress-fill"><div class="progress-fill" id="progress"></div></div>
<div class="status" id="status">Initialisation...</div>
<div class="detail" id="detail"></div>
</div>
<div id="loading">
<h1>🎮 {{GAME_TITLE}}</h1>
<div class="progress-bar"><div class="progress-fill" id="progress"></div></div>
<div class="status" id="status">Initialisation...</div>
<div class="detail" id="detail"></div>
</div>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/pack_scummvm_game_fr.html` around lines 1304 - 1309, The progress bar
outer element in the loading block uses the wrong class name which breaks
styling; change the outer div with class="progress-fill" (the container
surrounding the inner div with id="progress") to class="progress-bar" so the
structure matches the English version and the CSS targets the correct element
(look for the loading section containing id="loading" and the inner div
id="progress").

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant