diff --git a/CLEANUP_REPORT.md b/CLEANUP_REPORT.md new file mode 100644 index 0000000..944e269 --- /dev/null +++ b/CLEANUP_REPORT.md @@ -0,0 +1,283 @@ +# Code Cleanup Report - SkyWatch + +Generated: Phase 4 of Feature Implementation + +## Summary +This report identifies areas for potential cleanup in the SkyWatch codebase after implementing 11 new features. + +--- + +## 1. Console Statements (Debugging) + +### Recommendation: Remove or wrap in DEBUG flag + +**Total Found:** 100+ console.log/error statements across the codebase + +### Server Files (server/): +- **server/index.js:** ~40 console statements + - Lines 74, 80: Timezone offset debugging + - Lines 728, 736, 741, 744, 772, 775, 778, 799, 801, 810: History API debugging + - Lines 864, 869, 872, 900: SLA query debugging + - Lines 1483-1484: Server startup messages (KEEP THESE) + - Recommendation: Remove timezone/query debug logs, keep server startup and critical errors + +- **server/database.js:** ~20 console statements + - Lines 143, 146, 176, 179, 204, 207, 213, 216, 222, 225, 231, 234, 240, 243: Migration confirmations + - Recommendation: Keep these for database migration tracking + +- **server/monitorService.js:** 1 console.error (line 686) + - Recommendation: Keep error logging + +- **server/notificationService.js:** ~10 console.log statements + - Lines 54, 60, 66, 81, 85, 87, 172: Alert logic debugging + - Recommendation: Keep critical alerts, remove verbose debugging + +### Client Files (client/src/): +- **client/src/App.js:** ~20 console.error statements + - All are error handlers in catch blocks + - Recommendation: Keep all - useful for user troubleshooting + +- **client/src/History.js:** 5 console statements + - Lines 37, 67: API response debugging + - Line 131: Chart data debugging + - Recommendation: Remove debug logs (37, 67, 131), keep error handling (72, 60) + +- **client/src/SettingsWizard.js:** 2 console.error + - Recommendation: Keep error logging + +- **client/src/ErrorBoundary.js:** 1 console.error (line 16) + - Recommendation: Keep error logging + +- **client/src/SLA.js:** 1 console.error (line 28) + - Recommendation: Keep error logging + +### Action Items: +``` +REMOVE (Non-critical debug logs): +- server/index.js: Lines 74, 80, 728, 736, 741, 744, 772, 775, 778, 799, 801, 810, 864, 869, 872, 900 +- server/notificationService.js: Lines 81, 85, 87 (verbose email debugging) +- client/src/History.js: Lines 37, 67, 131 + +KEEP (Critical logs): +- All console.error statements in error handlers +- server/index.js: Lines 1483-1484 (server startup) +- server/database.js: All migration logs +- server/notificationService.js: Lines 54, 60, 66, 172 (alert skip reasons) +``` + +--- + +## 2. Commented Code + +### Analysis: Minimal commented code found +- client/src/History.js line 129: Helpful comment explaining server-side averaging +- Build files contain source maps (expected) + +**Recommendation:** No action needed - comments are descriptive, not dead code + +--- + +## 3. Unused Dependencies + +### Server (package.json) +✅ **All dependencies are used:** +- express: ✓ Used in server/index.js +- cors: ✓ Used in server/index.js +- better-sqlite3: ✓ Used in server/database.js +- node-cron: ✓ Used in server/scheduler.js +- axios: ✓ Used in server/monitorService.js +- nodemailer: ✓ Used in server/notificationService.js +- dotenv: ✓ Used in server/index.js +- ping: ✓ Used in server/monitorService.js (line 252) +- ws: ✓ Used in server/index.js (WebSocket server) + +### Client (client/package.json) +⚠️ **Potentially unused dependencies:** + +1. **web-vitals** (^2.1.4) + - Used in: client/src/reportWebVitals.js + - Called in: client/src/index.js line 20 as `reportWebVitals()` + - Purpose: React performance monitoring + - **Recommendation:** KEEP if you plan to monitor performance, REMOVE if not needed + +2. **@testing-library/** packages (^10.4.1, ^6.9.1, ^16.3.0) + - Used in: client/src/setupTests.js, client/src/App.test.js + - Purpose: React testing utilities + - **Recommendation:** KEEP if you plan to write tests, REMOVE if not running tests + +3. **@testing-library/user-event** (^13.5.0) + - Not imported anywhere in src/ + - **Recommendation:** REMOVE (unused testing utility) + +4. **skywatch** (file:..) + - Self-reference to parent package + - **Recommendation:** REMOVE (circular dependency, not needed) + +**Action Items:** +```bash +# Optional removals (if not using tests/vitals): +cd client +npm uninstall web-vitals @testing-library/user-event skywatch + +# If removing web-vitals, also delete: +# - client/src/reportWebVitals.js +# - import/call in client/src/index.js lines 6, 20 + +# If removing testing libraries, also delete: +# - client/src/setupTests.js +# - client/src/App.test.js +``` + +--- + +## 4. Unused Files + +### Server +✅ **All files are actively used:** +- cache.js: Used in server/index.js +- database.js: Used in server/index.js, scheduler.js, monitorService.js, notificationService.js +- index.js: Main server entry point +- monitorService.js: Used in server/scheduler.js +- notificationService.js: Used in server/monitorService.js +- scheduler.js: Used in server/index.js + +### Client +⚠️ **Potentially unused files:** + +1. **client/src/reportWebVitals.js** + - Purpose: Performance monitoring + - Used: Yes (called in index.js) + - **Recommendation:** Remove if not analyzing metrics + +2. **client/src/setupTests.js** + - Purpose: Jest/testing configuration + - Used: Only if running tests + - **Recommendation:** Remove if not writing tests + +3. **client/src/App.test.js** + - Purpose: Basic React component test + - Used: Only if running `npm test` + - **Recommendation:** Remove if not writing tests + +--- + +## 5. Dead Code Patterns + +### Analysis: No major dead code found + +**Checked for:** +- ✅ Unreachable functions +- ✅ Unused exports +- ✅ Orphaned modules +- ✅ Duplicate logic + +**Result:** All implemented features are connected and functional + +--- + +## 6. Optimization Opportunities + +### 1. Consolidate console.log debugging +**Current:** Scattered debug logs throughout server/index.js +**Improvement:** Add DEBUG environment variable flag +```javascript +const DEBUG = process.env.DEBUG === 'true'; +if (DEBUG) console.log('...'); +``` + +### 2. Consider log levels +**Current:** Mix of console.log and console.error +**Improvement:** Use logging library (winston, pino) for structured logging +```bash +npm install winston +``` + +### 3. Frontend error reporting +**Current:** Console errors only +**Improvement:** Add error reporting service (Sentry, LogRocket) for production + +--- + +## Cleanup Priority + +### High Priority (Do Now): +1. ✅ Remove debugging console.log statements from: + - server/index.js (timezone, history, SLA debug lines) + - server/notificationService.js (verbose email logs) + - client/src/History.js (API debug logs) + +### Medium Priority (Consider): +2. Remove unused client dependencies if not using: + - `@testing-library/user-event` + - `skywatch` (circular dependency) + - Testing files if not writing tests + - web-vitals if not monitoring performance + +### Low Priority (Future Improvement): +3. Add structured logging with log levels +4. Add DEBUG environment flag +5. Consider production error monitoring + +--- + +## Implementation Commands + +### Immediate Cleanup (Non-Breaking): +```bash +# Remove debug console logs from server +# (Apply file edits as listed in Action Items section above) + +# Remove unused client dependencies +cd client +npm uninstall @testing-library/user-event skywatch +``` + +### Optional Cleanup (If not using tests/vitals): +```bash +cd client +npm uninstall web-vitals @testing-library/dom @testing-library/jest-dom @testing-library/react +rm src/reportWebVitals.js src/setupTests.js src/App.test.js +# Then remove imports from src/index.js +``` + +--- + +## Validation Checklist + +After cleanup, verify: +- [ ] Server starts without errors: `npm start` +- [ ] Client builds successfully: `cd client && npm run build` +- [ ] All features still work: + - [ ] CSV import/export + - [ ] Data retention settings + - [ ] WebSocket real-time updates + - [ ] Mobile responsive design + - [ ] Anomaly detection + - [ ] Alert rules (consecutive failures) + - [ ] Maintenance windows + - [ ] Resource tagging + - [ ] Transaction checks + - [ ] Trend graphs + +--- + +## Files Requiring Changes + +### High Priority Edits: +1. `server/index.js` - Remove 16 debug console.log lines +2. `server/notificationService.js` - Remove 3 verbose email logs +3. `client/src/History.js` - Remove 3 debug console.log lines +4. `client/package.json` - Remove 2 unused dependencies + +### Optional Edits (if removing tests/vitals): +5. `client/src/index.js` - Remove reportWebVitals import/call +6. Delete 3 client files: reportWebVitals.js, setupTests.js, App.test.js +7. `client/package.json` - Remove testing dependencies + +--- + +**Total Impact:** +- Lines to remove: ~20 console statements +- Dependencies to remove: 2-6 packages +- Files to delete: 0-3 files (optional) +- Risk level: LOW (no functional changes, only cleanup) diff --git a/client/build/asset-manifest.json b/client/build/asset-manifest.json index 5d25158..e4fc4f8 100644 --- a/client/build/asset-manifest.json +++ b/client/build/asset-manifest.json @@ -1,15 +1,15 @@ { "files": { - "main.css": "/static/css/main.44e40ac2.css", - "main.js": "/static/js/main.ca674b04.js", + "main.css": "/static/css/main.2e6b09f5.css", + "main.js": "/static/js/main.7f40b053.js", "static/js/453.d456ce70.chunk.js": "/static/js/453.d456ce70.chunk.js", "index.html": "/index.html", - "main.44e40ac2.css.map": "/static/css/main.44e40ac2.css.map", - "main.ca674b04.js.map": "/static/js/main.ca674b04.js.map", + "main.2e6b09f5.css.map": "/static/css/main.2e6b09f5.css.map", + "main.7f40b053.js.map": "/static/js/main.7f40b053.js.map", "453.d456ce70.chunk.js.map": "/static/js/453.d456ce70.chunk.js.map" }, "entrypoints": [ - "static/css/main.44e40ac2.css", - "static/js/main.ca674b04.js" + "static/css/main.2e6b09f5.css", + "static/js/main.7f40b053.js" ] } \ No newline at end of file diff --git a/client/build/index.html b/client/build/index.html index 0e049b1..1a5fee1 100644 --- a/client/build/index.html +++ b/client/build/index.html @@ -1 +1 @@ -SkyWatch
\ No newline at end of file +SkyWatch
\ No newline at end of file diff --git a/client/build/static/css/main.44e40ac2.css b/client/build/static/css/main.2e6b09f5.css similarity index 56% rename from client/build/static/css/main.44e40ac2.css rename to client/build/static/css/main.2e6b09f5.css index ee49566..fe05140 100644 --- a/client/build/static/css/main.44e40ac2.css +++ b/client/build/static/css/main.2e6b09f5.css @@ -1,2 +1,2 @@ -body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}*{box-sizing:border-box}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{min-height:100vh}.navbar{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 8px #0000001a;color:#fff;padding:1rem 2rem}.navbar h1{font-size:1.5rem;margin:0}.container{margin:0 auto;max-width:1400px;padding:2rem}.dashboard-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-bottom:1.5rem}.resource-card{background:#fff;border:1px solid #f1f1f3;border-radius:10px;box-shadow:0 2px 8px #00000014;cursor:pointer;padding:1rem 1.1rem;transition:transform .2s,box-shadow .2s}.resource-card.compact{display:flex;flex-direction:column;gap:.4rem}.resource-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.resource-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.resource-name{font-size:1.05rem;font-weight:700;margin:0 0 .2rem}.resource-url{color:#666;font-size:.8rem;word-break:break-all}.status-badge{border-radius:12px;font-size:.7rem;font-weight:600;padding:.25rem .75rem;text-transform:uppercase}.status-up{background:#d4edda;color:#155724}.status-down{background:#f8d7da;color:#721c24}.status-unknown{background:#e2e3e5;color:#383d41}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-top:1rem}.stat{text-align:center}.stat-value{color:#333;font-size:1.2rem;font-weight:700;margin:0}.stat-value.small{font-size:1.05rem}.stat-label{color:#666;font-size:.75rem;margin:0;text-transform:uppercase}.resource-meta{grid-gap:.75rem;align-items:center;display:grid;gap:.75rem;grid-template-columns:repeat(3,1fr)}.sparkline{height:52px;width:100%}.last-check{color:#999;font-size:.75rem;margin:0}.group-section{background:#fafafa;border-radius:10px;margin-bottom:2rem;padding:1rem}.group-header{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;gap:1rem;margin-bottom:1rem;padding:1rem;transition:background .2s}.group-header:hover{background:#f9f9f9}.group-header h3{color:#333;font-size:1.1rem;margin:0}.group-toggle{color:#667eea;font-size:.9rem;min-width:15px}.group-stats{display:flex;font-size:.85rem;gap:1.5rem;margin-left:auto}.group-stat{background:#f0f0f0;border-radius:6px;color:#666;font-weight:500;padding:.4rem .8rem}.edit-input{border:1px solid #667eea;border-radius:6px;font-size:1.05rem;margin-bottom:.5rem;padding:.5rem;width:100%}.card-edit-form{border-top:1px solid #eee;margin-top:.75rem;padding-top:.75rem}.edit-field{margin-bottom:.5rem}.edit-field label{color:#666;display:block;font-size:.75rem;font-weight:600;margin-bottom:.25rem}.edit-field input{border:1px solid #ddd;border-radius:4px;font-size:.9rem;padding:.4rem .6rem;width:100%}.card-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.btn-icon{background:none;border:none;cursor:pointer;font-size:1rem;opacity:.6;padding:.25rem .5rem;transition:opacity .2s}.btn-icon:hover{opacity:1}.btn-sm{font-size:.8rem;padding:.4rem .8rem}.btn{border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{box-shadow:0 4px 8px #667eea4d;transform:translateY(-1px)}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:12px;max-height:90vh;max-width:500px;overflow-y:auto;padding:2rem;width:90%}.modal h2{margin-top:0}.form-group{margin-bottom:1.5rem}.form-group label{color:#333;display:block;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group select{border:1px solid #ddd;border-radius:6px;font-size:1rem;padding:.75rem;width:100%}.form-group input:focus,.form-group select:focus{border-color:#667eea;outline:none}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.detail-section{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.detail-section h2{color:#333;margin-top:0}.chart-container{height:300px;margin-top:1rem}.incident-badge{background:#fff3cd;color:#856404;font-weight:600}.back-button,.incident-badge{border-radius:6px;display:inline-block;margin-bottom:1rem;padding:.5rem 1rem}.back-button{background:#6c757d;color:#fff;text-decoration:none;transition:background .2s}.back-button:hover{background:#5a6268}.empty-state{color:#666;padding:3rem;text-align:center}.empty-state h3{color:#333;margin-bottom:.5rem}@media (max-width:768px){.navbar{padding:.75rem 1rem}.navbar h1{font-size:1.25rem}.navbar-links{flex-wrap:wrap;gap:.5rem}.navbar-links a{font-size:.9rem;padding:.4rem .8rem}.container{padding:1rem}.dashboard-header{align-items:flex-start;flex-direction:column;gap:1rem}.dashboard-actions{flex-direction:column;gap:.5rem;width:100%}.dashboard-actions button,.dashboard-actions select{width:100%}.dashboard-grid{gap:.75rem;grid-template-columns:1fr}.stats-grid{gap:.75rem;grid-template-columns:repeat(2,1fr)!important}.resource-card{padding:.875rem}.resource-meta{flex-direction:column;gap:.5rem}.resource-meta>div{text-align:left!important}.chart-container{height:300px!important}.detail-section{padding:1rem!important}.form-row{flex-direction:column;gap:0}.form-group{width:100%}.modal-content{margin:1rem;max-width:none;padding:1.5rem;width:95%}.group-header{align-items:flex-start;flex-direction:column;gap:.5rem}.group-stats{justify-content:space-between;width:100%}.card-actions{flex-direction:row;gap:.5rem;justify-content:flex-end}}@media (max-width:480px){.navbar h1{font-size:1.1rem}.stat-value{font-size:1.5rem}.stat-label{font-size:.75rem}.stats-grid{grid-template-columns:1fr!important}.modal-content h2{font-size:1.25rem}.btn{font-size:.9rem;padding:.5rem 1rem}}.settings-wizard{margin:0 auto;max-width:900px}.settings-description{color:#666;margin-bottom:2rem}.settings-section{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem;padding:2rem}.settings-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.settings-header h3{color:#333;margin:0}.settings-form{margin-top:1.5rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:1rem}.form-group small{color:#999;display:block;font-size:.85rem;margin-top:.25rem}.info-box{background:#f8f9fa;border-left:4px solid #667eea;border-radius:4px;margin:1.5rem 0;padding:1rem}.info-box strong{color:#333;display:block;margin-bottom:.5rem}.info-box ol{margin:.5rem 0 0 1.5rem;padding:0}.info-box li{color:#666;margin:.25rem 0}.info-box a{color:#667eea;text-decoration:none}.info-box a:hover{text-decoration:underline}.info-box pre{background:#fff;border-radius:4px;font-size:.85rem;margin-top:.5rem;overflow-x:auto;padding:1rem}.toggle-switch{display:inline-block;height:34px;position:relative;width:60px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#ccc;border-radius:34px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.4s}.toggle-slider:before{background-color:#fff;border-radius:50%;bottom:4px;content:"";height:26px;left:4px;position:absolute;transition:.4s;width:26px}.toggle-switch input:checked+.toggle-slider{background-color:#667eea}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(26px)}.btn-secondary{background:#6c757d;color:#fff;margin-top:1rem}.btn-secondary:hover:not(:disabled){background:#5a6268}.btn-secondary:disabled{cursor:not-allowed;opacity:.5}.test-result{border-radius:8px;margin:1.5rem 0;padding:1rem}.test-result.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.test-result.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.test-result strong{display:block;margin-bottom:.5rem}.test-result p{margin:0}.settings-actions{display:flex;justify-content:center;margin-top:2rem}.btn-large{font-size:1.1rem;padding:1rem 3rem} -/*# sourceMappingURL=main.44e40ac2.css.map*/ \ No newline at end of file +body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}*{box-sizing:border-box}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{min-height:100vh}.navbar{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 8px #0000001a;color:#fff;padding:1rem 2rem}.navbar h1{font-size:1.5rem;margin:0}.container{margin:0 auto;max-width:1400px;padding:2rem}.dashboard-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-bottom:1.5rem}.resource-card{background:#fff;border:1px solid #f1f1f3;border-radius:10px;box-shadow:0 2px 8px #00000014;cursor:pointer;padding:1rem 1.1rem;transition:transform .2s,box-shadow .2s}.resource-card.compact{display:flex;flex-direction:column;gap:.4rem}.resource-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.resource-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.resource-name{font-size:1.05rem;font-weight:700;margin:0 0 .2rem}.resource-url{color:#666;font-size:.8rem;word-break:break-all}.status-badge{border-radius:12px;font-size:.7rem;font-weight:600;padding:.25rem .75rem;text-transform:uppercase}.status-up{background:#d4edda;color:#155724}.status-down{background:#f8d7da;color:#721c24}.status-unknown{background:#e2e3e5;color:#383d41}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-top:1rem}.stat{text-align:center}.stat-value{color:#333;font-size:1.2rem;font-weight:700;margin:0}.stat-value.small{font-size:1.05rem}.stat-label{color:#666;font-size:.75rem;margin:0;text-transform:uppercase}.resource-meta{grid-gap:.75rem;align-items:center;display:grid;gap:.75rem;grid-template-columns:repeat(3,1fr)}.sparkline{height:52px;width:100%}.last-check{color:#999;font-size:.75rem;margin:0}.group-section{background:#fafafa;border-radius:10px;margin-bottom:2rem;padding:1rem}.group-header{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;gap:1rem;margin-bottom:1rem;padding:1rem;transition:background .2s}.group-header:hover{background:#f9f9f9}.group-header h3{color:#333;font-size:1.1rem;margin:0}.group-toggle{color:#667eea;font-size:.9rem;min-width:15px}.group-stats{display:flex;font-size:.85rem;gap:1.5rem;margin-left:auto}.group-stat{background:#f0f0f0;border-radius:6px;color:#666;font-weight:500;padding:.4rem .8rem}.edit-input{border:1px solid #667eea;border-radius:6px;font-size:1.05rem;margin-bottom:.5rem;padding:.5rem;width:100%}.card-edit-form{border-top:1px solid #eee;margin-top:.75rem;padding-top:.75rem}.edit-field{margin-bottom:.5rem}.edit-field label{color:#666;display:block;font-size:.75rem;font-weight:600;margin-bottom:.25rem}.edit-field input{border:1px solid #ddd;border-radius:4px;font-size:.9rem;padding:.4rem .6rem;width:100%}.card-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.btn-icon{background:none;border:none;cursor:pointer;font-size:1rem;opacity:.6;padding:.25rem .5rem;transition:opacity .2s}.btn-icon:hover{opacity:1}.btn-sm{font-size:.8rem;padding:.4rem .8rem}.btn{border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{box-shadow:0 4px 8px #667eea4d;transform:translateY(-1px)}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:12px;max-height:90vh;max-width:500px;overflow-y:auto;padding:2rem;width:90%}.modal h2{margin-top:0}.form-group{margin-bottom:1.5rem}.form-group label{color:#333;display:block;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group select{border:1px solid #ddd;border-radius:6px;font-size:1rem;padding:.75rem;width:100%}.form-group input:focus,.form-group select:focus{border-color:#667eea;outline:none}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.detail-section{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.detail-section h2{color:#333;margin-top:0}.chart-container{height:300px;margin-top:1rem}.incident-badge{background:#fff3cd;color:#856404;font-weight:600}.back-button,.incident-badge{border-radius:6px;display:inline-block;margin-bottom:1rem;padding:.5rem 1rem}.back-button{background:#6c757d;color:#fff;text-decoration:none;transition:background .2s}.back-button:hover{background:#5a6268}.empty-state{color:#666;padding:3rem;text-align:center}.empty-state h3{color:#333;margin-bottom:.5rem}@media (max-width:1024px){.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.container{padding:1.5rem}}@media (max-width:768px){.navbar{padding:.75rem 1rem}.navbar h1{font-size:1.25rem}.navbar-links{flex-wrap:wrap;gap:.5rem}.navbar-links a{font-size:.9rem;padding:.4rem .8rem}.container{padding:1rem}.dashboard-header{align-items:flex-start;flex-direction:column;gap:1rem}.dashboard-actions{flex-direction:column;gap:.5rem;width:100%}.dashboard-actions button,.dashboard-actions select{width:100%}.dashboard-grid{gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.stats-grid{gap:.75rem;grid-template-columns:repeat(2,1fr)!important}.resource-card{padding:.875rem}.resource-meta{flex-direction:column;gap:.5rem}.resource-meta>div{text-align:left!important}.chart-container{height:300px!important}.detail-section{padding:1rem!important}.form-row{flex-direction:column;gap:0}.form-group{width:100%}.modal-content{margin:1rem;max-width:none;padding:1.5rem;width:95%}.group-header{align-items:flex-start;flex-direction:column;gap:.5rem}.group-stats{justify-content:space-between;width:100%}.card-actions{flex-direction:row;gap:.5rem;justify-content:flex-end}table{font-size:.85rem}td,th{padding:.5rem!important}}@media (max-width:480px){.navbar h1{font-size:1.1rem}.stat-value{font-size:1.5rem}.stat-label{font-size:.75rem}.stats-grid{grid-template-columns:1fr!important}.modal-content h2{font-size:1.25rem}.btn{font-size:.9rem;padding:.5rem 1rem}}.settings-wizard{margin:0 auto;max-width:900px}.settings-description{color:#666;margin-bottom:2rem}.settings-section{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem;padding:2rem}.settings-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.settings-header h3{color:#333;margin:0}.settings-form{margin-top:1.5rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:1rem}.form-group small{color:#999;display:block;font-size:.85rem;margin-top:.25rem}.info-box{background:#f8f9fa;border-left:4px solid #667eea;border-radius:4px;margin:1.5rem 0;padding:1rem}.info-box strong{color:#333;display:block;margin-bottom:.5rem}.info-box ol{margin:.5rem 0 0 1.5rem;padding:0}.info-box li{color:#666;margin:.25rem 0}.info-box a{color:#667eea;text-decoration:none}.info-box a:hover{text-decoration:underline}.info-box pre{background:#fff;border-radius:4px;font-size:.85rem;margin-top:.5rem;overflow-x:auto;padding:1rem}.toggle-switch{display:inline-block;height:34px;position:relative;width:60px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#ccc;border-radius:34px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.4s}.toggle-slider:before{background-color:#fff;border-radius:50%;bottom:4px;content:"";height:26px;left:4px;position:absolute;transition:.4s;width:26px}.toggle-switch input:checked+.toggle-slider{background-color:#667eea}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(26px)}.btn-secondary{background:#6c757d;color:#fff;margin-top:1rem}.btn-secondary:hover:not(:disabled){background:#5a6268}.btn-secondary:disabled{cursor:not-allowed;opacity:.5}.test-result{border-radius:8px;margin:1.5rem 0;padding:1rem}.test-result.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.test-result.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.test-result strong{display:block;margin-bottom:.5rem}.test-result p{margin:0}.settings-actions{display:flex;justify-content:center;margin-top:2rem}.btn-large{font-size:1.1rem;padding:1rem 3rem} +/*# sourceMappingURL=main.2e6b09f5.css.map*/ \ No newline at end of file diff --git a/client/build/static/css/main.2e6b09f5.css.map b/client/build/static/css/main.2e6b09f5.css.map new file mode 100644 index 0000000..7fb7ad8 --- /dev/null +++ b/client/build/static/css/main.2e6b09f5.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.2e6b09f5.css","mappings":"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","sources":["index.css","App.css","SettingsWizard.css"],"sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n background-color: #f5f5f5;\n}\n\n* {\n box-sizing: border-box;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n",".App {\n min-height: 100vh;\n}\n\n.navbar {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n padding: 1rem 2rem;\n color: white;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.navbar h1 {\n margin: 0;\n font-size: 1.5rem;\n}\n\n.container {\n max-width: 1400px;\n margin: 0 auto;\n padding: 2rem;\n}\n\n.dashboard-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));\n gap: 1rem;\n margin-bottom: 1.5rem;\n}\n\n.resource-card {\n background: white;\n border-radius: 10px;\n padding: 1rem 1.1rem;\n box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n transition: transform 0.2s, box-shadow 0.2s;\n cursor: pointer;\n border: 1px solid #f1f1f3;\n}\n\n.resource-card.compact {\n display: flex;\n flex-direction: column;\n gap: 0.4rem;\n}\n\n.resource-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n}\n\n.resource-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 0.5rem;\n}\n\n.resource-name {\n font-size: 1.05rem;\n font-weight: 700;\n margin: 0 0 0.2rem 0;\n}\n\n.resource-url {\n color: #666;\n font-size: 0.8rem;\n word-break: break-all;\n}\n\n.status-badge {\n padding: 0.25rem 0.75rem;\n border-radius: 12px;\n font-size: 0.7rem;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-up {\n background: #d4edda;\n color: #155724;\n}\n\n.status-down {\n background: #f8d7da;\n color: #721c24;\n}\n\n.status-unknown {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.stats-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1rem;\n margin-top: 1rem;\n}\n\n.stat {\n text-align: center;\n}\n\n.stat-value {\n font-size: 1.2rem;\n font-weight: 700;\n color: #333;\n margin: 0;\n}\n\n.stat-value.small {\n font-size: 1.05rem;\n}\n\n.stat-label {\n font-size: 0.75rem;\n color: #666;\n text-transform: uppercase;\n margin: 0;\n}\n\n.resource-meta {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n align-items: center;\n gap: 0.75rem;\n}\n\n.sparkline {\n width: 100%;\n height: 52px;\n}\n\n.last-check {\n margin: 0;\n font-size: 0.75rem;\n color: #999;\n}\n\n.group-section {\n margin-bottom: 2rem;\n background: #fafafa;\n border-radius: 10px;\n padding: 1rem;\n}\n\n.group-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: white;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.2s;\n border: 1px solid #e0e0e0;\n margin-bottom: 1rem;\n}\n\n.group-header:hover {\n background: #f9f9f9;\n}\n\n.group-header h3 {\n font-size: 1.1rem;\n margin: 0;\n color: #333;\n}\n\n.group-toggle {\n font-size: 0.9rem;\n color: #667eea;\n min-width: 15px;\n}\n\n.group-stats {\n display: flex;\n gap: 1.5rem;\n margin-left: auto;\n font-size: 0.85rem;\n}\n\n.group-stat {\n background: #f0f0f0;\n padding: 0.4rem 0.8rem;\n border-radius: 6px;\n color: #666;\n font-weight: 500;\n}\n\n.edit-input {\n padding: 0.5rem;\n border: 1px solid #667eea;\n border-radius: 6px;\n font-size: 1.05rem;\n width: 100%;\n margin-bottom: 0.5rem;\n}\n\n.card-edit-form {\n margin-top: 0.75rem;\n padding-top: 0.75rem;\n border-top: 1px solid #eee;\n}\n\n.edit-field {\n margin-bottom: 0.5rem;\n}\n\n.edit-field label {\n display: block;\n font-size: 0.75rem;\n color: #666;\n margin-bottom: 0.25rem;\n font-weight: 600;\n}\n\n.edit-field input {\n width: 100%;\n padding: 0.4rem 0.6rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 0.9rem;\n}\n\n.card-actions {\n display: flex;\n gap: 0.5rem;\n margin-top: 0.5rem;\n justify-content: flex-end;\n}\n\n.btn-icon {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 1rem;\n padding: 0.25rem 0.5rem;\n opacity: 0.6;\n transition: opacity 0.2s;\n}\n\n.btn-icon:hover {\n opacity: 1;\n}\n\n.btn-sm {\n padding: 0.4rem 0.8rem;\n font-size: 0.8rem;\n}\n\n.btn {\n padding: 0.75rem 1.5rem;\n border: none;\n border-radius: 6px;\n font-size: 1rem;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.btn-primary {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n}\n\n.btn-primary:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(102, 126, 234, 0.3);\n}\n\n.btn-danger {\n background: #dc3545;\n color: white;\n}\n\n.btn-danger:hover {\n background: #c82333;\n}\n\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.modal {\n background: white;\n border-radius: 12px;\n padding: 2rem;\n max-width: 500px;\n width: 90%;\n max-height: 90vh;\n overflow-y: auto;\n}\n\n.modal h2 {\n margin-top: 0;\n}\n\n.form-group {\n margin-bottom: 1.5rem;\n}\n\n.form-group label {\n display: block;\n margin-bottom: 0.5rem;\n font-weight: 600;\n color: #333;\n}\n\n.form-group input,\n.form-group select {\n width: 100%;\n padding: 0.75rem;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 1rem;\n}\n\n.form-group input:focus,\n.form-group select:focus {\n outline: none;\n border-color: #667eea;\n}\n\n.form-actions {\n display: flex;\n gap: 1rem;\n justify-content: flex-end;\n margin-top: 2rem;\n}\n\n.detail-section {\n background: white;\n border-radius: 8px;\n padding: 1.5rem;\n margin-bottom: 1.5rem;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.detail-section h2 {\n margin-top: 0;\n color: #333;\n}\n\n.chart-container {\n margin-top: 1rem;\n height: 300px;\n}\n\n.incident-badge {\n display: inline-block;\n padding: 0.5rem 1rem;\n background: #fff3cd;\n color: #856404;\n border-radius: 6px;\n font-weight: 600;\n margin-bottom: 1rem;\n}\n\n.back-button {\n display: inline-block;\n margin-bottom: 1rem;\n padding: 0.5rem 1rem;\n background: #6c757d;\n color: white;\n text-decoration: none;\n border-radius: 6px;\n transition: background 0.2s;\n}\n\n.back-button:hover {\n background: #5a6268;\n}\n\n.empty-state {\n text-align: center;\n padding: 3rem;\n color: #666;\n}\n\n.empty-state h3 {\n color: #333;\n margin-bottom: 0.5rem;\n}\n\n/* Mobile Responsive Styles */\n@media (max-width: 1024px) {\n .dashboard-grid {\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n }\n\n .container {\n padding: 1.5rem;\n }\n}\n\n@media (max-width: 768px) {\n .navbar {\n padding: 0.75rem 1rem;\n }\n\n .navbar h1 {\n font-size: 1.25rem;\n }\n\n .navbar-links {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n\n .navbar-links a {\n padding: 0.4rem 0.8rem;\n font-size: 0.9rem;\n }\n\n .container {\n padding: 1rem;\n }\n\n .dashboard-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 1rem;\n }\n\n .dashboard-actions {\n width: 100%;\n flex-direction: column;\n gap: 0.5rem;\n }\n\n .dashboard-actions button,\n .dashboard-actions select {\n width: 100%;\n }\n\n .dashboard-grid {\n grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));\n gap: 0.75rem;\n }\n\n .stats-grid {\n grid-template-columns: repeat(2, 1fr) !important;\n gap: 0.75rem;\n }\n\n .resource-card {\n padding: 0.875rem;\n }\n\n .resource-meta {\n flex-direction: column;\n gap: 0.5rem;\n }\n\n .resource-meta > div {\n text-align: left !important;\n }\n\n .chart-container {\n height: 300px !important;\n }\n\n .detail-section {\n padding: 1rem !important;\n }\n\n .form-row {\n flex-direction: column;\n gap: 0rem;\n }\n\n .form-group {\n width: 100%;\n }\n\n .modal-content {\n width: 95%;\n max-width: none;\n margin: 1rem;\n padding: 1.5rem;\n }\n\n .group-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.5rem;\n }\n\n .group-stats {\n width: 100%;\n justify-content: space-between;\n }\n\n .card-actions {\n flex-direction: row;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n\n table {\n font-size: 0.85rem;\n }\n\n th, td {\n padding: 0.5rem !important;\n }\n}\n\n@media (max-width: 480px) {\n .navbar h1 {\n font-size: 1.1rem;\n }\n\n .stat-value {\n font-size: 1.5rem;\n }\n\n .stat-label {\n font-size: 0.75rem;\n }\n\n .stats-grid {\n grid-template-columns: 1fr !important;\n }\n\n .modal-content h2 {\n font-size: 1.25rem;\n }\n\n .btn {\n padding: 0.5rem 1rem;\n font-size: 0.9rem;\n }\n}\n",".settings-wizard {\r\n max-width: 900px;\r\n margin: 0 auto;\r\n}\r\n\r\n.settings-description {\r\n color: #666;\r\n margin-bottom: 2rem;\r\n}\r\n\r\n.settings-section {\r\n background: white;\r\n border-radius: 8px;\r\n padding: 2rem;\r\n margin-bottom: 1.5rem;\r\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\r\n}\r\n\r\n.settings-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 1.5rem;\r\n padding-bottom: 1rem;\r\n border-bottom: 2px solid #f0f0f0;\r\n}\r\n\r\n.settings-header h3 {\r\n margin: 0;\r\n color: #333;\r\n}\r\n\r\n.settings-form {\r\n margin-top: 1.5rem;\r\n}\r\n\r\n.form-row {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\r\n gap: 1rem;\r\n margin-bottom: 1rem;\r\n}\r\n\r\n.form-group small {\r\n display: block;\r\n color: #999;\r\n font-size: 0.85rem;\r\n margin-top: 0.25rem;\r\n}\r\n\r\n.info-box {\r\n background: #f8f9fa;\r\n border-left: 4px solid #667eea;\r\n padding: 1rem;\r\n margin: 1.5rem 0;\r\n border-radius: 4px;\r\n}\r\n\r\n.info-box strong {\r\n display: block;\r\n margin-bottom: 0.5rem;\r\n color: #333;\r\n}\r\n\r\n.info-box ol {\r\n margin: 0.5rem 0 0 1.5rem;\r\n padding: 0;\r\n}\r\n\r\n.info-box li {\r\n margin: 0.25rem 0;\r\n color: #666;\r\n}\r\n\r\n.info-box a {\r\n color: #667eea;\r\n text-decoration: none;\r\n}\r\n\r\n.info-box a:hover {\r\n text-decoration: underline;\r\n}\r\n\r\n.info-box pre {\r\n background: white;\r\n padding: 1rem;\r\n border-radius: 4px;\r\n overflow-x: auto;\r\n font-size: 0.85rem;\r\n margin-top: 0.5rem;\r\n}\r\n\r\n.toggle-switch {\r\n position: relative;\r\n display: inline-block;\r\n width: 60px;\r\n height: 34px;\r\n}\r\n\r\n.toggle-switch input {\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n}\r\n\r\n.toggle-slider {\r\n position: absolute;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: #ccc;\r\n transition: .4s;\r\n border-radius: 34px;\r\n}\r\n\r\n.toggle-slider:before {\r\n position: absolute;\r\n content: \"\";\r\n height: 26px;\r\n width: 26px;\r\n left: 4px;\r\n bottom: 4px;\r\n background-color: white;\r\n transition: .4s;\r\n border-radius: 50%;\r\n}\r\n\r\n.toggle-switch input:checked + .toggle-slider {\r\n background-color: #667eea;\r\n}\r\n\r\n.toggle-switch input:checked + .toggle-slider:before {\r\n transform: translateX(26px);\r\n}\r\n\r\n.btn-secondary {\r\n background: #6c757d;\r\n color: white;\r\n margin-top: 1rem;\r\n}\r\n\r\n.btn-secondary:hover:not(:disabled) {\r\n background: #5a6268;\r\n}\r\n\r\n.btn-secondary:disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n}\r\n\r\n.test-result {\r\n padding: 1rem;\r\n border-radius: 8px;\r\n margin: 1.5rem 0;\r\n}\r\n\r\n.test-result.success {\r\n background: #d4edda;\r\n color: #155724;\r\n border: 1px solid #c3e6cb;\r\n}\r\n\r\n.test-result.error {\r\n background: #f8d7da;\r\n color: #721c24;\r\n border: 1px solid #f5c6cb;\r\n}\r\n\r\n.test-result strong {\r\n display: block;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\n.test-result p {\r\n margin: 0;\r\n}\r\n\r\n.settings-actions {\r\n display: flex;\r\n justify-content: center;\r\n margin-top: 2rem;\r\n}\r\n\r\n.btn-large {\r\n padding: 1rem 3rem;\r\n font-size: 1.1rem;\r\n}\r\n"],"names":[],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/client/build/static/css/main.44e40ac2.css.map b/client/build/static/css/main.44e40ac2.css.map deleted file mode 100644 index 4a7ec0f..0000000 --- a/client/build/static/css/main.44e40ac2.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/main.44e40ac2.css","mappings":"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","sources":["index.css","App.css","SettingsWizard.css"],"sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n background-color: #f5f5f5;\n}\n\n* {\n box-sizing: border-box;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n",".App {\n min-height: 100vh;\n}\n\n.navbar {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n padding: 1rem 2rem;\n color: white;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.navbar h1 {\n margin: 0;\n font-size: 1.5rem;\n}\n\n.container {\n max-width: 1400px;\n margin: 0 auto;\n padding: 2rem;\n}\n\n.dashboard-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));\n gap: 1rem;\n margin-bottom: 1.5rem;\n}\n\n.resource-card {\n background: white;\n border-radius: 10px;\n padding: 1rem 1.1rem;\n box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n transition: transform 0.2s, box-shadow 0.2s;\n cursor: pointer;\n border: 1px solid #f1f1f3;\n}\n\n.resource-card.compact {\n display: flex;\n flex-direction: column;\n gap: 0.4rem;\n}\n\n.resource-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n}\n\n.resource-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 0.5rem;\n}\n\n.resource-name {\n font-size: 1.05rem;\n font-weight: 700;\n margin: 0 0 0.2rem 0;\n}\n\n.resource-url {\n color: #666;\n font-size: 0.8rem;\n word-break: break-all;\n}\n\n.status-badge {\n padding: 0.25rem 0.75rem;\n border-radius: 12px;\n font-size: 0.7rem;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-up {\n background: #d4edda;\n color: #155724;\n}\n\n.status-down {\n background: #f8d7da;\n color: #721c24;\n}\n\n.status-unknown {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.stats-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1rem;\n margin-top: 1rem;\n}\n\n.stat {\n text-align: center;\n}\n\n.stat-value {\n font-size: 1.2rem;\n font-weight: 700;\n color: #333;\n margin: 0;\n}\n\n.stat-value.small {\n font-size: 1.05rem;\n}\n\n.stat-label {\n font-size: 0.75rem;\n color: #666;\n text-transform: uppercase;\n margin: 0;\n}\n\n.resource-meta {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n align-items: center;\n gap: 0.75rem;\n}\n\n.sparkline {\n width: 100%;\n height: 52px;\n}\n\n.last-check {\n margin: 0;\n font-size: 0.75rem;\n color: #999;\n}\n\n.group-section {\n margin-bottom: 2rem;\n background: #fafafa;\n border-radius: 10px;\n padding: 1rem;\n}\n\n.group-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: white;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.2s;\n border: 1px solid #e0e0e0;\n margin-bottom: 1rem;\n}\n\n.group-header:hover {\n background: #f9f9f9;\n}\n\n.group-header h3 {\n font-size: 1.1rem;\n margin: 0;\n color: #333;\n}\n\n.group-toggle {\n font-size: 0.9rem;\n color: #667eea;\n min-width: 15px;\n}\n\n.group-stats {\n display: flex;\n gap: 1.5rem;\n margin-left: auto;\n font-size: 0.85rem;\n}\n\n.group-stat {\n background: #f0f0f0;\n padding: 0.4rem 0.8rem;\n border-radius: 6px;\n color: #666;\n font-weight: 500;\n}\n\n.edit-input {\n padding: 0.5rem;\n border: 1px solid #667eea;\n border-radius: 6px;\n font-size: 1.05rem;\n width: 100%;\n margin-bottom: 0.5rem;\n}\n\n.card-edit-form {\n margin-top: 0.75rem;\n padding-top: 0.75rem;\n border-top: 1px solid #eee;\n}\n\n.edit-field {\n margin-bottom: 0.5rem;\n}\n\n.edit-field label {\n display: block;\n font-size: 0.75rem;\n color: #666;\n margin-bottom: 0.25rem;\n font-weight: 600;\n}\n\n.edit-field input {\n width: 100%;\n padding: 0.4rem 0.6rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 0.9rem;\n}\n\n.card-actions {\n display: flex;\n gap: 0.5rem;\n margin-top: 0.5rem;\n justify-content: flex-end;\n}\n\n.btn-icon {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 1rem;\n padding: 0.25rem 0.5rem;\n opacity: 0.6;\n transition: opacity 0.2s;\n}\n\n.btn-icon:hover {\n opacity: 1;\n}\n\n.btn-sm {\n padding: 0.4rem 0.8rem;\n font-size: 0.8rem;\n}\n\n.btn {\n padding: 0.75rem 1.5rem;\n border: none;\n border-radius: 6px;\n font-size: 1rem;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.btn-primary {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n}\n\n.btn-primary:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(102, 126, 234, 0.3);\n}\n\n.btn-danger {\n background: #dc3545;\n color: white;\n}\n\n.btn-danger:hover {\n background: #c82333;\n}\n\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.modal {\n background: white;\n border-radius: 12px;\n padding: 2rem;\n max-width: 500px;\n width: 90%;\n max-height: 90vh;\n overflow-y: auto;\n}\n\n.modal h2 {\n margin-top: 0;\n}\n\n.form-group {\n margin-bottom: 1.5rem;\n}\n\n.form-group label {\n display: block;\n margin-bottom: 0.5rem;\n font-weight: 600;\n color: #333;\n}\n\n.form-group input,\n.form-group select {\n width: 100%;\n padding: 0.75rem;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 1rem;\n}\n\n.form-group input:focus,\n.form-group select:focus {\n outline: none;\n border-color: #667eea;\n}\n\n.form-actions {\n display: flex;\n gap: 1rem;\n justify-content: flex-end;\n margin-top: 2rem;\n}\n\n.detail-section {\n background: white;\n border-radius: 8px;\n padding: 1.5rem;\n margin-bottom: 1.5rem;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.detail-section h2 {\n margin-top: 0;\n color: #333;\n}\n\n.chart-container {\n margin-top: 1rem;\n height: 300px;\n}\n\n.incident-badge {\n display: inline-block;\n padding: 0.5rem 1rem;\n background: #fff3cd;\n color: #856404;\n border-radius: 6px;\n font-weight: 600;\n margin-bottom: 1rem;\n}\n\n.back-button {\n display: inline-block;\n margin-bottom: 1rem;\n padding: 0.5rem 1rem;\n background: #6c757d;\n color: white;\n text-decoration: none;\n border-radius: 6px;\n transition: background 0.2s;\n}\n\n.back-button:hover {\n background: #5a6268;\n}\n\n.empty-state {\n text-align: center;\n padding: 3rem;\n color: #666;\n}\n\n.empty-state h3 {\n color: #333;\n margin-bottom: 0.5rem;\n}\n\n/* Mobile Responsive Styles */\n@media (max-width: 768px) {\n .navbar {\n padding: 0.75rem 1rem;\n }\n\n .navbar h1 {\n font-size: 1.25rem;\n }\n\n .navbar-links {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n\n .navbar-links a {\n padding: 0.4rem 0.8rem;\n font-size: 0.9rem;\n }\n\n .container {\n padding: 1rem;\n }\n\n .dashboard-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 1rem;\n }\n\n .dashboard-actions {\n width: 100%;\n flex-direction: column;\n gap: 0.5rem;\n }\n\n .dashboard-actions button,\n .dashboard-actions select {\n width: 100%;\n }\n\n .dashboard-grid {\n grid-template-columns: 1fr;\n gap: 0.75rem;\n }\n\n .stats-grid {\n grid-template-columns: repeat(2, 1fr) !important;\n gap: 0.75rem;\n }\n\n .resource-card {\n padding: 0.875rem;\n }\n\n .resource-meta {\n flex-direction: column;\n gap: 0.5rem;\n }\n\n .resource-meta > div {\n text-align: left !important;\n }\n\n .chart-container {\n height: 300px !important;\n }\n\n .detail-section {\n padding: 1rem !important;\n }\n\n .form-row {\n flex-direction: column;\n gap: 0rem;\n }\n\n .form-group {\n width: 100%;\n }\n\n .modal-content {\n width: 95%;\n max-width: none;\n margin: 1rem;\n padding: 1.5rem;\n }\n\n .group-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.5rem;\n }\n\n .group-stats {\n width: 100%;\n justify-content: space-between;\n }\n\n .card-actions {\n flex-direction: row;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n}\n\n@media (max-width: 480px) {\n .navbar h1 {\n font-size: 1.1rem;\n }\n\n .stat-value {\n font-size: 1.5rem;\n }\n\n .stat-label {\n font-size: 0.75rem;\n }\n\n .stats-grid {\n grid-template-columns: 1fr !important;\n }\n\n .modal-content h2 {\n font-size: 1.25rem;\n }\n\n .btn {\n padding: 0.5rem 1rem;\n font-size: 0.9rem;\n }\n}\n",".settings-wizard {\r\n max-width: 900px;\r\n margin: 0 auto;\r\n}\r\n\r\n.settings-description {\r\n color: #666;\r\n margin-bottom: 2rem;\r\n}\r\n\r\n.settings-section {\r\n background: white;\r\n border-radius: 8px;\r\n padding: 2rem;\r\n margin-bottom: 1.5rem;\r\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\r\n}\r\n\r\n.settings-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 1.5rem;\r\n padding-bottom: 1rem;\r\n border-bottom: 2px solid #f0f0f0;\r\n}\r\n\r\n.settings-header h3 {\r\n margin: 0;\r\n color: #333;\r\n}\r\n\r\n.settings-form {\r\n margin-top: 1.5rem;\r\n}\r\n\r\n.form-row {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\r\n gap: 1rem;\r\n margin-bottom: 1rem;\r\n}\r\n\r\n.form-group small {\r\n display: block;\r\n color: #999;\r\n font-size: 0.85rem;\r\n margin-top: 0.25rem;\r\n}\r\n\r\n.info-box {\r\n background: #f8f9fa;\r\n border-left: 4px solid #667eea;\r\n padding: 1rem;\r\n margin: 1.5rem 0;\r\n border-radius: 4px;\r\n}\r\n\r\n.info-box strong {\r\n display: block;\r\n margin-bottom: 0.5rem;\r\n color: #333;\r\n}\r\n\r\n.info-box ol {\r\n margin: 0.5rem 0 0 1.5rem;\r\n padding: 0;\r\n}\r\n\r\n.info-box li {\r\n margin: 0.25rem 0;\r\n color: #666;\r\n}\r\n\r\n.info-box a {\r\n color: #667eea;\r\n text-decoration: none;\r\n}\r\n\r\n.info-box a:hover {\r\n text-decoration: underline;\r\n}\r\n\r\n.info-box pre {\r\n background: white;\r\n padding: 1rem;\r\n border-radius: 4px;\r\n overflow-x: auto;\r\n font-size: 0.85rem;\r\n margin-top: 0.5rem;\r\n}\r\n\r\n.toggle-switch {\r\n position: relative;\r\n display: inline-block;\r\n width: 60px;\r\n height: 34px;\r\n}\r\n\r\n.toggle-switch input {\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n}\r\n\r\n.toggle-slider {\r\n position: absolute;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: #ccc;\r\n transition: .4s;\r\n border-radius: 34px;\r\n}\r\n\r\n.toggle-slider:before {\r\n position: absolute;\r\n content: \"\";\r\n height: 26px;\r\n width: 26px;\r\n left: 4px;\r\n bottom: 4px;\r\n background-color: white;\r\n transition: .4s;\r\n border-radius: 50%;\r\n}\r\n\r\n.toggle-switch input:checked + .toggle-slider {\r\n background-color: #667eea;\r\n}\r\n\r\n.toggle-switch input:checked + .toggle-slider:before {\r\n transform: translateX(26px);\r\n}\r\n\r\n.btn-secondary {\r\n background: #6c757d;\r\n color: white;\r\n margin-top: 1rem;\r\n}\r\n\r\n.btn-secondary:hover:not(:disabled) {\r\n background: #5a6268;\r\n}\r\n\r\n.btn-secondary:disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n}\r\n\r\n.test-result {\r\n padding: 1rem;\r\n border-radius: 8px;\r\n margin: 1.5rem 0;\r\n}\r\n\r\n.test-result.success {\r\n background: #d4edda;\r\n color: #155724;\r\n border: 1px solid #c3e6cb;\r\n}\r\n\r\n.test-result.error {\r\n background: #f8d7da;\r\n color: #721c24;\r\n border: 1px solid #f5c6cb;\r\n}\r\n\r\n.test-result strong {\r\n display: block;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\n.test-result p {\r\n margin: 0;\r\n}\r\n\r\n.settings-actions {\r\n display: flex;\r\n justify-content: center;\r\n margin-top: 2rem;\r\n}\r\n\r\n.btn-large {\r\n padding: 1rem 3rem;\r\n font-size: 1.1rem;\r\n}\r\n"],"names":[],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/client/build/static/js/main.ca674b04.js b/client/build/static/js/main.7f40b053.js similarity index 87% rename from client/build/static/js/main.ca674b04.js rename to client/build/static/js/main.7f40b053.js index a2fccb2..4c9f5e3 100644 --- a/client/build/static/js/main.ca674b04.js +++ b/client/build/static/js/main.7f40b053.js @@ -1,3 +1,3 @@ -/*! For license information please see main.ca674b04.js.LICENSE.txt */ -(()=>{var e={356:(e,t,n)=>{e.exports=n(9645).last},418:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.toString=function e(t){if(null==t)return"";if("string"===typeof t)return t;if(Array.isArray(t))return t.map(e).join(",");const n=String(t);return"0"===n&&Object.is(Number(t),-0)?"-0":n}},579:(e,t,n)=>{"use strict";e.exports=n(2799)},870:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isObject=function(e){return null!==e&&("object"===typeof e||"function"===typeof e)}},1203:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(8420);t.isArrayLike=function(e){return null!=e&&"function"!==typeof e&&r.isLength(e.length)}},1293:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(4830);t.debounce=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};"object"!==typeof n&&(n={});const{leading:a=!1,trailing:i=!0,maxWait:o}=n,l=Array(2);let s;a&&(l[0]="leading"),i&&(l[1]="trailing");let c=null;const u=r.debounce(function(){for(var t=arguments.length,n=new Array(t),r=0;r=o)?(s=e.apply(this,n),c=Date.now(),u.cancel(),u.schedule(),s):(u.apply(this,n),s)};return d.cancel=u.cancel,d.flush=()=>(u.flush(),s),d}},1444:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(418),a=n(3272);t.toPath=function(e){if(Array.isArray(e))return e.map(a.toKey);if("symbol"===typeof e)return[e];const t=[],n=(e=r.toString(e)).length;if(0===n)return t;let i=0,o="",l="",s=!1;for(46===e.charCodeAt(0)&&(t.push(""),i++);i{"use strict";e.exports=n(5082)},2104:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(1203),a=n(9921);t.isArrayLikeObject=function(e){return a.isObjectLike(e)&&r.isArrayLike(e)}},2132:(e,t,n)=>{"use strict";var r=n(2897).default;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const a=n(870),i=n(4803),o=n(9972);function l(e,t,n,u){if(t===e)return!0;switch(typeof t){case"object":return function(e,t,n,r){if(null==t)return!0;if(Array.isArray(t))return s(e,t,n,r);if(t instanceof Map)return function(e,t,n,r){if(0===t.size)return!0;if(!(e instanceof Map))return!1;for(const[a,i]of t.entries()){if(!1===n(e.get(a),i,a,e,t,r))return!1}return!0}(e,t,n,r);if(t instanceof Set)return c(e,t,n,r);const a=Object.keys(t);if(null==e)return 0===a.length;if(0===a.length)return!0;if(null!==r&&void 0!==r&&r.has(t))return r.get(t)===e;null===r||void 0===r||r.set(t,e);try{for(let o=0;o0?l(e,r({},t),n,u):o.eq(e,t);default:return a.isObject(e)?"string"!==typeof t||""===t:o.eq(e,t)}}function s(e,t,n,r){if(0===t.length)return!0;if(!Array.isArray(e))return!1;const a=new Set;for(let i=0;i{}):l(t,n,function e(t,n,a,i,o,s){const c=r(t,n,a,i,o,s);return void 0!==c?Boolean(c):l(t,n,e,s)},new Map)},t.isSetMatch=c},2204:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(5316),a=n(7312),i=n(3799);t.sortBy=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o1&&i.isIterateeCall(e,n[0],n[1])?n=[]:l>2&&i.isIterateeCall(n[0],n[1],n[2])&&(n=[n[0]]),r.orderBy(e,a.flatten(n),["asc"])}},2330:(e,t,n)=>{"use strict";var r=n(5043);var a="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t},i=r.useState,o=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var u="undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),a=r[0].inst,u=r[1];return l(function(){a.value=n,a.getSnapshot=t,c(a)&&u({inst:a})},[e,n,t]),o(function(){return c(a)&&u({inst:a}),e(function(){c(a)&&u({inst:a})})},[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:u},2489:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isDeepKey=function(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}},2682:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isPlainObject=function(e){if("object"!==typeof e)return!1;if(null==e)return!1;if(null===Object.getPrototypeOf(e))return!0;if("[object Object]"!==Object.prototype.toString.call(e)){var t;const n=e[Symbol.toStringTag];if(null==n)return!1;return!!(null!==(t=Object.getOwnPropertyDescriptor(e,Symbol.toStringTag))&&void 0!==t&&t.writable)&&e.toString()==="[object ".concat(n,"]")}let n=e;for(;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(e)===n}},2715:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(9599),a=n(7330),i=n(3808),o=n(8845);t.iteratee=function(e){if(null==e)return r.identity;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&2===e.length?o.matchesProperty(e[0],e[1]):i.matches(e);case"string":case"symbol":case"number":return a.property(e)}}},2777:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isSymbol=function(e){return"symbol"===typeof e||e instanceof Symbol}},2799:(e,t)=>{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function a(e,t,r){var a=null;if(void 0!==r&&(a=""+r),void 0!==t.key&&(a=""+t.key),"key"in t)for(var i in r={},t)"key"!==i&&(r[i]=t[i]);else r=t;return t=r.ref,{$$typeof:n,type:e,key:a,ref:void 0!==t?t:null,props:r}}t.Fragment=r,t.jsx=a,t.jsxs=a},2897:(e,t,n)=>{var r=n(3693);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}e.exports=function(e){for(var t=1;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.toKey=function(e){var t;return"string"===typeof e||"symbol"===typeof e?e:Object.is(null===e||void 0===e||null===(t=e.valueOf)||void 0===t?void 0:t.call(e),-0)?"-0":String(e)}},3693:(e,t,n)=>{var r=n(7736);e.exports=function(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports},3738:e=>{function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},3757:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isTypedArray=function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}},3799:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(4704),a=n(1203),i=n(870),o=n(9972);t.isIterateeCall=function(e,t,n){return!!i.isObject(n)&&(!!("number"===typeof t&&a.isArrayLike(n)&&r.isIndex(t)&&t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(8268),a=n(5261);t.matches=function(e){return e=a.cloneDeep(e),t=>r.isMatch(t,e)}},3821:(e,t,n)=>{e.exports=n(2204).sortBy},4208:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.uniqBy=function(e,t){const n=new Map;for(let r=0;r{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),h=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,v={};function g(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||m}function b(){}function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var w=x.prototype=new b;w.constructor=x,y(w,g.prototype),w.isPureReactComponent=!0;var S=Array.isArray;function k(){}var O={H:null,A:null,T:null,S:null},j=Object.prototype.hasOwnProperty;function E(e,t,r){var a=r.ref;return{$$typeof:n,type:e,key:t,ref:void 0!==a?a:null,props:r}}function P(e){return"object"===typeof e&&null!==e&&e.$$typeof===n}var _=/\/+/g;function A(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(e){return t[e]})}(""+e.key):t.toString(36)}function C(e,t,a,i,o){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s,c,u=!1;if(null===e)u=!0;else switch(l){case"bigint":case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case n:case r:u=!0;break;case f:return C((u=e._init)(e._payload),t,a,i,o)}}if(u)return o=o(e),u=""===i?"."+A(e,0):i,S(o)?(a="",null!=u&&(a=u.replace(_,"$&/")+"/"),C(o,t,a,"",function(e){return e})):null!=o&&(P(o)&&(s=o,c=a+(null==o.key||e&&e.key===o.key?"":(""+o.key).replace(_,"$&/")+"/")+u,o=E(s.type,c,s.props)),t.push(o)),1;u=0;var d,p=""===i?".":i+":";if(S(e))for(var m=0;m{e.exports=n(5053).uniqBy},4391:(e,t,n)=>{"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(7004)},4704:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=/^(?:0|[1-9]\d*)$/;t.isIndex=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_SAFE_INTEGER;switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isPrimitive=function(e){return null==e||"object"!==typeof e&&"function"!==typeof e}},4830:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.debounce=function(e,t){let n,{signal:r,edges:a}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=null;const o=null!=a&&a.includes("leading"),l=null==a||a.includes("trailing"),s=()=>{null!==i&&(e.apply(n,i),n=void 0,i=null)};let c=null;const u=()=>{null!=c&&clearTimeout(c),c=setTimeout(()=>{c=null,l&&s(),d()},t)},d=()=>{null!==c&&(clearTimeout(c),c=null),n=void 0,i=null},f=function(){if(null!==r&&void 0!==r&&r.aborted)return;n=this;for(var e=arguments.length,t=new Array(e),a=0;a{s()},null===r||void 0===r||r.addEventListener("abort",d,{once:!0}),f}},4879:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(6770);t.toFinite=function(e){if(!e)return 0===e?e:0;if((e=r.toNumber(e))===1/0||e===-1/0){return(e<0?-1:1)*Number.MAX_VALUE}return e===e?e:0}},5043:(e,t,n)=>{"use strict";e.exports=n(4288)},5053:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(4208),a=n(9599),i=n(2104),o=n(2715);t.uniqBy=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.identity;return i.isArrayLikeObject(e)?r.uniqBy(Array.from(e),o.iteratee(t)):[]}},5082:(e,t)=>{"use strict";var n=60103,r=60106,a=60107,i=60108,o=60114,l=60109,s=60110,c=60112,u=60113,d=60120,f=60115,p=60116,h=60121,m=60122,y=60117,v=60129,g=60131;if("function"===typeof Symbol&&Symbol.for){var b=Symbol.for;n=b("react.element"),r=b("react.portal"),a=b("react.fragment"),i=b("react.strict_mode"),o=b("react.profiler"),l=b("react.provider"),s=b("react.context"),c=b("react.forward_ref"),u=b("react.suspense"),d=b("react.suspense_list"),f=b("react.memo"),p=b("react.lazy"),h=b("react.block"),m=b("react.server.block"),y=b("react.fundamental"),v=b("react.debug_trace_mode"),g=b("react.legacy_hidden")}function x(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case a:case o:case i:case u:case d:return e;default:switch(e=e&&e.$$typeof){case s:case c:case p:case f:case l:return e;default:return t}}case r:return t}}}t.isFragment=function(e){return x(e)===a}},5261:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(6433);t.cloneDeep=function(e){return r.cloneDeepWithImpl(e,void 0,e,new Map,void 0)}},5303:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(2489),a=n(4704),i=n(6321),o=n(1444);t.has=function(e,t){let n;if(n=Array.isArray(t)?t:"string"===typeof t&&r.isDeepKey(t)&&null==(null===e||void 0===e?void 0:e[t])?o.toPath(t):[t],0===n.length)return!1;let l=e;for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(9709),a=n(7043),i=n(1444);t.orderBy=function(e,t,n,o){if(null==e)return[];n=o?void 0:n,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=null==t?[null]:[t]),0===t.length&&(t=[null]),Array.isArray(n)||(n=null==n?[]:[n]),n=n.map(e=>String(e));const l=(e,t)=>{let n=e;for(let r=0;r(Array.isArray(e)&&1===e.length&&(e=e[0]),null==e||"function"===typeof e||Array.isArray(e)||a.isKey(e)?e:{key:e,path:i.toPath(e)}));return e.map(e=>({original:e,criteria:s.map(t=>((e,t)=>null==t||null==e?t:"object"===typeof e&&"key"in e?Object.hasOwn(t,e.key)?t[e.key]:l(t,e.path):"function"===typeof e?e(t):Array.isArray(e)?l(t,e):"object"===typeof t?t[e]:t)(t,e))})).slice().sort((e,t)=>{for(let a=0;ae.original)}},5414:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(1293);t.throttle=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{leading:a=!0,trailing:i=!0}=n;return r.debounce(e,t,{leading:a,maxWait:t,trailing:i})}},5508:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(6433),a=n(7599);t.cloneDeepWith=function(e,t){return r.cloneDeepWith(e,(n,i,o,l)=>{const s=null===t||void 0===t?void 0:t(n,i,o,l);if(void 0!==s)return s;if("object"===typeof e)switch(Object.prototype.toString.call(e)){case a.numberTag:case a.stringTag:case a.booleanTag:{const t=new e.constructor(null===e||void 0===e?void 0:e.valueOf());return r.copyProperties(t,e),t}case a.argumentsTag:{const t={};return r.copyProperties(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}})}},5896:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0>>1,a=e[r];if(!(0>>1;ri(s,n))ci(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[l]=n,r=l);else{if(!(ci(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"===typeof performance&&"function"===typeof performance.now){var o=performance;t.unstable_now=function(){return o.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var c=[],u=[],d=1,f=null,p=3,h=!1,m=!1,y=!1,v=!1,g="function"===typeof setTimeout?setTimeout:null,b="function"===typeof clearTimeout?clearTimeout:null,x="undefined"!==typeof setImmediate?setImmediate:null;function w(e){for(var t=r(u);null!==t;){if(null===t.callback)a(u);else{if(!(t.startTime<=e))break;a(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function S(e){if(y=!1,w(e),!m)if(null!==r(c))m=!0,O||(O=!0,k());else{var t=r(u);null!==t&&N(S,t.startTime-e)}}var k,O=!1,j=-1,E=5,P=-1;function _(){return!!v||!(t.unstable_now()-Pe&&_());){var o=f.callback;if("function"===typeof o){f.callback=null,p=f.priorityLevel;var l=o(f.expirationTime<=e);if(e=t.unstable_now(),"function"===typeof l){f.callback=l,w(e),n=!0;break t}f===r(c)&&a(c),w(e)}else a(c);f=r(c)}if(null!==f)n=!0;else{var s=r(u);null!==s&&N(S,s.startTime-e),n=!1}}break e}finally{f=null,p=i,h=!1}n=void 0}}finally{n?k():O=!1}}}if("function"===typeof x)k=function(){x(A)};else if("undefined"!==typeof MessageChannel){var C=new MessageChannel,T=C.port2;C.port1.onmessage=A,k=function(){T.postMessage(null)}}else k=function(){g(A,0)};function N(e,n){j=g(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125o?(e.sortIndex=i,n(u,e),null===r(c)&&e===r(u)&&(y?(b(j),j=-1):y=!0,N(S,i-o))):(e.sortIndex=l,n(c,e),m||h||(m=!0,O||(O=!0,k()))),e},t.unstable_shouldYield=_,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},5990:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.getTag=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}},6321:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(5990);t.isArguments=function(e){return null!==e&&"object"===typeof e&&"[object Arguments]"===r.getTag(e)}},6392:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.last=function(e){return e[e.length-1]}},6433:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(6443),a=n(5990),i=n(7599),o=n(4803),l=n(3757);function s(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new Map,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;const d=null===u||void 0===u?void 0:u(e,t,n,r);if(void 0!==d)return d;if(o.isPrimitive(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){const t=new Array(e.length);r.set(e,t);for(let a=0;a2&&void 0!==arguments[2]?arguments[2]:e,a=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;const o=[...Object.keys(t),...r.getSymbols(t)];for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.getSymbols=function(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}},6672:(e,t,n)=>{"use strict";var r=n(5043);function a(e){var t="https://react.dev/errors/"+e;if(1{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(2777);t.toNumber=function(e){return r.isSymbol(e)?NaN:Number(e)}},7004:(e,t,n)=>{"use strict";var r=n(8853),a=n(5043),i=n(7950);function o(e){var t="https://react.dev/errors/"+e;if(1L||(e.current=z[L],z[L]=null,L--)}function U(e,t){L++,z[L]=e.current,e.current=t}var W,H,K=F(null),q=F(null),V=F(null),$=F(null);function Y(e,t){switch(U(V,t),U(q,e),U(K,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=gd(t=vd(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}B(K),U(K,e)}function G(){B(K),B(q),B(V)}function Q(e){null!==e.memoizedState&&U($,e);var t=K.current,n=gd(t,e.type);t!==n&&(U(q,e),U(K,n))}function X(e){q.current===e&&(B(K),B(q)),$.current===e&&(B($),df._currentValue=R)}function Z(e){if(void 0===W)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);W=t&&t[1]||"",H=-1)":-1--a||s[r]!==c[a]){var u="\n"+s[r].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}}while(1<=r&&0<=a);break}}}finally{J=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?Z(n):""}function te(e,t){switch(e.tag){case 26:case 27:case 5:return Z(e.type);case 16:return Z("Lazy");case 13:return e.child!==t&&null!==t?Z("Suspense Fallback"):Z("Suspense");case 19:return Z("SuspenseList");case 0:case 15:return ee(e.type,!1);case 11:return ee(e.type.render,!1);case 1:return ee(e.type,!0);case 31:return Z("Activity");default:return""}}function ne(e){try{var t="",n=null;do{t+=te(e,n),n=e,e=e.return}while(e);return t}catch(r){return"\nError generating stack: "+r.message+"\n"+r.stack}}var re=Object.prototype.hasOwnProperty,ae=r.unstable_scheduleCallback,ie=r.unstable_cancelCallback,oe=r.unstable_shouldYield,le=r.unstable_requestPaint,se=r.unstable_now,ce=r.unstable_getCurrentPriorityLevel,ue=r.unstable_ImmediatePriority,de=r.unstable_UserBlockingPriority,fe=r.unstable_NormalPriority,pe=r.unstable_LowPriority,he=r.unstable_IdlePriority,me=r.log,ye=r.unstable_setDisableYieldValue,ve=null,ge=null;function be(e){if("function"===typeof me&&ye(e),ge&&"function"===typeof ge.setStrictMode)try{ge.setStrictMode(ve,e)}catch(t){}}var xe=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(we(e)/Se|0)|0},we=Math.log,Se=Math.LN2;var ke=256,Oe=262144,je=4194304;function Ee(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Pe(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var a=0,i=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var l=134217727&r;return 0!==l?0!==(r=l&~i)?a=Ee(r):0!==(o&=l)?a=Ee(o):n||0!==(n=l&~e)&&(a=Ee(n)):0!==(l=r&~i)?a=Ee(l):0!==o?a=Ee(o):n||0!==(n=r&~e)&&(a=Ee(n)),0===a?0:0!==t&&t!==a&&0===(t&i)&&((i=a&-a)>=(n=t&-t)||32===i&&0!==(4194048&n))?t:a}function _e(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function Ae(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function Ce(){var e=je;return 0===(62914560&(je<<=1))&&(je=4194304),e}function Te(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ne(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Me(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-xe(t);e.entangledLanes|=t,e.entanglements[r]=1073741824|e.entanglements[r]|261930&n}function De(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-xe(n),a=1<=En),An=String.fromCharCode(32),Cn=!1;function Tn(e,t){switch(e){case"keyup":return-1!==On.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Nn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Mn=!1;var Dn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function In(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Dn[e.type]:"textarea"===t}function Rn(e,t,n,r){It?Rt?Rt.push(r):Rt=[r]:It=r,0<(t=rd(t,"onChange")).length&&(n=new nn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var zn=null,Ln=null;function Fn(e){Gu(e,0)}function Bn(e){if(ht(Ze(e)))return e}function Un(e,t){if("change"===e)return t}var Wn=!1;if(Ut){var Hn;if(Ut){var Kn="oninput"in document;if(!Kn){var qn=document.createElement("div");qn.setAttribute("oninput","return;"),Kn="function"===typeof qn.oninput}Hn=Kn}else Hn=!1;Wn=Hn&&(!document.documentMode||9=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=er(r)}}function nr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?nr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function rr(e){for(var t=mt((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=mt((e=t.contentWindow).document)}return t}function ar(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var ir=Ut&&"documentMode"in document&&11>=document.documentMode,or=null,lr=null,sr=null,cr=!1;function ur(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;cr||null==or||or!==mt(r)||("selectionStart"in(r=or)&&ar(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},sr&&Jn(sr,r)||(sr=r,0<(r=rd(lr,"onSelect")).length&&(t=new nn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=or)))}function dr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var fr={animationend:dr("Animation","AnimationEnd"),animationiteration:dr("Animation","AnimationIteration"),animationstart:dr("Animation","AnimationStart"),transitionrun:dr("Transition","TransitionRun"),transitionstart:dr("Transition","TransitionStart"),transitioncancel:dr("Transition","TransitionCancel"),transitionend:dr("Transition","TransitionEnd")},pr={},hr={};function mr(e){if(pr[e])return pr[e];if(!fr[e])return e;var t,n=fr[e];for(t in n)if(n.hasOwnProperty(t)&&t in hr)return pr[e]=n[t];return e}Ut&&(hr=document.createElement("div").style,"AnimationEvent"in window||(delete fr.animationend.animation,delete fr.animationiteration.animation,delete fr.animationstart.animation),"TransitionEvent"in window||delete fr.transitionend.transition);var yr=mr("animationend"),vr=mr("animationiteration"),gr=mr("animationstart"),br=mr("transitionrun"),xr=mr("transitionstart"),wr=mr("transitioncancel"),Sr=mr("transitionend"),kr=new Map,Or="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function jr(e,t){kr.set(e,t),rt(t,[e])}Or.push("scrollEnd");var Er="function"===typeof reportError?reportError:function(e){if("object"===typeof window&&"function"===typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"===typeof e&&null!==e&&"string"===typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"===typeof process&&"function"===typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},Pr=[],_r=0,Ar=0;function Cr(){for(var e=_r,t=Ar=_r=0;t>=o,a-=o,na=1<<32-xe(t)+a|n<m?(y=d,d=null):y=d.sibling;var v=p(a,d,l[m],s);if(null===v){null===d&&(d=y);break}e&&d&&null===v.alternate&&t(a,d),o=i(v,o,m),null===u?c=v:u.sibling=v,u=v,d=y}if(m===l.length)return n(a,d),da&&aa(a,m),c;if(null===d){for(;my?(v=m,m=null):v=m.sibling;var b=p(a,m,g.value,c);if(null===b){null===m&&(m=v);break}e&&m&&null===b.alternate&&t(a,m),l=i(b,l,y),null===d?u=b:d.sibling=b,d=b,m=v}if(g.done)return n(a,m),da&&aa(a,y),u;if(null===m){for(;!g.done;y++,g=s.next())null!==(g=f(a,g.value,c))&&(l=i(g,l,y),null===d?u=g:d.sibling=g,d=g);return da&&aa(a,y),u}for(m=r(m);!g.done;y++,g=s.next())null!==(g=h(m,a,y,g.value,c))&&(e&&null!==g.alternate&&m.delete(null===g.key?y:g.key),l=i(g,l,y),null===d?u=g:d.sibling=g,d=g);return e&&m.forEach(function(e){return t(a,e)}),da&&aa(a,y),u}(s,c,u=b.call(u),d)}if("function"===typeof u.then)return g(s,c,ci(u),d);if(u.$$typeof===w)return g(s,c,Ma(s,u),d);di(s,u)}return"string"===typeof u&&""!==u||"number"===typeof u||"bigint"===typeof u?(u=""+u,null!==c&&6===c.tag?(n(s,c.sibling),(d=a(c,u)).return=s,s=d):(n(s,c),(d=Kr(u,s.mode,d)).return=s,s=d),l(s)):n(s,c)}return function(e,t,n,r){try{si=0;var a=g(e,t,n,r);return li=null,a}catch(o){if(o===Xa||o===Ja)throw o;var i=Lr(29,o,null,e.mode);return i.lanes=r,i.return=e,i}}}var pi=fi(!0),hi=fi(!1),mi=!1;function yi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function vi(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function gi(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function bi(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!==(2&pc)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,t=Ir(e),Dr(e,null,n),t}return Tr(e,r,t,n),Ir(e)}function xi(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!==(4194048&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,De(e,n)}}function wi(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,i=null;if(null!==(n=n.firstBaseUpdate)){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===i?a=i=o:i=i.next=o,n=n.next}while(null!==n);null===i?a=i=t:i=i.next=t}else a=i=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:r.shared,callbacks:r.callbacks},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Si=!1;function ki(){if(Si){if(null!==Ka)throw Ka}}function Oi(e,t,n,r){Si=!1;var a=e.updateQueue;mi=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,c=s.next;s.next=null,null===o?i=c:o.next=c,o=s;var u=e.alternate;null!==u&&((l=(u=u.updateQueue).lastBaseUpdate)!==o&&(null===l?u.firstBaseUpdate=c:l.next=c,u.lastBaseUpdate=s))}if(null!==i){var d=a.baseState;for(o=0,u=c=s=null,l=i;;){var f=-536870913&l.lane,h=f!==l.lane;if(h?(yc&f)===f:(r&f)===f){0!==f&&f===Ha&&(Si=!0),null!==u&&(u=u.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var m=e,y=l;f=t;var v=n;switch(y.tag){case 1:if("function"===typeof(m=y.payload)){d=m.call(v,d,f);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null===(f="function"===typeof(m=y.payload)?m.call(v,d,f):m)||void 0===f)break e;d=p({},d,f);break e;case 2:mi=!0}}null!==(f=l.callback)&&(e.flags|=64,h&&(e.flags|=8192),null===(h=a.callbacks)?a.callbacks=[f]:h.push(f))}else h={lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===u?(c=u=h,s=d):u=u.next=h,o|=f;if(null===(l=l.next)){if(null===(l=a.shared.pending))break;l=(h=l).next,h.next=null,a.lastBaseUpdate=h,a.shared.pending=null}}null===u&&(s=d),a.baseState=s,a.firstBaseUpdate=c,a.lastBaseUpdate=u,null===i&&(a.shared.lanes=0),Oc|=o,e.lanes=o,e.memoizedState=d}}function ji(e,t){if("function"!==typeof e)throw Error(o(191,e));e.call(t)}function Ei(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;ei?i:8;var o=D.T,l={};D.T=l,dl(e,!1,t,n);try{var s=a(),c=D.S;if(null!==c&&c(l,s),null!==s&&"object"===typeof s&&"function"===typeof s.then)ul(e,t,function(e,t){var n=[],r={status:"pending",value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status="fulfilled",r.value=t;for(var e=0;e<\/script>",i=i.removeChild(i.firstChild);break;case"select":i="string"===typeof r.is?l.createElement("select",{is:r.is}):l.createElement("select"),r.multiple?i.multiple=!0:r.size&&(i.size=r.size);break;default:i="string"===typeof r.is?l.createElement(a,{is:r.is}):l.createElement(a)}}i[Ue]=t,i[We]=r;e:for(l=t.child;null!==l;){if(5===l.tag||6===l.tag)i.appendChild(l.stateNode);else if(4!==l.tag&&27!==l.tag&&null!==l.child){l.child.return=l,l=l.child;continue}if(l===t)break e;for(;null===l.sibling;){if(null===l.return||l.return===t)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}t.stateNode=i;e:switch(fd(i,a,r),a){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}r&&ls(t)}}return fs(t),ss(t,t.type,null===e||e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&ls(t);else{if("string"!==typeof r&&null===t.stateNode)throw Error(o(166));if(e=V.current,ga(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(a=ca))switch(a.tag){case 27:case 5:r=a.memoizedProps}e[Ue]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||cd(e.nodeValue,n)))||ma(t,!0)}else(e=yd(e).createTextNode(r))[Ue]=t,t.stateNode=e}return fs(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=ga(t),null!==n){if(null===e){if(!r)throw Error(o(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(o(557));e[Ue]=t}else ba(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;fs(t),e=!1}else n=xa(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return 256&t.flags?(Li(t),t):(Li(t),null);if(0!==(128&t.flags))throw Error(o(558))}return fs(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=ga(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(o(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(o(317));a[Ue]=t}else ba(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;fs(t),a=!1}else a=xa(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return 256&t.flags?(Li(t),t):(Li(t),null)}return Li(t),0!==(128&t.flags)?(t.lanes=n,t):(n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(a=null,null!==(r=t.child).alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(a=r.alternate.memoizedState.cachePool.pool),i=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(i=r.memoizedState.cachePool.pool),i!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),us(t,t.updateQueue),fs(t),null);case 4:return G(),null===e&&Ju(t.stateNode.containerInfo),fs(t),null;case 10:return Ea(t.type),fs(t),null;case 19:if(B(Fi),null===(r=t.memoizedState))return fs(t),null;if(a=0!==(128&t.flags),null===(i=r.rendering))if(a)ds(r,!1);else{if(0!==kc||null!==e&&0!==(128&e.flags))for(e=t.child;null!==e;){if(null!==(i=Bi(e))){for(t.flags|=128,ds(r,!1),e=i.updateQueue,t.updateQueue=e,us(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)Ur(n,e),n=n.sibling;return U(Fi,1&Fi.current|2),da&&aa(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&se()>Dc&&(t.flags|=128,a=!0,ds(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=Bi(i))){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,us(t,e),ds(r,!0),null===r.tail&&"hidden"===r.tailMode&&!i.alternate&&!da)return fs(t),null}else 2*se()-r.renderingStartTime>Dc&&536870912!==n&&(t.flags|=128,a=!0,ds(r,!1),t.lanes=4194304);r.isBackwards?(i.sibling=t.child,t.child=i):(null!==(e=r.last)?e.sibling=i:t.child=i,r.last=i)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=se(),e.sibling=null,n=Fi.current,U(Fi,a?1&n|2:1&n),da&&aa(t,r.treeForkCount),e):(fs(t),null);case 22:case 23:return Li(t),Ti(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!==(536870912&n)&&0===(128&t.flags)&&(fs(t),6&t.subtreeFlags&&(t.flags|=8192)):fs(t),null!==(n=t.updateQueue)&&us(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&B($a),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Ea(La),fs(t),null;case 25:case 30:return null}throw Error(o(156,t.tag))}function hs(e,t){switch(la(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Ea(La),G(),0!==(65536&(e=t.flags))&&0===(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return X(t),null;case 31:if(null!==t.memoizedState){if(Li(t),null===t.alternate)throw Error(o(340));ba()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(Li(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));ba()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return B(Fi),null;case 4:return G(),null;case 10:return Ea(t.type),null;case 22:case 23:return Li(t),Ti(),null!==e&&B($a),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return Ea(La),null;default:return null}}function ms(e,t){switch(la(t),t.tag){case 3:Ea(La),G();break;case 26:case 27:case 5:X(t);break;case 4:G();break;case 31:null!==t.memoizedState&&Li(t);break;case 13:Li(t);break;case 19:B(Fi);break;case 10:Ea(t.type);break;case 22:case 23:Li(t),Ti(),null!==e&&B($a);break;case 24:Ea(La)}}function ys(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var a=r.next;n=a;do{if((n.tag&e)===e){r=void 0;var i=n.create,o=n.inst;r=i(),o.destroy=r}n=n.next}while(n!==a)}}catch(l){ku(t,t.return,l)}}function vs(e,t,n){try{var r=t.updateQueue,a=null!==r?r.lastEffect:null;if(null!==a){var i=a.next;r=i;do{if((r.tag&e)===e){var o=r.inst,l=o.destroy;if(void 0!==l){o.destroy=void 0,a=t;var s=n,c=l;try{c()}catch(u){ku(a,s,u)}}}r=r.next}while(r!==i)}}catch(u){ku(t,t.return,u)}}function gs(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{Ei(t,n)}catch(r){ku(e,e.return,r)}}}function bs(e,t,n){n.props=kl(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(r){ku(e,t,r)}}function xs(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}"function"===typeof n?e.refCleanup=n(r):n.current=r}}catch(a){ku(e,t,a)}}function ws(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if("function"===typeof r)try{r()}catch(a){ku(e,t,a)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"===typeof n)try{n(null)}catch(i){ku(e,t,i)}else n.current=null}function Ss(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&r.focus();break e;case"img":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(a){ku(e,e.return,a)}}function ks(e,t,n){try{var r=e.stateNode;!function(e,t,n,r){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var a=null,i=null,l=null,s=null,c=null,u=null,d=null;for(h in n){var f=n[h];if(n.hasOwnProperty(h)&&null!=f)switch(h){case"checked":case"value":break;case"defaultValue":c=f;default:r.hasOwnProperty(h)||ud(e,t,h,null,r,f)}}for(var p in r){var h=r[p];if(f=n[p],r.hasOwnProperty(p)&&(null!=h||null!=f))switch(p){case"type":i=h;break;case"name":a=h;break;case"checked":u=h;break;case"defaultChecked":d=h;break;case"value":l=h;break;case"defaultValue":s=h;break;case"children":case"dangerouslySetInnerHTML":if(null!=h)throw Error(o(137,t));break;default:h!==f&&ud(e,t,p,h,r,f)}}return void gt(e,l,s,c,u,d,i,a);case"select":for(i in h=l=s=p=null,n)if(c=n[i],n.hasOwnProperty(i)&&null!=c)switch(i){case"value":break;case"multiple":h=c;default:r.hasOwnProperty(i)||ud(e,t,i,null,r,c)}for(a in r)if(i=r[a],c=n[a],r.hasOwnProperty(a)&&(null!=i||null!=c))switch(a){case"value":p=i;break;case"defaultValue":s=i;break;case"multiple":l=i;default:i!==c&&ud(e,t,a,i,r,c)}return t=s,n=l,r=h,void(null!=p?wt(e,!!n,p,!1):!!r!==!!n&&(null!=t?wt(e,!!n,t,!0):wt(e,!!n,n?[]:"",!1)));case"textarea":for(s in h=p=null,n)if(a=n[s],n.hasOwnProperty(s)&&null!=a&&!r.hasOwnProperty(s))switch(s){case"value":case"children":break;default:ud(e,t,s,null,r,a)}for(l in r)if(a=r[l],i=n[l],r.hasOwnProperty(l)&&(null!=a||null!=i))switch(l){case"value":p=a;break;case"defaultValue":h=a;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=a)throw Error(o(91));break;default:a!==i&&ud(e,t,l,a,r,i)}return void St(e,p,h);case"option":for(var m in n)if(p=n[m],n.hasOwnProperty(m)&&null!=p&&!r.hasOwnProperty(m))if("selected"===m)e.selected=!1;else ud(e,t,m,null,r,p);for(c in r)if(p=r[c],h=n[c],r.hasOwnProperty(c)&&p!==h&&(null!=p||null!=h))if("selected"===c)e.selected=p&&"function"!==typeof p&&"symbol"!==typeof p;else ud(e,t,c,p,r,h);return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var y in n)p=n[y],n.hasOwnProperty(y)&&null!=p&&!r.hasOwnProperty(y)&&ud(e,t,y,null,r,p);for(u in r)if(p=r[u],h=n[u],r.hasOwnProperty(u)&&p!==h&&(null!=p||null!=h))switch(u){case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(o(137,t));break;default:ud(e,t,u,p,r,h)}return;default:if(_t(t)){for(var v in n)p=n[v],n.hasOwnProperty(v)&&void 0!==p&&!r.hasOwnProperty(v)&&dd(e,t,v,void 0,r,p);for(d in r)p=r[d],h=n[d],!r.hasOwnProperty(d)||p===h||void 0===p&&void 0===h||dd(e,t,d,p,r,h);return}}for(var g in n)p=n[g],n.hasOwnProperty(g)&&null!=p&&!r.hasOwnProperty(g)&&ud(e,t,g,null,r,p);for(f in r)p=r[f],h=n[f],!r.hasOwnProperty(f)||p===h||null==p&&null==h||ud(e,t,f,p,r,h)}(r,e.type,n,t),r[We]=t}catch(a){ku(e,e.return,a)}}function Os(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&Ed(e.type)||4===e.tag}function js(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||Os(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&Ed(e.type))continue e;if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function Es(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?(9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).insertBefore(e,t):((t=9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=Nt));else if(4!==r&&(27===r&&Ed(e.type)&&(n=e.stateNode,t=null),null!==(e=e.child)))for(Es(e,t,n),e=e.sibling;null!==e;)Es(e,t,n),e=e.sibling}function Ps(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&(27===r&&Ed(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(Ps(e,t,n),e=e.sibling;null!==e;)Ps(e,t,n),e=e.sibling}function _s(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);fd(t,r,n),t[Ue]=e,t[We]=n}catch(i){ku(e,e.return,i)}}var As=!1,Cs=!1,Ts=!1,Ns="function"===typeof WeakSet?WeakSet:Set,Ms=null;function Ds(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Ys(e,n),4&r&&ys(5,n);break;case 1:if(Ys(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(o){ku(n,n.return,o)}else{var a=kl(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(a,t,e.__reactInternalSnapshotBeforeUpdate)}catch(l){ku(n,n.return,l)}}64&r&&gs(n),512&r&&xs(n,n.return);break;case 3:if(Ys(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{Ei(e,t)}catch(o){ku(n,n.return,o)}}break;case 27:null===t&&4&r&&_s(n);case 26:case 5:Ys(e,n),null===t&&4&r&&Ss(n),512&r&&xs(n,n.return);break;case 12:Ys(e,n);break;case 31:Ys(e,n),4&r&&Bs(e,n);break;case 13:Ys(e,n),4&r&&Us(e,n),64&r&&(null!==(e=n.memoizedState)&&(null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$~"===e.data)e._reactRetry=t;else if("$?"!==e.data||"loading"!==n.readyState)t();else{var r=function(){t(),n.removeEventListener("DOMContentLoaded",r)};n.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,n=Pu.bind(null,n))));break;case 22:if(!(r=null!==n.memoizedState||As)){t=null!==t&&null!==t.memoizedState||Cs,a=As;var i=Cs;As=r,(Cs=t)&&!i?Qs(e,n,0!==(8772&n.subtreeFlags)):Ys(e,n),As=a,Cs=i}break;case 30:break;default:Ys(e,n)}}function Is(e){var t=e.alternate;null!==t&&(e.alternate=null,Is(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&Ge(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Rs=null,zs=!1;function Ls(e,t,n){for(n=n.child;null!==n;)Fs(e,t,n),n=n.sibling}function Fs(e,t,n){if(ge&&"function"===typeof ge.onCommitFiberUnmount)try{ge.onCommitFiberUnmount(ve,n)}catch(i){}switch(n.tag){case 26:Cs||ws(n,t),Ls(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:Cs||ws(n,t);var r=Rs,a=zs;Ed(n.type)&&(Rs=n.stateNode,zs=!1),Ls(e,t,n),Ld(n.stateNode),Rs=r,zs=a;break;case 5:Cs||ws(n,t);case 6:if(r=Rs,a=zs,Rs=null,Ls(e,t,n),zs=a,null!==(Rs=r))if(zs)try{(9===Rs.nodeType?Rs.body:"HTML"===Rs.nodeName?Rs.ownerDocument.body:Rs).removeChild(n.stateNode)}catch(o){ku(n,t,o)}else try{Rs.removeChild(n.stateNode)}catch(o){ku(n,t,o)}break;case 18:null!==Rs&&(zs?(Pd(9===(e=Rs).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),qf(e)):Pd(Rs,n.stateNode));break;case 4:r=Rs,a=zs,Rs=n.stateNode.containerInfo,zs=!0,Ls(e,t,n),Rs=r,zs=a;break;case 0:case 11:case 14:case 15:vs(2,n,t),Cs||vs(4,n,t),Ls(e,t,n);break;case 1:Cs||(ws(n,t),"function"===typeof(r=n.stateNode).componentWillUnmount&&bs(n,t,r)),Ls(e,t,n);break;case 21:Ls(e,t,n);break;case 22:Cs=(r=Cs)||null!==n.memoizedState,Ls(e,t,n),Cs=r;break;default:Ls(e,t,n)}}function Bs(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&null!==(e=e.memoizedState))){e=e.dehydrated;try{qf(e)}catch(n){ku(t,t.return,n)}}}function Us(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&(null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))))try{qf(e)}catch(n){ku(t,t.return,n)}}function Ws(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new Ns),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new Ns),t;default:throw Error(o(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=_u.bind(null,e,t);t.then(r,r)}})}function Hs(e,t){var n=t.deletions;if(null!==n)for(var r=0;r title"))),fd(i,r,n),i[Ue]=e,et(i),r=i;break e;case"link":var l=nf("link","href",a).get(r+(n.href||""));if(l)for(var s=0;sl)break;var u=s.transferSize,d=s.initiatorType;u&&pd(d)&&(o+=u*((s=s.responseEnd)of?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(a)}}:null}(d,h)))return Bc=i,e.cancelPendingCommit=h(mu.bind(null,e,t,i,n,r,a,o,l,s,u,d,null,f,p)),void Zc(e,i,o,!c)}mu(e,t,i,n,r,a,o,l,s)}function Xc(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&(null!==(n=t.updateQueue)&&null!==(n=n.stores)))for(var r=0;ry&&(o=y,y=m,m=o);var v=tr(l,m),g=tr(l,y);if(v&&g&&(1!==p.rangeCount||p.anchorNode!==v.node||p.anchorOffset!==v.offset||p.focusNode!==g.node||p.focusOffset!==g.offset)){var b=d.createRange();b.setStart(v.node,v.offset),p.removeAllRanges(),m>y?(p.addRange(b),p.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),p.addRange(b))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"===typeof l.focus&&l.focus(),l=0;ln?32:n,D.T=null,n=Wc,Wc=null;var i=Lc,l=Bc;if(zc=0,Fc=Lc=null,Bc=0,0!==(6&pc))throw Error(o(331));var s=pc;if(pc|=4,sc(i.current),ec(i,i.current,l,n),pc=s,Ru(0,!1),ge&&"function"===typeof ge.onPostCommitFiberRoot)try{ge.onPostCommitFiberRoot(ve,i)}catch(c){}return!0}finally{I.p=a,D.T=r,bu(e,t)}}function Su(e,t,n){t=Yr(n,t),null!==(e=bi(e,t=Al(e.stateNode,t,2),2))&&(Ne(e,2),Iu(e))}function ku(e,t,n){if(3===e.tag)Su(e,e,n);else for(;null!==t;){if(3===t.tag){Su(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"===typeof t.type.getDerivedStateFromError||"function"===typeof r.componentDidCatch&&(null===Rc||!Rc.has(r))){e=Yr(n,e),null!==(r=bi(t,n=Cl(2),2))&&(Tl(n,r,t,e),Ne(r,2),Iu(r));break}}t=t.return}}function Ou(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new fc;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(wc=!0,a.add(n),e=ju.bind(null,e,t,n),t.then(e,e))}function ju(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,hc===e&&(yc&n)===n&&(4===kc||3===kc&&(62914560&yc)===yc&&300>se()-Nc?0===(2&pc)&&tu(e,0):Ec|=n,_c===yc&&(_c=0)),Iu(e)}function Eu(e,t){0===t&&(t=Ce()),null!==(e=Mr(e,t))&&(Ne(e,t),Iu(e))}function Pu(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Eu(e,n)}function _u(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(o(314))}null!==r&&r.delete(t),Eu(e,n)}var Au=null,Cu=null,Tu=!1,Nu=!1,Mu=!1,Du=0;function Iu(e){e!==Cu&&null===e.next&&(null===Cu?Au=Cu=e:Cu=Cu.next=e),Nu=!0,Tu||(Tu=!0,Od(function(){0!==(6&pc)?ae(ue,zu):Lu()}))}function Ru(e,t){if(!Mu&&Nu){Mu=!0;do{for(var n=!1,r=Au;null!==r;){if(!t)if(0!==e){var a=r.pendingLanes;if(0===a)var i=0;else{var o=r.suspendedLanes,l=r.pingedLanes;i=(1<<31-xe(42|e)+1)-1,i=201326741&(i&=a&~(o&~l))?201326741&i|1:i?2|i:0}0!==i&&(n=!0,Uu(r,i))}else i=yc,0===(3&(i=Pe(r,r===hc?i:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||_e(r,i)||(n=!0,Uu(r,i));r=r.next}}while(n);Mu=!1}}function zu(){Lu()}function Lu(){Nu=Tu=!1;var e=0;0!==Du&&function(){var e=window.event;if(e&&"popstate"===e.type)return e!==xd&&(xd=e,!0);return xd=null,!1}()&&(e=Du);for(var t=se(),n=null,r=Au;null!==r;){var a=r.next,i=Fu(r,t);0===i?(r.next=null,null===n?Au=a:n.next=a,null===a&&(Cu=n)):(n=r,(0!==e||0!==(3&i))&&(Nu=!0)),r=a}0!==zc&&5!==zc||Ru(e,!1),0!==Du&&(Du=0)}function Fu(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,i=-62914561&e.pendingLanes;0 title"):null)}function af(e){return"stylesheet"!==e.type||0!==(3&e.state.loading)}var of=0;function lf(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages))if(this.stylesheets)cf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var sf=null;function cf(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,sf=new Map,t.forEach(uf,e),sf=null,lf.call(e))}function uf(e,t){if(!(4&t.state.loading)){var n=sf.get(e);if(n)var r=n.get(null);else{n=new Map,sf.set(e,n);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(2777),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;t.isKey=function(e,t){return!Array.isArray(e)&&(!("number"!==typeof e&&"boolean"!==typeof e&&null!=e&&!r.isSymbol(e))||("string"===typeof e&&(i.test(e)||!a.test(e))||null!=t&&Object.hasOwn(t,e)))}},7231:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(3799),a=n(4879);t.range=function(e,t,n){n&&"number"!==typeof n&&r.isIterateeCall(e,t,n)&&(t=n=void 0),e=a.toFinite(e),void 0===t?(t=e,e=0):t=a.toFinite(t),n=void 0===n?e{"use strict";n(8365)},7260:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isUnsafeProperty=function(e){return"__proto__"===e}},7312:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.flatten=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const n=[],r=Math.floor(t),a=(e,t)=>{for(let i=0;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(9323);t.property=function(e){return function(t){return r.get(t,e)}}},7599:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.argumentsTag="[object Arguments]",t.arrayBufferTag="[object ArrayBuffer]",t.arrayTag="[object Array]",t.bigInt64ArrayTag="[object BigInt64Array]",t.bigUint64ArrayTag="[object BigUint64Array]",t.booleanTag="[object Boolean]",t.dataViewTag="[object DataView]",t.dateTag="[object Date]",t.errorTag="[object Error]",t.float32ArrayTag="[object Float32Array]",t.float64ArrayTag="[object Float64Array]",t.functionTag="[object Function]",t.int16ArrayTag="[object Int16Array]",t.int32ArrayTag="[object Int32Array]",t.int8ArrayTag="[object Int8Array]",t.mapTag="[object Map]",t.numberTag="[object Number]",t.objectTag="[object Object]",t.regexpTag="[object RegExp]",t.setTag="[object Set]",t.stringTag="[object String]",t.symbolTag="[object Symbol]",t.uint16ArrayTag="[object Uint16Array]",t.uint32ArrayTag="[object Uint32Array]",t.uint8ArrayTag="[object Uint8Array]",t.uint8ClampedArrayTag="[object Uint8ClampedArray]"},7736:(e,t,n)=>{var r=n(3738).default,a=n(9045);e.exports=function(e){var t=a(e,"string");return"symbol"==r(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},7770:(e,t,n)=>{e.exports=n(9323).get},7820:(e,t,n)=>{e.exports=n(5414).throttle},7950:(e,t,n)=>{"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(6672)},8210:function(e,t,n){var r;!function(){"use strict";var a,i=1e9,o={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},l=!0,s="[DecimalError] ",c=s+"Invalid argument: ",u=s+"Exponent out of range: ",d=Math.floor,f=Math.pow,p=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,h=1e7,m=9007199254740991,y=d(1286742750677284.5),v={};function g(e,t){var n,r,a,i,o,s,c,u,d=e.constructor,f=d.precision;if(!e.s||!t.s)return t.s||(t=new d(e)),l?_(t,f):t;if(c=e.d,u=t.d,o=e.e,a=t.e,c=c.slice(),i=o-a){for(i<0?(r=c,i=-i,s=u.length):(r=u,a=o,s=c.length),i>(s=(o=Math.ceil(f/7))>s?o+1:s+1)&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for((s=c.length)-(i=u.length)<0&&(i=s,r=u,u=c,c=r),n=0;i;)n=(c[--i]=c[i]+u[i]+n)/h|0,c[i]%=h;for(n&&(c.unshift(n),++a),s=c.length;0==c[--s];)c.pop();return t.d=c,t.e=a,l?_(t,f):t}function b(e,t,n){if(e!==~~e||en)throw Error(c+e)}function x(e){var t,n,r,a=e.length-1,i="",o=e[0];if(a>0){for(i+=o,t=1;te.e^i.s<0?1:-1;for(t=0,n=(r=i.d.length)<(a=e.d.length)?r:a;te.d[t]^i.s<0?1:-1;return r===a?0:r>a^i.s<0?1:-1},v.decimalPlaces=v.dp=function(){var e=this,t=e.d.length-1,n=7*(t-e.e);if(t=e.d[t])for(;t%10==0;t/=10)n--;return n<0?0:n},v.dividedBy=v.div=function(e){return w(this,new this.constructor(e))},v.dividedToIntegerBy=v.idiv=function(e){var t=this.constructor;return _(w(this,new t(e),0,1),t.precision)},v.equals=v.eq=function(e){return!this.cmp(e)},v.exponent=function(){return k(this)},v.greaterThan=v.gt=function(e){return this.cmp(e)>0},v.greaterThanOrEqualTo=v.gte=function(e){return this.cmp(e)>=0},v.isInteger=v.isint=function(){return this.e>this.d.length-2},v.isNegative=v.isneg=function(){return this.s<0},v.isPositive=v.ispos=function(){return this.s>0},v.isZero=function(){return 0===this.s},v.lessThan=v.lt=function(e){return this.cmp(e)<0},v.lessThanOrEqualTo=v.lte=function(e){return this.cmp(e)<1},v.logarithm=v.log=function(e){var t,n=this,r=n.constructor,i=r.precision,o=i+5;if(void 0===e)e=new r(10);else if((e=new r(e)).s<1||e.eq(a))throw Error(s+"NaN");if(n.s<1)throw Error(s+(n.s?"NaN":"-Infinity"));return n.eq(a)?new r(0):(l=!1,t=w(E(n,o),E(e,o),o),l=!0,_(t,i))},v.minus=v.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?A(t,e):g(t,(e.s=-e.s,e))},v.modulo=v.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(!(e=new r(e)).s)throw Error(s+"NaN");return n.s?(l=!1,t=w(n,e,0,1).times(e),l=!0,n.minus(t)):_(new r(n),a)},v.naturalExponential=v.exp=function(){return S(this)},v.naturalLogarithm=v.ln=function(){return E(this)},v.negated=v.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},v.plus=v.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?g(t,e):A(t,(e.s=-e.s,e))},v.precision=v.sd=function(e){var t,n,r,a=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(c+e);if(t=k(a)+1,n=7*(r=a.d.length-1)+1,r=a.d[r]){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},v.squareRoot=v.sqrt=function(){var e,t,n,r,a,i,o,c=this,u=c.constructor;if(c.s<1){if(!c.s)return new u(0);throw Error(s+"NaN")}for(e=k(c),l=!1,0==(a=Math.sqrt(+c))||a==1/0?(((t=x(c.d)).length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=d((e+1)/2)-(e<0||e%2),r=new u(t=a==1/0?"5e"+e:(t=a.toExponential()).slice(0,t.indexOf("e")+1)+e)):r=new u(a.toString()),a=o=(n=u.precision)+3;;)if(r=(i=r).plus(w(c,i,o+2)).times(.5),x(i.d).slice(0,o)===(t=x(r.d)).slice(0,o)){if(t=t.slice(o-3,o+1),a==o&&"4999"==t){if(_(i,n+1,0),i.times(i).eq(c)){r=i;break}}else if("9999"!=t)break;o+=4}return l=!0,_(r,n)},v.times=v.mul=function(e){var t,n,r,a,i,o,s,c,u,d=this,f=d.constructor,p=d.d,m=(e=new f(e)).d;if(!d.s||!e.s)return new f(0);for(e.s*=d.s,n=d.e+e.e,(c=p.length)<(u=m.length)&&(i=p,p=m,m=i,o=c,c=u,u=o),i=[],r=o=c+u;r--;)i.push(0);for(r=u;--r>=0;){for(t=0,a=c+r;a>r;)s=i[a]+m[r]*p[a-r-1]+t,i[a--]=s%h|0,t=s/h|0;i[a]=(i[a]+t)%h|0}for(;!i[--o];)i.pop();return t?++n:i.shift(),e.d=i,e.e=n,l?_(e,f.precision):e},v.toDecimalPlaces=v.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),void 0===e?n:(b(e,0,i),void 0===t?t=r.rounding:b(t,0,8),_(n,e+k(n)+1,t))},v.toExponential=function(e,t){var n,r=this,a=r.constructor;return void 0===e?n=C(r,!0):(b(e,0,i),void 0===t?t=a.rounding:b(t,0,8),n=C(r=_(new a(r),e+1,t),!0,e+1)),n},v.toFixed=function(e,t){var n,r,a=this,o=a.constructor;return void 0===e?C(a):(b(e,0,i),void 0===t?t=o.rounding:b(t,0,8),n=C((r=_(new o(a),e+k(a)+1,t)).abs(),!1,e+k(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)},v.toInteger=v.toint=function(){var e=this,t=e.constructor;return _(new t(e),k(e)+1,t.rounding)},v.toNumber=function(){return+this},v.toPower=v.pow=function(e){var t,n,r,i,o,c,u=this,f=u.constructor,p=+(e=new f(e));if(!e.s)return new f(a);if(!(u=new f(u)).s){if(e.s<1)throw Error(s+"Infinity");return u}if(u.eq(a))return u;if(r=f.precision,e.eq(a))return _(u,r);if(c=(t=e.e)>=(n=e.d.length-1),o=u.s,c){if((n=p<0?-p:p)<=m){for(i=new f(a),t=Math.ceil(r/7+4),l=!1;n%2&&T((i=i.times(u)).d,t),0!==(n=d(n/2));)T((u=u.times(u)).d,t);return l=!0,e.s<0?new f(a).div(i):_(i,r)}}else if(o<0)throw Error(s+"NaN");return o=o<0&&1&e.d[Math.max(t,n)]?-1:1,u.s=1,l=!1,i=e.times(E(u,r+12)),l=!0,(i=S(i)).s=o,i},v.toPrecision=function(e,t){var n,r,a=this,o=a.constructor;return void 0===e?r=C(a,(n=k(a))<=o.toExpNeg||n>=o.toExpPos):(b(e,1,i),void 0===t?t=o.rounding:b(t,0,8),r=C(a=_(new o(a),e,t),e<=(n=k(a))||n<=o.toExpNeg,e)),r},v.toSignificantDigits=v.tosd=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(b(e,1,i),void 0===t?t=n.rounding:b(t,0,8)),_(new n(this),e,t)},v.toString=v.valueOf=v.val=v.toJSON=function(){var e=this,t=k(e),n=e.constructor;return C(e,t<=n.toExpNeg||t>=n.toExpPos)};var w=function(){function e(e,t){var n,r=0,a=e.length;for(e=e.slice();a--;)n=e[a]*t+r,e[a]=n%h|0,r=n/h|0;return r&&e.unshift(r),e}function t(e,t,n,r){var a,i;if(n!=r)i=n>r?1:-1;else for(a=i=0;at[a]?1:-1;break}return i}function n(e,t,n){for(var r=0;n--;)e[n]-=r,r=e[n]1;)e.shift()}return function(r,a,i,o){var l,c,u,d,f,p,m,y,v,g,b,x,w,S,O,j,E,P,A=r.constructor,C=r.s==a.s?1:-1,T=r.d,N=a.d;if(!r.s)return new A(r);if(!a.s)throw Error(s+"Division by zero");for(c=r.e-a.e,E=N.length,O=T.length,y=(m=new A(C)).d=[],u=0;N[u]==(T[u]||0);)++u;if(N[u]>(T[u]||0)&&--c,(x=null==i?i=A.precision:o?i+(k(r)-k(a))+1:i)<0)return new A(0);if(x=x/7+2|0,u=0,1==E)for(d=0,N=N[0],x++;(u1&&(N=e(N,d),T=e(T,d),E=N.length,O=T.length),S=E,g=(v=T.slice(0,E)).length;g=h/2&&++j;do{d=0,(l=t(N,v,E,g))<0?(b=v[0],E!=g&&(b=b*h+(v[1]||0)),(d=b/j|0)>1?(d>=h&&(d=h-1),1==(l=t(f=e(N,d),v,p=f.length,g=v.length))&&(d--,n(f,E16)throw Error(u+k(e));if(!e.s)return new p(a);for(null==t?(l=!1,s=h):s=t,o=new p(.03125);e.abs().gte(.1);)e=e.times(o),d+=5;for(s+=Math.log(f(2,d))/Math.LN10*2+5|0,n=r=i=new p(a),p.precision=s;;){if(r=_(r.times(e),s),n=n.times(++c),x((o=i.plus(w(r,n,s))).d).slice(0,s)===x(i.d).slice(0,s)){for(;d--;)i=_(i.times(i),s);return p.precision=h,null==t?(l=!0,_(i,h)):i}i=o}}function k(e){for(var t=7*e.e,n=e.d[0];n>=10;n/=10)t++;return t}function O(e,t,n){if(t>e.LN10.sd())throw l=!0,n&&(e.precision=n),Error(s+"LN10 precision limit exceeded");return _(new e(e.LN10),t)}function j(e){for(var t="";e--;)t+="0";return t}function E(e,t){var n,r,i,o,c,u,d,f,p,h=1,m=e,y=m.d,v=m.constructor,g=v.precision;if(m.s<1)throw Error(s+(m.s?"NaN":"-Infinity"));if(m.eq(a))return new v(0);if(null==t?(l=!1,f=g):f=t,m.eq(10))return null==t&&(l=!0),O(v,f);if(f+=10,v.precision=f,r=(n=x(y)).charAt(0),o=k(m),!(Math.abs(o)<15e14))return d=O(v,f+2,g).times(o+""),m=E(new v(r+"."+n.slice(1)),f-10).plus(d),v.precision=g,null==t?(l=!0,_(m,g)):m;for(;r<7&&1!=r||1==r&&n.charAt(1)>3;)r=(n=x((m=m.times(e)).d)).charAt(0),h++;for(o=k(m),r>1?(m=new v("0."+n),o++):m=new v(r+"."+n.slice(1)),u=c=m=w(m.minus(a),m.plus(a),f),p=_(m.times(m),f),i=3;;){if(c=_(c.times(p),f),x((d=u.plus(w(c,new v(i),f))).d).slice(0,f)===x(u.d).slice(0,f))return u=u.times(2),0!==o&&(u=u.plus(O(v,f+2,g).times(o+""))),u=w(u,new v(h),f),v.precision=g,null==t?(l=!0,_(u,g)):u;u=d,i+=2}}function P(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;48===t.charCodeAt(r);)++r;for(a=t.length;48===t.charCodeAt(a-1);)--a;if(t=t.slice(r,a)){if(a-=r,n=n-r-1,e.e=d(n/7),e.d=[],r=(n+1)%7,n<0&&(r+=7),ry||e.e<-y))throw Error(u+n)}else e.s=0,e.e=0,e.d=[0];return e}function _(e,t,n){var r,a,i,o,s,c,p,m,v=e.d;for(o=1,i=v[0];i>=10;i/=10)o++;if((r=t-o)<0)r+=7,a=t,p=v[m=0];else{if((m=Math.ceil((r+1)/7))>=(i=v.length))return e;for(p=i=v[m],o=1;i>=10;i/=10)o++;a=(r%=7)-7+o}if(void 0!==n&&(s=p/(i=f(10,o-a-1))%10|0,c=t<0||void 0!==v[m+1]||p%i,c=n<4?(s||c)&&(0==n||n==(e.s<0?3:2)):s>5||5==s&&(4==n||c||6==n&&(r>0?a>0?p/f(10,o-a):0:v[m-1])%10&1||n==(e.s<0?8:7))),t<1||!v[0])return c?(i=k(e),v.length=1,t=t-i-1,v[0]=f(10,(7-t%7)%7),e.e=d(-t/7)||0):(v.length=1,v[0]=e.e=e.s=0),e;if(0==r?(v.length=m,i=1,m--):(v.length=m+1,i=f(10,7-r),v[m]=a>0?(p/f(10,o-a)%f(10,a)|0)*i:0),c)for(;;){if(0==m){(v[0]+=i)==h&&(v[0]=1,++e.e);break}if(v[m]+=i,v[m]!=h)break;v[m--]=0,i=1}for(r=v.length;0===v[--r];)v.pop();if(l&&(e.e>y||e.e<-y))throw Error(u+k(e));return e}function A(e,t){var n,r,a,i,o,s,c,u,d,f,p=e.constructor,m=p.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new p(e),l?_(t,m):t;if(c=e.d,f=t.d,r=t.e,u=e.e,c=c.slice(),o=u-r){for((d=o<0)?(n=c,o=-o,s=f.length):(n=f,r=u,s=c.length),o>(a=Math.max(Math.ceil(m/7),s)+2)&&(o=a,n.length=1),n.reverse(),a=o;a--;)n.push(0);n.reverse()}else{for((d=(a=c.length)<(s=f.length))&&(s=a),a=0;a0;--a)c[s++]=0;for(a=f.length;a>o;){if(c[--a]0?i=i.charAt(0)+"."+i.slice(1)+j(r):o>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(a<0?"e":"e+")+a):a<0?(i="0."+j(-a-1)+i,n&&(r=n-o)>0&&(i+=j(r))):a>=o?(i+=j(a+1-o),n&&(r=n-a-1)>0&&(i=i+"."+j(r))):((r=a+1)0&&(a+1===o&&(i+="."),i+=j(r))),e.s<0?"-"+i:i}function T(e,t){if(e.length>t)return e.length=t,!0}function N(e){if(!e||"object"!==typeof e)throw Error(s+"Object expected");var t,n,r,a=["precision",1,i,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t=a[t+1]&&r<=a[t+2]))throw Error(c+n+": "+r);this[n]=r}if(void 0!==(r=e[n="LN10"])){if(r!=Math.LN10)throw Error(c+n+": "+r);this[n]=new this(r)}return this}o=function e(t){var n,r,a;function i(e){var t=this;if(!(t instanceof i))return new i(e);if(t.constructor=i,e instanceof i)return t.s=e.s,t.e=e.e,void(t.d=(e=e.d)?e.slice():e);if("number"===typeof e){if(0*e!==0)throw Error(c+e);if(e>0)t.s=1;else{if(!(e<0))return t.s=0,t.e=0,void(t.d=[0]);e=-e,t.s=-1}return e===~~e&&e<1e7?(t.e=0,void(t.d=[e])):P(t,e.toString())}if("string"!==typeof e)throw Error(c+e);if(45===e.charCodeAt(0)?(e=e.slice(1),t.s=-1):t.s=1,!p.test(e))throw Error(c+e);P(t,e)}if(i.prototype=v,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=e,i.config=i.set=N,void 0===t&&(t={}),t)for(a=["precision","rounding","toExpNeg","toExpPos","LN10"],n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(2132);t.isMatch=function(e,t){return r.isMatchWith(e,t,()=>{})}},8346:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.toArray=function(e){return Array.isArray(e)?e:Array.from(e)}},8365:(e,t,n)=>{"use strict";var r=n(5043);var a="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t},i=r.useSyncExternalStore,o=r.useRef,l=r.useEffect,s=r.useMemo,c=r.useDebugValue},8396:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(5508);t.cloneDeep=function(e){return r.cloneDeepWith(e)}},8420:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isLength=function(e){return Number.isSafeInteger(e)&&e>=0}},8443:(e,t,n)=>{"use strict";e.exports=n(9717)},8499:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n="~";function r(){}function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function i(e,t,r,i,o){if("function"!==typeof r)throw new TypeError("The listener must be a function");var l=new a(r,i||e,o),s=n?n+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],l]:e._events[s].push(l):(e._events[s]=l,e._eventsCount++),e}function o(e,t){0===--e._eventsCount?e._events=new r:delete e._events[t]}function l(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),l.prototype.eventNames=function(){var e,r,a=[];if(0===this._eventsCount)return a;for(r in e=this._events)t.call(e,r)&&a.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?a.concat(Object.getOwnPropertySymbols(e)):a},l.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var a=0,i=r.length,o=new Array(i);a{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(8268),a=n(3272),i=n(8396),o=n(9323),l=n(5303);t.matchesProperty=function(e,t){switch(typeof e){case"object":var n;Object.is(null===(n=e)||void 0===n?void 0:n.valueOf(),-0)&&(e="-0");break;case"number":e=a.toKey(e)}return t=i.cloneDeep(t),function(n){const a=o.get(n,e);return void 0===a?l.has(n,e):void 0===t?void 0===a:r.isMatch(a,t)}}},8853:(e,t,n)=>{"use strict";e.exports=n(5896)},9045:(e,t,n)=>{var r=n(3738).default;e.exports=function(e,t){if("object"!=r(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t||"default");if("object"!=r(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},9323:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(7260),a=n(2489),i=n(3272),o=n(1444);t.get=function e(t,n,l){if(null==t)return l;switch(typeof n){case"string":{if(r.isUnsafeProperty(n))return l;const i=t[n];return void 0===i?a.isDeepKey(n)?e(t,o.toPath(n),l):l:i}case"number":case"symbol":{"number"===typeof n&&(n=i.toKey(n));const e=t[n];return void 0===e?l:e}default:{var s;if(Array.isArray(n))return function(e,t,n){if(0===t.length)return n;let a=e;for(let i=0;i{e.exports=n(2682).isPlainObject},9461:(e,t,n)=>{"use strict";e.exports=n(2330)},9599:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.identity=function(e){return e}},9645:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(6392),a=n(8346),i=n(1203);t.last=function(e){if(i.isArrayLike(e))return r.last(a.toArray(e))}},9709:(e,t)=>{"use strict";function n(e){return"symbol"===typeof e?1:null===e?2:void 0===e?3:e!==e?4:0}Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.compareValues=(e,t,r)=>{if(e!==t){const a=n(e),i=n(t);if(a===i&&0===a){if(et)return"desc"===r?-1:1}return"desc"===r?i-a:a-i}return 0}},9717:(e,t,n)=>{"use strict";var r=n(5043),a=n(9461);var i="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t},o=a.useSyncExternalStore,l=r.useRef,s=r.useEffect,c=r.useMemo,u=r.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,n,r,a){var d=l(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!s){if(s=!0,o=e,e=r(e),void 0!==a&&f.hasValue){var t=f.value;if(a(t,e))return l=t}return l=e}if(t=l,i(o,e))return t;var n=r(e);return void 0!==a&&a(t,n)?(o=e,t):(o=e,l=n)}var o,l,s=!1,c=void 0===n?null:n;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]},[t,n,r,a]);var p=o(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}},9859:(e,t,n)=>{e.exports=n(7231).range},9921:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isObjectLike=function(e){return"object"===typeof e&&null!==e}},9972:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.eq=function(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.m=e,n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;n.t=function(r,a){if(1&a&&(r=this(r)),8&a)return r;if("object"===typeof r&&r){if(4&a&&r.__esModule)return r;if(16&a&&"function"===typeof r.then)return r}var i=Object.create(null);n.r(i);var o={};e=e||[null,t({}),t([]),t(t)];for(var l=2&a&&r;("object"==typeof l||"function"==typeof l)&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach(e=>o[e]=()=>r[e]);return o.default=()=>r,n.d(i,o),i}})(),n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((t,r)=>(n.f[r](e,t),t),[])),n.u=e=>"static/js/"+e+".d456ce70.chunk.js",n.miniCssF=e=>{},n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="client:";n.l=(r,a,i,o)=>{if(e[r])e[r].push(a);else{var l,s;if(void 0!==i)for(var c=document.getElementsByTagName("script"),u=0;u{l.onerror=l.onload=null,clearTimeout(p);var a=e[r];if(delete e[r],l.parentNode&&l.parentNode.removeChild(l),a&&a.forEach(e=>e(n)),t)return t(n)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=f.bind(null,l.onerror),l.onload=f.bind(null,l.onload),s&&document.head.appendChild(l)}}})(),n.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",(()=>{var e={792:0};n.f.j=(t,r)=>{var a=n.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else{var i=new Promise((n,r)=>a=e[t]=[n,r]);r.push(a[2]=i);var o=n.p+n.u(t),l=new Error;n.l(o,r=>{if(n.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var i=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;l.message="Loading chunk "+t+" failed.\n("+i+": "+o+")",l.name="ChunkLoadError",l.type=i,l.request=o,a[1](l)}},"chunk-"+t,t)}};var t=(t,r)=>{var a,i,[o,l,s]=r,c=0;if(o.some(t=>0!==e[t])){for(a in l)n.o(l,a)&&(n.m[a]=l[a]);if(s)s(n)}for(t&&t(r);c{"use strict";var e={};n.r(e),n.d(e,{hasBrowserEnv:()=>In,hasStandardBrowserEnv:()=>zn,hasStandardBrowserWebWorkerEnv:()=>Ln,navigator:()=>Rn,origin:()=>Fn});var t={};n.r(t),n.d(t,{scaleBand:()=>fu,scaleDiverging:()=>lm,scaleDivergingLog:()=>sm,scaleDivergingPow:()=>um,scaleDivergingSqrt:()=>dm,scaleDivergingSymlog:()=>cm,scaleIdentity:()=>ef,scaleImplicit:()=>uu,scaleLinear:()=>Jd,scaleLog:()=>uf,scaleOrdinal:()=>du,scalePoint:()=>hu,scalePow:()=>bf,scaleQuantile:()=>Tf,scaleQuantize:()=>Nf,scaleRadial:()=>Sf,scaleSequential:()=>em,scaleSequentialLog:()=>tm,scaleSequentialPow:()=>rm,scaleSequentialQuantile:()=>im,scaleSequentialSqrt:()=>am,scaleSequentialSymlog:()=>nm,scaleSqrt:()=>xf,scaleSymlog:()=>hf,scaleThreshold:()=>Mf,scaleTime:()=>Qh,scaleUtc:()=>Xh,tickFormat:()=>Xd});var r=n(5043),a=n.t(r,2),i=n(4391);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function l(e){var t=function(e,t){if("object"!=o(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==o(t)?t:t+""}function s(e,t,n){return(t=l(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function u(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{})}function x(e,t){if(!1===e||null===e||"undefined"===typeof e)throw new Error(t)}function w(e,t){if(!e){"undefined"!==typeof console&&console.warn(t);try{throw new Error(t)}catch(n){}}}function S(e,t){return{usr:e.state,key:e.key,idx:t}}function k(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return u(u({pathname:"string"===typeof e?e:e.pathname,search:"",hash:""},"string"===typeof t?j(t):t),{},{state:n,key:t&&t.key||r||Math.random().toString(36).substring(2,10)})}function O(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(t+="#"===r.charAt(0)?r:"#"+r),t}function j(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function E(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},{window:a=document.defaultView,v5Compat:i=!1}=r,o=a.history,l="POP",s=null,c=d();function d(){return(o.state||{idx:null}).idx}function f(){l="POP";let e=d(),t=null==e?null:e-c;c=e,s&&s({action:l,location:h.location,delta:t})}function p(e){return P(e)}null==c&&(c=0,o.replaceState(u(u({},o.state),{},{idx:c}),""));let h={get action(){return l},get location(){return e(a,o)},listen(e){if(s)throw new Error("A history only accepts one active listener");return a.addEventListener(g,f),s=e,()=>{a.removeEventListener(g,f),s=null}},createHref:e=>t(a,e),createURL:p,encodeLocation(e){let t=p(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){l="PUSH";let r=k(h.location,e,t);n&&n(r,e),c=d()+1;let u=S(r,c),f=h.createHref(r);try{o.pushState(u,"",f)}catch(p){if(p instanceof DOMException&&"DataCloneError"===p.name)throw p;a.location.assign(f)}i&&s&&s({action:l,location:h.location,delta:1})},replace:function(e,t){l="REPLACE";let r=k(h.location,e,t);n&&n(r,e),c=d();let a=S(r,c),u=h.createHref(r);o.replaceState(a,"",u),i&&s&&s({action:l,location:h.location,delta:0})},go:e=>o.go(e)};return h}function P(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n="http://localhost";"undefined"!==typeof window&&(n="null"!==window.location.origin?window.location.origin:window.location.href),x(n,"No window.location.(origin|href) available to create URL");let r="string"===typeof e?e:O(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}new WeakMap;function _(e,t){return A(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:"/",!1)}function A(e,t,n,r){let a=K(("string"===typeof t?j(t):t).pathname||"/",n);if(null==a)return null;let i=C(e);!function(e){e.sort((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n]);return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)))}(i);let o=null;for(let l=0;null==o&&l1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i=function(e,i){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a,l=arguments.length>3?arguments[3]:void 0,s={relativePath:void 0===l?e.path||"":l,caseSensitive:!0===e.caseSensitive,childrenIndex:i,route:e};if(s.relativePath.startsWith("/")){if(!s.relativePath.startsWith(r)&&o)return;x(s.relativePath.startsWith(r),'Absolute route path "'.concat(s.relativePath,'" nested under path "').concat(r,'" is not valid. An absolute child route path must start with the combined path of all its parent routes.')),s.relativePath=s.relativePath.slice(r.length)}let c=Z([r,s.relativePath]),u=n.concat(s);e.children&&e.children.length>0&&(x(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'.concat(c,'".')),C(e.children,t,u,c,o)),(null!=e.path||e.index)&&t.push({path:c,score:F(c,e.index),routesMeta:u})};return e.forEach((e,t)=>{var n;if(""!==e.path&&null!==(n=e.path)&&void 0!==n&&n.includes("?"))for(let r of T(e.path))i(e,t,!0,r);else i(e,t)}),t}function T(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,a=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===r.length)return a?[i,""]:[i];let o=T(r.join("/")),l=[];return l.push(...o.map(e=>""===e?i:[i,e].join("/"))),a&&l.push(...o),l.map(t=>e.startsWith("/")&&""===t?"/":t)}var N=/^:[\w-]+$/,M=3,D=2,I=1,R=10,z=-2,L=e=>"*"===e;function F(e,t){let n=e.split("/"),r=n.length;return n.some(L)&&(r+=z),t&&(r+=D),n.filter(e=>!L(e)).reduce((e,t)=>e+(N.test(t)?M:""===t?I:R),r)}function B(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],{routesMeta:r}=e,a={},i="/",o=[];for(let l=0;l{let{paramName:r,isOptional:a}=t;if("*"===r){let e=l[n]||"";o=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}const s=l[n];return e[r]=a&&!s?void 0:(s||"").replace(/%2F/g,"/"),e},{});return{params:s,pathname:i,pathnameBase:o,pattern:e}}function W(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];w("*"===e||!e.endsWith("*")||e.endsWith("/*"),'Route path "'.concat(e,'" will be treated as if it were "').concat(e.replace(/\*$/,"/*"),'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "').concat(e.replace(/\*$/,"/*"),'".'));let r=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,n)=>(r.push({paramName:t,isOptional:null!=n}),n?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(r.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),r]}function H(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return w(!1,'The URL path "'.concat(e,'" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (').concat(t,").")),e}}function K(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}var q=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,V=e=>q.test(e);function $(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)}),n.length>1?n.join("/"):"/"}function Y(e,t,n,r){return"Cannot include a '".concat(e,"' character in a manually specified `to.").concat(t,"` field [").concat(JSON.stringify(r),"]. Please separate it out to the `to.").concat(n,'` field. Alternatively you may provide the full path as a string in and the router will parse it for you.')}function G(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function Q(e){let t=G(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function X(e,t,n){let r,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];"string"===typeof e?r=j(e):(r=u({},e),x(!r.pathname||!r.pathname.includes("?"),Y("?","pathname","search",r)),x(!r.pathname||!r.pathname.includes("#"),Y("#","pathname","hash",r)),x(!r.search||!r.search.includes("#"),Y("#","search","hash",r)));let i,o=""===e||""===r.pathname,l=o?"/":r.pathname;if(null==l)i=n;else{let e=t.length-1;if(!a&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;r.pathname=t.join("/")}i=e>=0?t[e]:"/"}let s=function(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",{pathname:r,search:a="",hash:i=""}="string"===typeof e?j(e):e;if(r)if(V(r))t=r;else{if(r.includes("//")){let e=r;r=r.replace(/\/\/+/g,"/"),w(!1,"Pathnames cannot have embedded double slashes - normalizing ".concat(e," -> ").concat(r))}t=r.startsWith("/")?$(r.substring(1),"/"):$(r,n)}else t=n;return{pathname:t,search:ee(a),hash:te(i)}}(r,i),c=l&&"/"!==l&&l.endsWith("/"),d=(o||"."===l)&&n.endsWith("/");return s.pathname.endsWith("/")||!c&&!d||(s.pathname+="/"),s}var Z=e=>e.join("/").replace(/\/\/+/g,"/"),J=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),ee=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",te=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";function ne(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}function re(e){return e.map(e=>e.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}Symbol("Uninstrumented");Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var ae=["POST","PUT","PATCH","DELETE"],ie=(new Set(ae),["GET",...ae]);new Set(ie),Symbol("ResetLoaderData");var oe=r.createContext(null);oe.displayName="DataRouter";var le=r.createContext(null);le.displayName="DataRouterState";var se=r.createContext(!1);var ce=r.createContext({isTransitioning:!1});ce.displayName="ViewTransition";var ue=r.createContext(new Map);ue.displayName="Fetchers";var de=r.createContext(null);de.displayName="Await";var fe=r.createContext(null);fe.displayName="Navigation";var pe=r.createContext(null);pe.displayName="Location";var he=r.createContext({outlet:null,matches:[],isDataRoute:!1});he.displayName="Route";var me=r.createContext(null);me.displayName="RouteError";function ye(){return null!=r.useContext(pe)}function ve(){return x(ye(),"useLocation() may be used only in the context of a component."),r.useContext(pe).location}var ge="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function be(e){r.useContext(fe).static||r.useLayoutEffect(e)}function xe(){let{isDataRoute:e}=r.useContext(he);return e?function(){let{router:e}=Ce("useNavigate"),t=Ne("useNavigate"),n=r.useRef(!1);be(()=>{n.current=!0});let a=r.useCallback(async function(r){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};w(n.current,ge),n.current&&("number"===typeof r?await e.navigate(r):await e.navigate(r,u({fromRouteId:t},a)))},[e,t]);return a}():function(){x(ye(),"useNavigate() may be used only in the context of a component.");let e=r.useContext(oe),{basename:t,navigator:n}=r.useContext(fe),{matches:a}=r.useContext(he),{pathname:i}=ve(),o=JSON.stringify(Q(a)),l=r.useRef(!1);be(()=>{l.current=!0});let s=r.useCallback(function(r){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(w(l.current,ge),!l.current)return;if("number"===typeof r)return void n.go(r);let s=X(r,JSON.parse(o),i,"path"===a.relative);null==e&&"/"!==t&&(s.pathname="/"===s.pathname?t:Z([t,s.pathname])),(a.replace?n.replace:n.push)(s,a.state,a)},[t,n,o,i,e]);return s}()}r.createContext(null);function we(){let{matches:e}=r.useContext(he),t=e[e.length-1];return t?t.params:{}}function Se(e){let{relative:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{matches:n}=r.useContext(he),{pathname:a}=ve(),i=JSON.stringify(Q(n));return r.useMemo(()=>X(e,JSON.parse(i),a,"path"===t),[e,i,a,t])}function ke(e,t,n,a,i){x(ye(),"useRoutes() may be used only in the context of a component.");let{navigator:o}=r.useContext(fe),{matches:l}=r.useContext(he),s=l[l.length-1],c=s?s.params:{},d=s?s.pathname:"/",f=s?s.pathnameBase:"/",p=s&&s.route;{let e=p&&p.path||"";Ie(d,!p||e.endsWith("*")||e.endsWith("*?"),'You rendered descendant (or called `useRoutes()`) at "'.concat(d,'" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won\'t match anymore and therefore the child routes will never render.\n\nPlease change the parent to .'))}let h,m=ve();if(t){var y;let e="string"===typeof t?j(t):t;x("/"===f||(null===(y=e.pathname)||void 0===y?void 0:y.startsWith(f)),'When overriding the location using `` or `useRoutes(routes, location)`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "'.concat(f,'" but pathname "').concat(e.pathname,'" was given in the `location` prop.')),h=e}else h=m;let v=h.pathname||"/",g=v;if("/"!==f){let e=f.replace(/^\//,"").split("/");g="/"+v.replace(/^\//,"").split("/").slice(e.length).join("/")}let b=_(e,{pathname:g});w(p||null!=b,'No routes matched location "'.concat(h.pathname).concat(h.search).concat(h.hash,'" ')),w(null==b||void 0!==b[b.length-1].route.element||void 0!==b[b.length-1].route.Component||void 0!==b[b.length-1].route.lazy,'Matched leaf route at location "'.concat(h.pathname).concat(h.search).concat(h.hash,'" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.'));let S=_e(b&&b.map(e=>Object.assign({},e,{params:Object.assign({},c,e.params),pathname:Z([f,o.encodeLocation?o.encodeLocation(e.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?f:Z([f,o.encodeLocation?o.encodeLocation(e.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathnameBase])})),l,n,a,i);return t&&S?r.createElement(pe.Provider,{value:{location:u({pathname:"/",search:"",hash:"",state:null,key:"default"},h),navigationType:"POP"}},S):S}function Oe(){let e=Me(),t=ne(e)?"".concat(e.status," ").concat(e.statusText):e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,a="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:a},o={padding:"2px 4px",backgroundColor:a},l=null;return console.error("Error handled by React Router default ErrorBoundary:",e),l=r.createElement(r.Fragment,null,r.createElement("p",null,"\ud83d\udcbf Hey developer \ud83d\udc4b"),r.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",r.createElement("code",{style:o},"ErrorBoundary")," or"," ",r.createElement("code",{style:o},"errorElement")," prop on your route.")),r.createElement(r.Fragment,null,r.createElement("h2",null,"Unexpected Application Error!"),r.createElement("h3",{style:{fontStyle:"italic"}},t),n?r.createElement("pre",{style:i},n):null,l)}var je=r.createElement(Oe,null),Ee=class extends r.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){return void 0!==this.state.error?r.createElement(he.Provider,{value:this.props.routeContext},r.createElement(me.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function Pe(e){let{routeContext:t,match:n,children:a}=e,i=r.useContext(oe);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),r.createElement(he.Provider,{value:t},a)}function _e(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(null==e){if(!n)return null;if(n.errors)e=n.matches;else{if(0!==t.length||n.initialized||!(n.matches.length>0))return null;e=n.matches}}let i=e,o=null===n||void 0===n?void 0:n.errors;if(null!=o){let e=i.findIndex(e=>e.route.id&&void 0!==(null===o||void 0===o?void 0:o[e.route.id]));x(e>=0,"Could not find a matching route for errors on route IDs: ".concat(Object.keys(o).join(","))),i=i.slice(0,Math.min(i.length,e+1))}let l=!1,s=-1;if(n)for(let r=0;r=0?i.slice(0,s+1):[i[0]];break}}}let c=n&&a?(e,t)=>{var r,i;a(e,{location:n.location,params:null!==(r=null===(i=n.matches)||void 0===i||null===(i=i[0])||void 0===i?void 0:i.params)&&void 0!==r?r:{},unstable_pattern:re(n.matches),errorInfo:t})}:void 0;return i.reduceRight((e,a,u)=>{let d,f=!1,p=null,h=null;n&&(d=o&&a.route.id?o[a.route.id]:void 0,p=a.route.errorElement||je,l&&(s<0&&0===u?(Ie("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),f=!0,h=null):s===u&&(f=!0,h=a.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,u+1)),y=()=>{let t;return t=d?p:f?h:a.route.Component?r.createElement(a.route.Component,null):a.route.element?a.route.element:e,r.createElement(Pe,{match:a,routeContext:{outlet:e,matches:m,isDataRoute:null!=n},children:t})};return n&&(a.route.ErrorBoundary||a.route.errorElement||0===u)?r.createElement(Ee,{location:n.location,revalidation:n.revalidation,component:p,error:d,children:y(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:c}):y()},null)}function Ae(e){return"".concat(e," must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.")}function Ce(e){let t=r.useContext(oe);return x(t,Ae(e)),t}function Te(e){let t=r.useContext(le);return x(t,Ae(e)),t}function Ne(e){let t=function(e){let t=r.useContext(he);return x(t,Ae(e)),t}(e),n=t.matches[t.matches.length-1];return x(n.route.id,"".concat(e,' can only be used on routes that contain a unique "id"')),n.route.id}function Me(){var e;let t=r.useContext(me),n=Te("useRouteError"),a=Ne("useRouteError");return void 0!==t?t:null===(e=n.errors)||void 0===e?void 0:e[a]}var De={};function Ie(e,t,n){t||De[e]||(De[e]=!0,w(!1,n))}var Re={};function ze(e,t){e||Re[t]||(Re[t]=!0,console.warn(t))}a.useOptimistic;r.memo(function(e){let{routes:t,future:n,state:r,unstable_onError:a}=e;return ke(t,void 0,r,a,n)});function Le(e){x(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Fe(e){let{basename:t="/",children:n=null,location:a,navigationType:i="POP",navigator:o,static:l=!1,unstable_useTransitions:s}=e;x(!ye(),"You cannot render a inside another . You should never have more than one in your app.");let c=t.replace(/^\/*/,"/"),u=r.useMemo(()=>({basename:c,navigator:o,static:l,unstable_useTransitions:s,future:{}}),[c,o,l,s]);"string"===typeof a&&(a=j(a));let{pathname:d="/",search:f="",hash:p="",state:h=null,key:m="default"}=a,y=r.useMemo(()=>{let e=K(d,c);return null==e?null:{location:{pathname:e,search:f,hash:p,state:h,key:m},navigationType:i}},[c,d,f,p,h,m,i]);return w(null!=y,' is not able to match the URL "').concat(d).concat(f).concat(p,"\" because it does not start with the basename, so the won't render anything.")),null==y?null:r.createElement(fe.Provider,{value:u},r.createElement(pe.Provider,{children:n,value:y}))}function Be(e){let{children:t,location:n}=e;return ke(Ue(t),n)}r.Component;function Ue(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[];return r.Children.forEach(e,(e,a)=>{if(!r.isValidElement(e))return;let i=[...t,a];if(e.type===r.Fragment)return void n.push.apply(n,Ue(e.props.children,i));x(e.type===Le,"[".concat("string"===typeof e.type?e.type:e.type.name,"] is not a component. All component children of must be a or ")),x(!e.props.index||!e.props.children,"An index route cannot have child routes.");let o={id:e.props.id||i.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:!0===e.props.hasErrorBoundary||null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(o.children=Ue(e.props.children,i)),n.push(o)}),n}var We="get",He="application/x-www-form-urlencoded";function Ke(e){return"undefined"!==typeof HTMLElement&&e instanceof HTMLElement}var qe=null;var Ve=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function $e(e){return null==e||Ve.has(e)?e:(w(!1,'"'.concat(e,'" is not a valid `encType` for `
`/`` and will default to "').concat(He,'"')),null)}function Ye(e,t){let n,r,a,i,o;if(function(e){return Ke(e)&&"form"===e.tagName.toLowerCase()}(e)){let o=e.getAttribute("action");r=o?K(o,t):null,n=e.getAttribute("method")||We,a=$e(e.getAttribute("enctype"))||He,i=new FormData(e)}else if(function(e){return Ke(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return Ke(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let o=e.form;if(null==o)throw new Error('Cannot submit a