Skip to content

Fixing code errors#2

Open
tonycondone wants to merge 4 commits intomainfrom
cursor/fixing-code-errors-a011
Open

Fixing code errors#2
tonycondone wants to merge 4 commits intomainfrom
cursor/fixing-code-errors-a011

Conversation

@tonycondone
Copy link
Owner

Implement comprehensive security and configuration fixes across the ModMaster Pro project, addressing hardcoded secrets, missing dependencies, and potential vulnerabilities.


Open in Cursor Open in Web

…rvices

Co-authored-by: tonykflex <tonykflex@gmail.com>
@cursor
Copy link

cursor bot commented Aug 27, 2025

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@tonycondone
Copy link
Owner Author

@cursoragent 2025-08-27T08:58:14.2336753Z ##[group]Run git config --local user.email "github-actions[bot]@users.noreply.github.com"
2025-08-27T08:58:14.2337321Z �[36;1mgit config --local user.email "github-actions[bot]@users.noreply.github.com"�[0m
2025-08-27T08:58:14.2337759Z �[36;1mgit config --local user.name "github-actions[bot]"�[0m
2025-08-27T08:58:14.2338344Z �[36;1m�[0m
2025-08-27T08:58:14.2338534Z �[36;1mgit add PROGRESS_REPORT.md�[0m
2025-08-27T08:58:14.2338761Z �[36;1m�[0m
2025-08-27T08:58:14.2338948Z �[36;1mif ! git diff --staged --quiet; then�[0m
2025-08-27T08:58:14.2339321Z �[36;1m git commit -m "🤖 Automated progress update - $(date '+%Y-%m-%d %H:%M')"�[0m
2025-08-27T08:58:14.2339683Z �[36;1m git push origin main�[0m
2025-08-27T08:58:14.2339900Z �[36;1melse�[0m
2025-08-27T08:58:14.2340109Z �[36;1m echo "No changes to commit"�[0m
2025-08-27T08:58:14.2340336Z �[36;1mfi�[0m
2025-08-27T08:58:14.2379062Z shell: /usr/bin/bash -e {0}
2025-08-27T08:58:14.2379288Z env:
2025-08-27T08:58:14.2379445Z NODE_VERSION: 18.x
2025-08-27T08:58:14.2379666Z PYTHON_VERSION: 3.11
2025-08-27T08:58:14.2379867Z PROJECT_NAME: ModMaster Pro
2025-08-27T08:58:14.2380135Z pythonLocation: /opt/hostedtoolcache/Python/3.11.13/x64
2025-08-27T08:58:14.2380524Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.13/x64/lib/pkgconfig
2025-08-27T08:58:14.2380906Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.13/x64
2025-08-27T08:58:14.2381238Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.13/x64
2025-08-27T08:58:14.2381579Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.13/x64
2025-08-27T08:58:14.2381910Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.13/x64/lib
2025-08-27T08:58:14.2382188Z ##[endgroup]
2025-08-27T08:58:14.2588259Z [detached HEAD a13cb5c] 🤖 Automated progress update - 2025-08-27 08:58
2025-08-27T08:58:14.2588764Z 1 file changed, 3 insertions(+), 3 deletions(-)
2025-08-27T08:58:14.2658394Z error: src refspec main does not match any
2025-08-27T08:58:14.2659372Z error: failed to push some refs to 'https://github.com/tonycondone/modmaster-pro'
2025-08-27T08:58:14.2681892Z ##[error]Process completed with exit code

Push errors (#main)

@cursor
Copy link

cursor bot commented Aug 27, 2025

I updated the GitHub Actions workflow to ensure it operates correctly across different branches. I modified the checkout process to fetch the specific branch the workflow is running on and adjusted the automated commit step to push changes back to that same branch, rather than always main.

  • I modified the actions/checkout@v4 step in .github/workflows/main.yml to include ref: ${{ github.head_ref || github.ref }}. This ensures the workflow checks out the correct branch, particularly when running on pull requests or feature branches.
  • I updated the automated progress update step in .github/workflows/main.yml to dynamically push changes to the current branch. I changed the push command from git push origin main to git push origin HEAD:${{ github.head_ref || github.ref_name }}, allowing automated commits to be pushed back to the branch where the workflow was triggered.

Open in Cursor Open in Web

Learn more about Cursor Agents

…dates

Co-authored-by: tonykflex <tonykflex@gmail.com>
@tonycondone tonycondone marked this pull request as ready for review August 27, 2025 09:20
@tonycondone
Copy link
Owner Author

@cursoragent in main repo : [task]
name = "Codebase Refactoring & Integration for Car Parts Scanner"
description = "Strictly read and analyze the existing codebase, finish all incomplete parts, then refactor it into a car parts scanner app using QR codes with modern UI libraries"
model = "gemini-3-pro"
fallback_model = "gemini-2.5-pro"
ui_reference = "https://github.com/tonycondone/hyprsettings"

[project_overview]
goal = "Refactor existing codebase into a car model scanner that uses QR codes to find specific parts, track modifications, and suggest upgrades"
approach = "DO NOT create new app - work with existing code and refactor/extend it"

[[phases]]
phase = 1
name = "Mandatory Codebase Analysis"
priority = "CRITICAL - MUST BE DONE FIRST"
strict_requirement = "Agent MUST NOT proceed to next phase until this is complete"

[[phases.steps]]
step = 1
action = "comprehensive_code_scan"
description = "Read EVERY file in the codebase recursively - no exceptions"
commands = [
"find . -type f -not -path '/node_modules/' -not -path '/.git/'",
"tree -L 5 -I 'node_modules|.git'",
"cat README* docs/* 2>/dev/null"
]
requirements = [
"Read ALL source files completely",
"Read ALL configuration files",
"Read ALL documentation",
"Map entire directory structure",
"Identify the tech stack being used",
"Understand the current purpose of the codebase"
]

[[phases.steps]]
step = 2
action = "catalog_existing_functionality"
description = "Document what the codebase currently does"
create_inventory = [
"List all existing components/modules",
"Document current features",
"Map data models and schemas",
"Identify API endpoints (if any)",
"Note UI components and pages",
"List utility functions",
"Document state management approach"
]

[[phases.steps]]
step = 3
action = "identify_incomplete_sections"
description = "Find ALL unfinished code that needs completion"
search_for = [
"TODO comments",
"FIXME comments",
"HACK comments",
"XXX markers",
"Empty function bodies",
"Placeholder implementations",
"Commented out code blocks",
"Console.log debugging statements",
"Throw 'Not implemented' errors",
"Mock data that should be real",
"Broken imports",
"Missing dependencies"
]
output = "Complete list of all incomplete items with file paths and line numbers"

[[phases.steps]]
step = 4
action = "analyze_architecture"
description = "Understand current architecture and patterns"
analyze = [
"Component architecture",
"Data flow patterns",
"State management approach",
"Routing structure",
"API/backend integration",
"Styling approach",
"Build configuration",
"Testing setup"
]

[[phases]]
phase = 2
name = "Complete All Unfinished Code"
priority = "CRITICAL"
requirement = "Finish EVERYTHING before refactoring"

[[phases.steps]]
step = 1
action = "resolve_all_todos"
description = "Implement every TODO/FIXME found in the codebase"
approach = """
For each TODO/FIXME:

  1. Read surrounding code to understand context
  2. Determine intended functionality
  3. Implement complete, production-ready solution
  4. Add proper error handling
  5. Follow existing code style
  6. Add comments explaining implementation
  7. Remove TODO marker once complete
    """

[[phases.steps]]
step = 2
action = "complete_empty_functions"
description = "Implement all empty or stub functions"
requirements = [
"No placeholder returns",
"Full logic implementation",
"Input validation",
"Error handling",
"Type safety (if TypeScript)",
"JSDoc comments"
]

[[phases.steps]]
step = 3
action = "fix_broken_features"
description = "Repair any broken or partially working features"
tasks = [
"Fix broken imports",
"Resolve dependency issues",
"Complete half-finished features",
"Remove debug code",
"Fix type errors",
"Resolve linting errors"
]

[[phases.steps]]
step = 4
action = "add_missing_tests"
description = "Write tests for untested code"
coverage_goal = "Minimum 70% coverage before proceeding"

[[phases]]
phase = 3
name = "Integrate Modern UI Libraries"
priority = "HIGH"
requirement = "Install and configure advanced UI/animation stack"

[[phases.steps]]
step = 1
action = "setup_tanstack_start"
description = "Migrate or integrate TanStack Start as the meta-framework"
tasks = [
"Install @tanstack/start and dependencies",
"Configure file-based routing if not present",
"Set up server-side rendering capabilities",
"Integrate with existing build configuration",
"Add TanStack Router for advanced routing",
"Implement data loading with TanStack Query",
"Configure streaming and suspense boundaries"
]
benefits = [
"Full-stack type safety",
"File-based routing",
"Server-side rendering",
"Streaming capabilities",
"Built-in data fetching"
]

[[phases.steps]]
step = 2
action = "integrate_nocta_ui"
description = "Add Nocta UI component library for modern design system"
installation = "npm install @noctaui/react"
tasks = [
"Install Nocta UI components",
"Configure theme to match Hyprland aesthetic",
"Replace or enhance existing components with Nocta UI",
"Customize component variants",
"Set up dark mode with Nocta theming",
"Create component wrapper utilities",
"Document component usage patterns"
]
components_to_use = [
"Buttons and inputs (for forms)",
"Cards and containers (for parts display)",
"Modals and dialogs (for details)",
"Navigation components",
"Data tables (for parts catalog)",
"Toast notifications",
"Loading states and skeletons"
]

[[phases.steps]]
step = 3
action = "setup_react_three_fiber"
description = "Add 3D visualization capabilities for car parts"
installation = """
npm install three @react-three/fiber @react-three/drei @react-three/postprocessing
"""
use_cases = [
"3D car model viewer after QR scan",
"Interactive 3D part visualizations",
"Before/after modification comparisons in 3D",
"Animated part installation guides",
"360° part inspection views",
"Exploded view diagrams for complex assemblies"
]
implementation = [
"Create Canvas wrapper component",
"Add OrbitControls for interaction",
"Implement lighting setup (ambient, directional, spotlights)",
"Create 3D model loader (GLB/GLTF format)",
"Add environment maps for realistic reflections",
"Implement part highlighting on hover",
"Add performance optimization (LOD, frustum culling)",
"Create fallback for low-end devices"
]

[[phases.steps]]
step = 4
action = "integrate_gsap"
description = "Add GSAP for advanced animations and micro-interactions"
installation = "npm install gsap"
animation_targets = [
"Page transitions with custom easing",
"Scanner overlay entrance/exit animations",
"Parts catalog scroll animations",
"Part card hover effects with 3D transforms",
"Timeline animations for modification history",
"Staggered list item reveals",
"Number counter animations for stats",
"Morphing SVG icons",
"Parallax scrolling effects",
"Draggable part comparison sliders"
]
gsap_plugins = [
"ScrollTrigger (for scroll-based animations)",
"Draggable (for interactive elements)",
"MotionPath (for complex animation paths)",
"ScrollSmoother (enhanced with Lenis)"
]

[[phases.steps]]
step = 5
action = "setup_lenis_smooth_scroll"
description = "Implement buttery-smooth scrolling with Lenis"
installation = "npm install @studio-freight/lenis"
implementation = [
"Initialize Lenis with custom configuration",
"Integrate with GSAP ScrollTrigger",
"Add smooth scroll anchors for navigation",
"Configure scroll speed and lerp",
"Add touch device optimization",
"Implement scroll-to-top functionality",
"Create custom scrollbar styling",
"Add horizontal scroll sections if needed"
]
configuration = """
const lenis = new Lenis({
duration: 1.2,
easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)),
smooth: true,
direction: 'vertical',
smoothTouch: false,
touchMultiplier: 2
})
"""

[[phases.steps]]
step = 6
action = "integrate_mdx"
description = "Add MDX for rich content pages and documentation"
installation = "npm install @mdx-js/rollup @mdx-js/react"
use_cases = [
"Car modification guides with interactive components",
"Part installation tutorials with embedded videos",
"Technical documentation for parts",
"Blog posts about car customization",
"Dynamic FAQ sections",
"Product comparison pages"
]
implementation = [
"Configure MDX in build tool (Vite/Webpack)",
"Create MDX component providers",
"Build custom MDX components (CodeBlock, Callout, VideoEmbed)",
"Add syntax highlighting for code blocks",
"Implement table of contents generation",
"Create templates for different content types",
"Add frontmatter support for metadata"
]

[[phases]]
phase = 4
name = "Refactor for Car Parts Scanner Functionality"
priority = "HIGH"
requirement = "Transform existing codebase, don't rebuild from scratch"

[[phases.steps]]
step = 1
action = "map_refactoring_strategy"
description = "Plan how to adapt existing code for new purpose"
strategy = """

  1. Identify reusable components/modules
  2. Determine what needs modification vs replacement
  3. Plan data model changes
  4. Design integration points for new features
  5. Maintain backward compatibility where possible
    """

[[phases.steps]]
step = 2
action = "integrate_qr_scanner"
description = "Add QR code scanning capability with modern UI"
integration_points = [
"Create scanner route with TanStack Start routing",
"Use Nocta UI modal for scanner interface",
"Add GSAP animations for scan success/failure feedback",
"Integrate with React Three Fiber for 3D car preview after scan",
"Store scanned data with TanStack Query"
]
implementation = [
"Install QR scanning library (html5-qrcode or jsQR)",
"Create animated scanner component with GSAP",
"Add camera permission handling",
"Implement QR decode logic",
"Transition to 3D car view on successful scan",
"Store scanned car model data"
]

[[phases.steps]]
step = 3
action = "extend_data_models"
description = "Refactor existing data models to support car parts data"
modifications = """
Extend or modify existing data structures to include:

  • Car models (manufacturer, model, year, trim, 3D model URLs)
  • Parts catalog (name, category, specs, compatibility, 3D assets)
  • Modifications tracking (installed parts, dates, notes, before/after)
  • Upgrade recommendations (suggested parts, ratings, 3D previews)

DO NOT delete existing models - extend them or add alongside them
"""

[[phases.steps]]
step = 4
action = "build_3d_car_viewer"
description = "Create immersive 3D car visualization"
features = [
"Load car 3D model based on QR scan result",
"Interactive camera controls (OrbitControls)",
"Part highlighting system (click to view details)",
"Animated part installation preview",
"Environment lighting with HDRI maps",
"Performance optimization with LOD",
"Fallback 2D images for unsupported devices"
]
component_structure = """

<Suspense fallback={}>






"""

[[phases.steps]]
step = 5
action = "create_parts_catalog_with_animations"
description = "Build animated parts browsing experience"
features = [
"Nocta UI data table for parts list",
"GSAP scroll animations with ScrollTrigger",
"Lenis smooth scrolling throughout catalog",
"3D part preview on hover (React Three Fiber)",
"Staggered card animations on load",
"Filter/search with animated transitions",
"Draggable comparison mode (GSAP Draggable)"
]

[[phases.steps]]
step = 6
action = "build_modification_tracker"
description = "Add mod tracking with timeline animations"
implementation = [
"Create timeline view with GSAP timeline animations",
"Use Nocta UI cards for modification entries",
"Add 3D before/after comparison viewer",
"Implement smooth scroll navigation (Lenis)",
"Add photo upload with preview",
"Create animated stats dashboard",
"Export timeline as shareable link"
]

[[phases.steps]]
step = 7
action = "create_upgrade_recommendations"
description = "Build intelligent recommendation system with rich UI"
features = [
"AI-powered compatibility checking",
"3D part previews in recommendation cards",
"Animated sorting and filtering (GSAP)",
"Interactive comparison slider (GSAP Draggable)",
"Smooth scroll to detailed view (Lenis)",
"Performance impact visualizations",
"Installation difficulty indicators with animations"
]

[[phases.steps]]
step = 8
action = "create_mdx_content_pages"
description = "Build rich content using MDX"
pages_to_create = [
"Installation guides for popular modifications",
"Car care tutorials with interactive components",
"Parts compatibility reference",
"Performance tuning guides",
"Community modification showcases",
"Technical specifications database"
]
custom_mdx_components = [
"PartEmbed - embeds 3D part viewer",
"ComparisonSlider - before/after comparisons",
"VideoTutorial - embedded video player",
"SpecTable - animated specification tables",
"InstallationSteps - step-by-step with progress",
"CompatibilityChecker - interactive tool"
]

[[phases]]
phase = 5
name = "Apply Hyprland UI Styling with Modern Stack"
priority = "MEDIUM"
reference = "https://github.com/tonycondone/hyprsettings"

[[phases.steps]]
step = 1
action = "analyze_hyprsettings_design"
description = "Study UI patterns from reference repository"
extract = [
"Color palette and theming approach",
"Component styling patterns",
"Animation styles",
"Layout structures",
"Typography scale",
"Spacing system",
"Glassmorphism techniques"
]

[[phases.steps]]
step = 2
action = "create_unified_design_system"
description = "Merge Hyprland aesthetic with modern UI libraries"
approach = """

  1. Configure Nocta UI theme with Hyprland colors
  2. Create custom GSAP animation presets matching Hyprland style
  3. Set up global styles for glassmorphism effects
  4. Configure React Three Fiber materials for consistent look
  5. Define typography system across all libraries
  6. Create reusable animation hooks
    """

[[phases.steps]]
step = 3
action = "implement_advanced_animations"
description = "Create cohesive animation system"
animation_library = [
{
name = "pageTransition",
library = "GSAP",
description = "Smooth page transitions with custom easing"
},
{
name = "cardHover",
library = "GSAP",
description = "3D card tilts and glow effects"
},
{
name = "scannerPulse",
library = "GSAP",
description = "Pulsing scanner overlay animation"
},
{
name = "partReveal",
library = "GSAP + ScrollTrigger",
description = "Scroll-triggered part reveals with stagger"
},
{
name = "3dModelEntrance",
library = "React Three Fiber + GSAP",
description = "Animated 3D model loading sequence"
},
{
name = "smoothScroll",
library = "Lenis + GSAP",
description = "Buttery smooth scroll with parallax"
},
{
name = "statsCounter",
library = "GSAP",
description = "Animated number counters for statistics"
},
{
name = "timelineProgress",
library = "GSAP",
description = "Animated progress indicators"
}
]

[[phases.steps]]
step = 4
action = "optimize_performance"
description = "Ensure smooth 60fps animations across all features"
optimizations = [
"Lazy load 3D models with Suspense",
"Use GSAP's will-change for GPU acceleration",
"Implement viewport-based animation triggers",
"Optimize Three.js render loop",
"Code-split heavy components with TanStack Start",
"Use Nocta UI's built-in optimization features",
"Implement progressive enhancement for animations",
"Add reduced motion preferences support"
]

[[phases]]
phase = 6
name = "Integration & Testing"
priority = "HIGH"

[[phases.steps]]
step = 1
action = "integrate_all_features"
description = "Connect all refactored parts seamlessly"
verify = [
"TanStack Start routing works with all pages",
"Nocta UI components themed consistently",
"React Three Fiber scenes load properly",
"GSAP animations trigger correctly",
"Lenis smooth scroll functions throughout",
"MDX pages render with custom components",
"QR scanner flows into 3D car view",
"Parts database connects to 3D previews",
"Mod tracker shows timeline animations",
"All features work with existing app structure"
]

[[phases.steps]]
step = 2
action = "comprehensive_testing"
description = "Test both old and new functionality"
test_coverage = [
"All existing features still work (regression testing)",
"QR scanner accuracy and performance",
"3D model loading and interaction",
"Animation performance (60fps target)",
"Smooth scroll on all devices",
"MDX content rendering",
"Nocta UI component integration",
"TanStack routing and data loading",
"Cross-browser compatibility",
"Mobile responsiveness",
"Accessibility (keyboard nav, screen readers)"
]

[[phases.steps]]
step = 3
action = "performance_audit"
description = "Ensure optimal performance metrics"
targets = [
"Lighthouse score > 90",
"First Contentful Paint < 1.5s",
"Time to Interactive < 3s",
"Smooth 60fps animations",
"3D model load time < 2s",
"Bundle size optimization",
"Code splitting effectiveness"
]

[[phases.steps]]
step = 4
action = "update_documentation"
description = "Document all changes and new features"
documents = [
"Update README with new tech stack",
"Document UI library integration",
"Create animation pattern guide",
"3D asset preparation guide",
"MDX content creation guide",
"Component API documentation",
"Performance optimization notes",
"User guide with screenshots/videos"
]

[configuration]
gemini_model = "gemini-3-pro"
use_highest_available_model = true
max_tokens = 8192
temperature = 0.5
strict_mode = true

[configuration.mandatory_rules]
must_follow = [
"READ ENTIRE CODEBASE FIRST - no exceptions",
"COMPLETE ALL UNFINISHED CODE before refactoring",
"REFACTOR existing code - DO NOT create new app from scratch",
"PRESERVE existing functionality - don't break what works",
"EXTEND existing patterns - don't introduce conflicting approaches",
"INTEGRATE modern UI libraries smoothly with existing code",
"OPTIMIZE for performance - target 60fps animations",
"MAINTAIN accessibility standards",
"DOCUMENT all significant changes"
]

[configuration.tech_stack]
meta_framework = "TanStack Start"
ui_library = "Nocta UI"
3d_graphics = "React Three Fiber + Three.js + Drei"
animations = "GSAP (with ScrollTrigger, Draggable plugins)"
smooth_scroll = "Lenis"
content = "MDX"
qr_scanning = "html5-qrcode or jsQR"
state_management = "TanStack Query + Router"
styling = "Tailwind CSS + Custom theme"
build_tool = "Vite"

[configuration.ui_requirements]
theme = "Dark mode with neon accents (Hyprland-inspired)"
animations = "Smooth 60fps with GSAP"
scroll = "Buttery smooth with Lenis"
3d = "Interactive 3D visualizations with R3F"
responsive = true
accessibility = "WCAG 2.1 AA compliant"
performance = "Lighthouse score > 90"

[configuration.animation_principles]
guidelines = [
"Use GSAP for all UI animations (consistency)",
"Integrate GSAP with Lenis for scroll animations",
"Use React Three Fiber for 3D animations",
"Keep animations under 300ms for UI feedback",
"Use easing functions for natural motion",
"Respect prefers-reduced-motion",
"GPU-accelerate with transform and opacity",
"Stagger group animations for visual interest"
]

[deliverables]
final_outputs = [
"Fully analyzed codebase report",
"All incomplete code finished",
"Refactored codebase with car parts scanner functionality",
"TanStack Start meta-framework integrated",
"Nocta UI components throughout",
"React Three Fiber 3D visualizations",
"GSAP animations on all interactions",
"Lenis smooth scrolling",
"MDX content pages with custom components",
"QR code scanning with 3D car preview",
"Animated parts catalog",
"3D modification tracker with timeline",
"Intelligent upgrade recommendations",
"Hyprland-style UI applied everywhere",
"Comprehensive test suite",
"Performance-optimized build",
"Complete documentation"
]

[success_criteria]
must_achieve = [
"Zero TODO/FIXME comments remaining",
"All existing features still functional",
"TanStack Start routing fully operational",
"Nocta UI components themed and working",
"3D car models load and render smoothly",
"GSAP animations running at 60fps",
"Lenis smooth scroll active on all pages",
"MDX pages rendering correctly",
"QR scanner identifies car models",
"Parts browsing with 3D previews works",
"Modification tracking functional",
"Upgrade recommendations accurate",
"UI matches Hyprland aesthetic",
"Tests pass with >70% coverage",
"Lighthouse score > 90",
"No console errors",
"App is production-ready"
]

[configuration.library_integration_notes]
tanstack_start = "Use for routing, SSR, and data loading. Replaces basic React Router if present."
nocta_ui = "Replace existing UI components gradually. Keep custom components that are working well."
react_three_fiber = "Add for 3D features only. Don't force 3D where 2D works better."
gsap = "Primary animation library. Replaces CSS animations for complex interactions."
lenis = "Enhances scroll experience. Works alongside existing scroll logic."
mdx = "Add for content-heavy pages. Don't convert all pages to MDX unnecessarily."

@cursor
Copy link

cursor bot commented Nov 23, 2025

You need to increase your spend limit or enable usage-based billing to run background agents. Go to Cursor

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.

2 participants