diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c8533aad..3e38466e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ All notable changes to Bambuddy will be documented in this file. ## [0.2.5b1] - Unreleased ### Fixed +- **Print Log table: multi-color filament rows render one swatch per color instead of a single barely-visible gray dot (#1731 part 1, reported by @IndividualGhost1905)** — The per-archive Print Log table cell at `frontend/src/pages/ArchivesPage.tsx:3882` rendered the `filament_color` column as ONE swatch with `style={{ backgroundColor: entry.filament_color.startsWith('#') ? entry.filament_color : undefined }}`. For multi-color prints, the backend writes `filament_color` as a comma-joined string (e.g. `"#FFFFFF,#000000,#FF0000"` — three filaments used in the print), which trivially passes the `.startsWith('#')` check but is not a valid CSS color. The browser silently dropped the `backgroundColor` declaration, leaving the swatch as only its black/20% border on the app's dark theme — visually a tiny grey dot, near-invisible against the row background, which the reporter's screenshots showed as "PLA" text in the cell with no apparent swatch at all. The DB column was correct (the reporter confirmed both colors were recorded for the old example); the render dropped them. The Archive Card view at `:1072-1083` and `:2114-2125` already split on comma and rendered one swatch per color — only the Print Log table cell had been missed when multi-color support was added across the rest of the page. **Fix:** the Print Log table cell now mirrors the card-view pattern — wraps the swatches in a `flex` container, splits `entry.filament_color` on `,`, trims each value, and renders one `w-3 h-3 rounded-full` per color with `backgroundColor: trimmed.startsWith('#') ? trimmed : undefined` and a `title={trimmed}` for hover-tooltip parity. Single-color prints render exactly one swatch (the trivial case — no behaviour change). Empty / non-hex slot values gracefully fall through to no `backgroundColor` rather than poisoning the CSS for adjacent slots. The filament-type text (`{entry.filament_type || '—'}`) keeps its existing position to the right of the swatches. **What this does NOT fix:** the reporter also flagged that new multi-color prints don't appear in the filament usage history. That's a separate code path (`backend/app/services/usage_tracker.py::_track_from_3mf` and the slot-to-tray mapping chain at `usage_tracker.py:899-901`), where the diagnostic needs the archive's captured `ams_mapping`, the `mapping` field from MQTT push_status at print start, and the `[UsageTracker] PRINT START` / `PRINT COMPLETE` log lines — none of which are in the reporter's first bundle. Tracking under #1731 part 2, blocked on a support bundle from the affected install. **Tests:** existing `ArchivesPage.test.tsx` (23 cases) green; ESLint clean; `npm run build` clean; i18n parity 5107 leaves × 11 locales green (no new keys). Frontend-only change. - **Finish-photo force-on removed; user's explicit timelapse=off in the slicer send dialog is now respected (#1721, reported by @agrisci)** — On H2D 01.x firmware, `capture_finish_photo` (default-on global setting) was forcing every print's `timelapse` MQTT field to `enable` regardless of whether the user had unchecked the Timelapse box in OrcaSlicer's send dialog. That bit flips the printer's runtime `timelapse_record_flag`, which un-gates the slicer-baked `M1002 judge_flag timelapse_record_flag` / `M622 J1` / `G1 X-48.2 F3000` / `M971 S11 C11 O0` wipe blocks emitted by **Smooth**-mode timelapse profiles — so the toolhead parked off the part and snapped a frame every single layer, on prints the user explicitly opted out of recording. The reporter's gcode export confirmed the macro block was baked in (28 occurrences across the file) and the printer's MQTT log showed `Sending print command: {"print": { … "timelapse": true, … }}` even though the slicer-side checkbox was unchecked. Live-stop confirmed: turning the global `capture_finish_photo` setting off in Bambuddy made the per-layer parking stop immediately. **Root cause:** the #1397 "finish photo from timelapse" feature used "force the printer into timelapse-recording mode at dispatch" as the side-channel to get a well-framed end-of-print shot (toolhead parked, before bed drop, extracted from the recorded video's last frame). That mechanism conflated two semantically different things — recording a timelapse video vs. snapping a finish photo — and the per-layer side effects of the recording mode were decided at slice time by the user's `timelapse_type` profile setting, which Bambuddy has no visibility into post-slice. Traditional-mode gcode has no per-layer wipe block (no parking, no defects) — so the bug was invisible to anyone whose slicer profile defaults to Traditional. Smooth-mode gcode (the reporter's case) bakes the wipe block and gates it on `timelapse_record_flag`, so flipping the runtime flag fired the macro every layer. **Fix:** replaced the force-on mechanism entirely with a clean MQTT-state-driven trigger. `bambu_mqtt.py::_handle_push_status` now fires a new `on_finish_photo_moment` callback when `stg_cur` transitions INTO **22** ("Filament unloading") while `_was_running == True` AND the end-of-print gate matches (`progress >= 99` OR `layer_num >= total_layers` OR `remaining_time <= 0`) — that's the same framing window #1397 was after (toolhead parked, bed not yet dropped, AMS pulling filament back) but reached via a clean state signal instead of by exploiting the per-layer macros. The end-of-print gate is what disambiguates from mid-print filament swaps in multi-color prints, which ALSO transit through stage 22 (M620 unload → 22, M621 load → 24) but always at progress < 99 / layer < total / remaining > 0. A FINISH-state fallback in the same handler fires the same callback at the existing FINISH-state transition if stage 22 never arrived — covers cancel-mid-print (state goes RUNNING → IDLE / FAILED without 22), external-spool-only prints where some firmwares skip the unload phase, HMS halts before unload, and any firmware variant we don't see stage 22 on. Net behavior: every print that gets a finish photo today still gets one; the lucky majority get the better-framed pre-bed-drop shot too. `main.py::on_finish_photo_moment` is a new top-level handler that pre-captures one camera frame at the trigger edge — external camera (snapshot URL → MJPEG fallback), buffered live RTSP frame from `_active_streams` / `_active_chamber_streams`, or a fresh RTSP grab via `capture_camera_frame_bytes` — and caches the JPEG bytes in a module-level `_stage22_finish_frames: dict[int, bytes]` keyed by printer_id. `_background_finish_photo` (inside `on_print_complete`) consumes the cached bytes via `_stage22_finish_frames.pop(printer_id, None)` before falling through to its existing live-grab chain, so the saved photo has the better framing without the existing complex archive-resolution / fallback / notification wiring needing to move. When a timelapse IS actively recording (user explicitly opted in this time), the pre-capture is skipped — `_capture_finish_photo_from_timelapse` still extracts the last frame from the recorded video, which is still the highest-quality option and now has no force-on side effects because the user actually wanted the video. **What was removed:** `resolve_effective_timelapse` in `background_dispatch.py` (the shared force-on resolver), `BackgroundDispatchService._resolve_effective_timelapse` wrapper, both call sites in `background_dispatch.py` (`_run_reprint_archive` + library-file print path), the `resolve_effective_timelapse` call in `print_scheduler.py::_dispatch_item`, the `archive.bambuddy_forced_timelapse` write in the resolver, the `if archive.bambuddy_forced_timelapse: await _cleanup_forced_timelapse(...)` branch in `_background_finish_photo`, and the entire `_cleanup_forced_timelapse` function (~75 lines including the FTP-DELE walk across `/timelapse` / `/timelapse/video` / `/record` / `/recording`). All call sites now read `bool(item.timelapse)` / `bool(job.options.get("timelapse", False))` directly — the literal user choice flows straight through to `start_print(timelapse=…)`. The `archive.bambuddy_forced_timelapse` DB column stays defined (default `False`) for back-compat with existing rows that may have it set to `True` from before — no consumer reads it anymore, and dropping a column on the user-data table risks breaking restore-from-backup flows we don't need to break. **New callback wiring:** added `on_finish_photo_moment` parameter to `BambuMQTT.__init__`, new `_finish_photo_captured` one-shot flag (reset on each new print at the same site as `_completion_triggered`), new `PrinterManager._on_finish_photo_moment` field + `set_finish_photo_moment_callback` setter, new `on_finish_photo_moment` inner wrapper in `_setup_callbacks`, threaded through to the `BambuMQTTClient` constructor call. `main.py::on_print_start` clears any leftover `_stage22_finish_frames` entry from a prior print so a never-consumed cache (e.g. capture succeeded but on_print_complete bailed before reaching it) can't bleed into the new print's photo. **Tests removed:** `test_cleanup_forced_timelapse.py` (~290 lines, 7 test cases pinning the FTP-DELE walk and `bambuddy_forced_timelapse` flag handling), `test_scheduler_force_timelapse_wiring.py` (the source-pattern check that pinned `print_scheduler.py` imports `resolve_effective_timelapse`), `test_dispatch_force_timelapse.py` (5 test cases pinning the `_resolve_effective_timelapse` wrapper's interaction with `capture_finish_photo` + archive flag). The behaviour these tests verified is intentionally gone. **Tests updated:** `test_background_dispatch_watchdog.py` dropped two `patch.object(BackgroundDispatchService, "_resolve_effective_timelapse", ...)` blocks that stubbed the now-removed method; `test_background_dispatch.py::test_dispatch_options_pass_through_pattern` comment updated to explain why `timelapse` stays excluded from the bare-pattern needle check (the wrap in `bool(...)` is intentional to coerce non-bool option payloads, not a force-on remnant). **Verification:** ruff clean; full backend suite 5961/5961 green with `-n 30`; ESLint clean; `npm run build` clean; vitest 2118/2118 green; i18n parity 5107 leaves × 11 locales green (no new keys). No migration. **What this does NOT change:** users who explicitly enable the Timelapse checkbox in the slicer send dialog still get the timelapse video AND the timelapse-extracted finish photo (highest-quality framing, no per-layer parking because that was never the issue — it's the user's intentional choice). Users who explicitly disable the Timelapse checkbox now get no per-layer parking AND still get a finish photo (pre-captured at the stage-22 edge for the same pre-bed-drop framing). - **Configure AMS Slot: filament profiles for other printer models now filtered out (#1623, reported by @shaddowlink)** — Three independent gaps in the same picker, each surfaced by a different round of reporter screenshots. **(1) Local "Custom" imported profiles** were unconditionally listed regardless of the slot's printer; a user with PETG / PLA profiles imported from OrcaSlicer / BambuStudio for A1 mini, H2D, and P1S saw all three lined up when configuring an AMS slot on any one of those printers. **(2) Cloud presets using the `@Bambu Lab ` suffix form** (user-renamed Bambu Cloud presets and most Orca Cloud profiles) slipped through the existing filter, which only matched the `@BBL ` form Bambu's system presets use. **(3) Cloud presets with the printer model in the BODY of the name** (the literal failure shape the reporter screenshotted on H2D: `"X1C eSUN PETG-Basic Filament"` with no `@` suffix at all) — the existing extractor returned null for these and the filter no-op'd. **Fix:** `ConfigureAmsSlotModal.tsx` now (a) queries the backend's Bambu printer-model registry (`/slicer/printer-models`, same fetch SliceModal uses), (b) for local presets — reverse-looks-up the slot's short model code to a long printer-preset fragment, pairs it with the slot's nozzle diameter to synthesise the full slicer preset name ("Bambu Lab P1S 0.4 nozzle"), and passes that into `presetCompatibility(...)` from `utils/slicerPrinterMatch.ts` against each local preset's parsed `compatible_printers` JSON; (c) for cloud / Orca Cloud presets — `extractPresetModel(name, registry)` is now multi-strategy: first the `@BBL ` form (existing), then the `@Bambu Lab ` form with case-insensitive reverse-lookup against the registry (so "A1 mini" vs "A1 Mini" capitalisation drift doesn't hide A1 Mini profiles, preserving the #1649 alias-aware match), then a body-text scan against every known model token (long-name fragments and short codes from the registry, long-first sort so "A1 Mini" / "X1 Carbon" / "H2D Pro" aren't eaten by their shorter siblings, word-boundary regex so "PA1" doesn't match "A1" and "X1Box" doesn't match "X1"). Presets where no strategy resolves still pass through — free-form names with no recognisable model token stay visible (can't filter what we can't classify). **Fail-open posture preserved:** `match` and `unknown` verdicts keep showing for local presets (back-compat for hand-edited imports without `compatible_printers`); the currently-configured preset (`slotInfo.savedPresetId`) bypasses the filter so the active selection always remains visible; built-in filaments stay unfiltered (generic fallback); when the registry hasn't loaded yet OR `printerModel` is empty, every filter no-ops. **No backend / schema / i18n changes.** Frontend ESLint clean; `npm run build` clean; vitest `ConfigureAmsSlotModal` 24/24 green. - **Virtual Printer: empty AMS slots forwarded as phantom loaded filaments to BambuStudio Sync (#1726, reported with full code-level analysis by @needo37)** — On any VP bound to a target printer (Proxy mode, or Queue mode with a specific target), the slicer-facing AMS state was the printer's raw push_status — the empty-slot cleanup that `bambu_mqtt.py::_handle_ams_data` applies to Bambuddy's own internal state was NEVER run on the bridge cache. Concrete case: real printer has 3 filaments loaded (AMS-A slots 2/3/4), AMS-A slot 1 and all of AMS-B empty; Bambuddy's AMS card renders the empty slots correctly as Empty (control — internal state path is fine), but BambuStudio after Sync paints 7 populated/green-checked filament slots — the 3 real ones plus 4 phantoms whose color/material is stale RFID/calibration data from before those slots went empty. The diagnostic signature is the mismatch between the AMS card (correct) and the slicer view (wrong) for the same payload. Archive mode and Queue-by-model are NOT affected — no target printer → no bridge → the slicer gets the synthetic stub at `mqtt_server.py:927` with no real AMS data. **Root cause:** two code paths consume the same printer AMS payload. Internal (`bambu_mqtt.py::_handle_ams_data` lines 1802-1858) parses `tray_exist_bits`, promotes empty slots to `state=9`, and wipes the stale `tray_type`/`tray_color`/`tray_info_idx`/`tag_uid`/`tray_uuid`/`remain` fields. VP bridge (`mqtt_bridge.py::_on_printer_raw` lines 551-656) deep-merges AMS structurally via `_merge_ams_dict` and copies `tray_exist_bits` through as an opaque top-level scalar — but never applies the bit→clear-empty-slot logic. The cached state ships to the slicer untouched. **Fix:** factored the bit-clear logic out of `_handle_ams_data` into a shared module-level helper `bambu_mqtt.py::apply_tray_exist_bits(units, tray_exist_bits_str, *, power_on_flag, log_label)` and call it from both paths. The internal call site is replaced with a single helper invocation; the bridge calls it on the merged AMS dict after `_merge_ams_dict` runs, before the 1 Hz cached-as-base push picks the cache up. Shared shutdown guard preserved on both sides: all-zero bits + `power_on_flag=False` is the printer-off pattern (#765) and skips cleanup — a non-zero bits + power-off combo is valid idle-printer state (#1365 — X1C between prints) and still applies. AMS-HT units (`id >= 128`) skipped on both sides (separate addressing scheme). **Tests:** new `TestApplyTrayExistBitsHelper` class in `test_bambu_mqtt.py` (10 cases pinning the helper contract directly — missing/unparseable bits → no-op, shutdown guard, nonzero+power-off X1C case, int-9 state, AMS-HT skip, string id handling, multi-AMS global bit math, state-promote-even-without-stale-data). 3 new bridge regression tests in `test_vp_mqtt_bridge.py::TestPushStatusCache`: `test_tray_exist_bits_clears_empty_slots_in_slicer_cache` reproduces the #1726 wire shape (slot 0 carries stale `tray_type`/`tray_color`/`tray_info_idx`/`tag_uid`/`tray_uuid`/`remain` + `tray_exist_bits="e"` → slot 0 must clear, slots 1-3 preserved), `test_tray_exist_bits_shutdown_guard_preserves_cache` pins the printer-off path won't propagate phantom empties on every reconnect, `test_tray_exist_bits_skips_ams_ht_units` pins the HT addressing skip. Existing internal-state tests for the bit-clear logic (`test_tray_exist_bits_clears_empty_slots`, `test_tray_exist_bits_promotes_empty_slot_to_state_9`, `test_tray_exist_bits_does_not_change_state_on_loaded_slots`, …) continue to pass against the refactored internal path — same contract, same behavior, different implementation seam. One pre-existing bridge fixture (`test_partial_ams_unit_update_preserves_other_units`) had an inconsistent `tray_exist_bits="3"` for two AMS units (bit 0 set, bit 4 unset, but both unit 0 and unit 1 had slot 0 populated as loaded). The fix exposed the inconsistency — corrected to `"11"` (bits 0 + 4) to match what the real printer would send. Full backend suite 5955/5955 green; ruff clean; i18n parity 5107 leaves × 11 locales green (no new keys). Frontend untouched. **Verification on a live system (per @needo37's analysis):** set `BAMBUDDY_VP_DUMP_WIRE=1`, restart, Sync the slicer, inspect `/vp_wire/_out.json`. For any tray whose bit in `tray_exist_bits` is 0, `tray_type`/`tray_color` should now be empty. diff --git a/frontend/src/pages/ArchivesPage.tsx b/frontend/src/pages/ArchivesPage.tsx index 8edf25521..c54db45c7 100644 --- a/frontend/src/pages/ArchivesPage.tsx +++ b/frontend/src/pages/ArchivesPage.tsx @@ -3881,10 +3881,19 @@ export function ArchivesPage() {
{entry.filament_color && ( - +
+ {entry.filament_color.split(',').map((color, i) => { + const trimmed = color.trim(); + return ( + + ); + })} +
)} {entry.filament_type || '—'} diff --git a/static/assets/index-BwzCCxhK.js b/static/assets/index-DrU3fLKW.js similarity index 98% rename from static/assets/index-BwzCCxhK.js rename to static/assets/index-DrU3fLKW.js index 903ae9161..802f58e2d 100644 --- a/static/assets/index-BwzCCxhK.js +++ b/static/assets/index-DrU3fLKW.js @@ -5,8 +5,8 @@ function hme(t,e){for(var a=0;a$||mt[M]!==Et[$]){var Ut=` `+mt[M].replace(" at new "," at ");return h.displayName&&Ut.includes("")&&(Ut=Ut.replace("",h.displayName)),Ut}while(1<=M&&0<=$);break}}}finally{G=!1,Error.prepareStackTrace=_}return(_=h?h.displayName||h.name:"")?B(_):""}function te(h,w){switch(h.tag){case 26:case 27:case 5:return B(h.type);case 16:return B("Lazy");case 13:return h.child!==w&&w!==null?B("Suspense Fallback"):B("Suspense");case 19:return B("SuspenseList");case 0:case 15:return ae(h.type,!1);case 11:return ae(h.type.render,!1);case 1:return ae(h.type,!0);case 31:return B("Activity");default:return""}}function J(h){try{var w="",_=null;do w+=te(h,_),_=h,h=h.return;while(h);return w}catch(M){return` Error generating stack: `+M.message+` -`+M.stack}}var oe=Object.prototype.hasOwnProperty,pe=t.unstable_scheduleCallback,me=t.unstable_cancelCallback,fe=t.unstable_shouldYield,V=t.unstable_requestPaint,L=t.unstable_now,ee=t.unstable_getCurrentPriorityLevel,be=t.unstable_ImmediatePriority,xe=t.unstable_UserBlockingPriority,ve=t.unstable_NormalPriority,Me=t.unstable_LowPriority,Ee=t.unstable_IdlePriority,Te=t.log,Ue=t.unstable_setDisableYieldValue,Ce=null,ze=null;function Re(h){if(typeof Te=="function"&&Ue(h),ze&&typeof ze.setStrictMode=="function")try{ze.setStrictMode(Ce,h)}catch{}}var He=Math.clz32?Math.clz32:Ie,Oe=Math.log,nt=Math.LN2;function Ie(h){return h>>>=0,h===0?32:31-(Oe(h)/nt|0)|0}var Ke=256,Fe=262144,Qe=4194304;function Ve(h){var w=h&42;if(w!==0)return w;switch(h&-h){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 h&261888;case 262144:case 524288:case 1048576:case 2097152:return h&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return h&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return h}}function je(h,w,_){var M=h.pendingLanes;if(M===0)return 0;var $=0,re=h.suspendedLanes,ke=h.pingedLanes;h=h.warmLanes;var qe=M&134217727;return qe!==0?(M=qe&~re,M!==0?$=Ve(M):(ke&=qe,ke!==0?$=Ve(ke):_||(_=qe&~h,_!==0&&($=Ve(_))))):(qe=M&~re,qe!==0?$=Ve(qe):ke!==0?$=Ve(ke):_||(_=M&~h,_!==0&&($=Ve(_)))),$===0?0:w!==0&&w!==$&&(w&re)===0&&(re=$&-$,_=w&-w,re>=_||re===32&&(_&4194048)!==0)?w:$}function Be(h,w){return(h.pendingLanes&~(h.suspendedLanes&~h.pingedLanes)&w)===0}function Xe(h,w){switch(h){case 1:case 2:case 4:case 8:case 64:return w+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 w+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ge(){var h=Qe;return Qe<<=1,(Qe&62914560)===0&&(Qe=4194304),h}function De(h){for(var w=[],_=0;31>_;_++)w.push(h);return w}function at(h,w){h.pendingLanes|=w,w!==268435456&&(h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0)}function Ze(h,w,_,M,$,re){var ke=h.pendingLanes;h.pendingLanes=_,h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0,h.expiredLanes&=_,h.entangledLanes&=_,h.errorRecoveryDisabledLanes&=_,h.shellSuspendCounter=0;var qe=h.entanglements,mt=h.expirationTimes,Et=h.hiddenUpdates;for(_=ke&~_;0<_;){var Ut=31-He(_),Wt=1<"u")return null;try{return h.activeElement||h.body}catch{return h.body}}var yr=/[\n"\\]/g;function ja(h){return h.replace(yr,function(w){return"\\"+w.charCodeAt(0).toString(16)+" "})}function $a(h,w,_,M,$,re,ke,qe){h.name="",ke!=null&&typeof ke!="function"&&typeof ke!="symbol"&&typeof ke!="boolean"?h.type=ke:h.removeAttribute("type"),w!=null?ke==="number"?(w===0&&h.value===""||h.value!=w)&&(h.value=""+ra(w)):h.value!==""+ra(w)&&(h.value=""+ra(w)):ke!=="submit"&&ke!=="reset"||h.removeAttribute("value"),w!=null?Gr(h,ke,ra(w)):_!=null?Gr(h,ke,ra(_)):M!=null&&h.removeAttribute("value"),$==null&&re!=null&&(h.defaultChecked=!!re),$!=null&&(h.checked=$&&typeof $!="function"&&typeof $!="symbol"),qe!=null&&typeof qe!="function"&&typeof qe!="symbol"&&typeof qe!="boolean"?h.name=""+ra(qe):h.removeAttribute("name")}function Oa(h,w,_,M,$,re,ke,qe){if(re!=null&&typeof re!="function"&&typeof re!="symbol"&&typeof re!="boolean"&&(h.type=re),w!=null||_!=null){if(!(re!=="submit"&&re!=="reset"||w!=null)){Jt(h);return}_=_!=null?""+ra(_):"",w=w!=null?""+ra(w):_,qe||w===h.value||(h.value=w),h.defaultValue=w}M=M??$,M=typeof M!="function"&&typeof M!="symbol"&&!!M,h.checked=qe?h.checked:!!M,h.defaultChecked=!!M,ke!=null&&typeof ke!="function"&&typeof ke!="symbol"&&typeof ke!="boolean"&&(h.name=ke),Jt(h)}function Gr(h,w,_){w==="number"&&Ua(h.ownerDocument)===h||h.defaultValue===""+_||(h.defaultValue=""+_)}function tt(h,w,_,M){if(h=h.options,w){w={};for(var $=0;$<_.length;$++)w["$"+_[$]]=!0;for(_=0;_"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),xp=!1;if(rr)try{var Pd={};Object.defineProperty(Pd,"passive",{get:function(){xp=!0}}),window.addEventListener("test",Pd,Pd),window.removeEventListener("test",Pd,Pd)}catch{xp=!1}var mi=null,Eu=null,Si=null;function Sf(){if(Si)return Si;var h,w=Eu,_=w.length,M,$="value"in mi?mi.value:mi.textContent,re=$.length;for(h=0;h<_&&w[h]===$[h];h++);var ke=_-h;for(M=1;M<=ke&&w[_-M]===$[re-M];M++);return Si=$.slice(h,1=hi),kp=" ",Tb=!1;function ye(h,w){switch(h){case"keyup":return Nv.indexOf(w.keyCode)!==-1;case"keydown":return w.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Rt(h){return h=h.detail,typeof h=="object"&&"data"in h?h.data:null}var pa=!1;function Ma(h,w){switch(h){case"compositionend":return Rt(w);case"keypress":return w.which!==32?null:(Tb=!0,kp);case"textInput":return h=w.data,h===kp&&Tb?null:h;default:return null}}function Wa(h,w){if(pa)return h==="compositionend"||!ul&&ye(h,w)?(h=Sf(),Si=Eu=mi=null,pa=!1,h):null;switch(h){case"paste":return null;case"keypress":if(!(w.ctrlKey||w.altKey||w.metaKey)||w.ctrlKey&&w.altKey){if(w.char&&1=w)return{node:_,offset:w-h};h=M}e:{for(;_;){if(_.nextSibling){_=_.nextSibling;break e}_=_.parentNode}_=void 0}_=Fo(_)}}function Lo(h,w){return h&&w?h===w?!0:h&&h.nodeType===3?!1:w&&w.nodeType===3?Lo(h,w.parentNode):"contains"in h?h.contains(w):h.compareDocumentPosition?!!(h.compareDocumentPosition(w)&16):!1:!1}function mo(h){h=h!=null&&h.ownerDocument!=null&&h.ownerDocument.defaultView!=null?h.ownerDocument.defaultView:window;for(var w=Ua(h.document);w instanceof h.HTMLIFrameElement;){try{var _=typeof w.contentWindow.location.href=="string"}catch{_=!1}if(_)h=w.contentWindow;else break;w=Ua(h.document)}return w}function _i(h){var w=h&&h.nodeName&&h.nodeName.toLowerCase();return w&&(w==="input"&&(h.type==="text"||h.type==="search"||h.type==="tel"||h.type==="url"||h.type==="password")||w==="textarea"||h.contentEditable==="true")}var Md=rr&&"documentMode"in document&&11>=document.documentMode,fi=null,wr=null,zr=null,Zn=!1;function _p(h,w,_){var M=_.window===_?_.document:_.nodeType===9?_:_.ownerDocument;Zn||fi==null||fi!==Ua(M)||(M=fi,"selectionStart"in M&&_i(M)?M={start:M.selectionStart,end:M.selectionEnd}:(M=(M.ownerDocument&&M.ownerDocument.defaultView||window).getSelection(),M={anchorNode:M.anchorNode,anchorOffset:M.anchorOffset,focusNode:M.focusNode,focusOffset:M.focusOffset}),zr&&Ss(zr,M)||(zr=M,M=x_(wr,"onSelect"),0>=ke,$-=ke,Dd=1<<32-He(w)+$|_<<$|M,Fd=re+h}else Dd=1<sr?(jr=Aa,Aa=null):jr=Aa.sibling;var Or=Dt(Ct,Aa,Mt[sr],Gt);if(Or===null){Aa===null&&(Aa=jr);break}h&&Aa&&Or.alternate===null&&w(Ct,Aa),gt=re(Or,gt,sr),Ir===null?Ra=Or:Ir.sibling=Or,Ir=Or,Aa=jr}if(sr===Mt.length)return _(Ct,Aa),Mr&&Bu(Ct,sr),Ra;if(Aa===null){for(;srsr?(jr=Aa,Aa=null):jr=Aa.sibling;var $p=Dt(Ct,Aa,Or.value,Gt);if($p===null){Aa===null&&(Aa=jr);break}h&&Aa&&$p.alternate===null&&w(Ct,Aa),gt=re($p,gt,sr),Ir===null?Ra=$p:Ir.sibling=$p,Ir=$p,Aa=jr}if(Or.done)return _(Ct,Aa),Mr&&Bu(Ct,sr),Ra;if(Aa===null){for(;!Or.done;sr++,Or=Mt.next())Or=Wt(Ct,Or.value,Gt),Or!==null&&(gt=re(Or,gt,sr),Ir===null?Ra=Or:Ir.sibling=Or,Ir=Or);return Mr&&Bu(Ct,sr),Ra}for(Aa=M(Aa);!Or.done;sr++,Or=Mt.next())Or=zt(Aa,Ct,sr,Or.value,Gt),Or!==null&&(h&&Or.alternate!==null&&Aa.delete(Or.key===null?sr:Or.key),gt=re(Or,gt,sr),Ir===null?Ra=Or:Ir.sibling=Or,Ir=Or);return h&&Aa.forEach(function(pme){return w(Ct,pme)}),Mr&&Bu(Ct,sr),Ra}function ln(Ct,gt,Mt,Gt){if(typeof Mt=="object"&&Mt!==null&&Mt.type===v&&Mt.key===null&&(Mt=Mt.props.children),typeof Mt=="object"&&Mt!==null){switch(Mt.$$typeof){case f:e:{for(var Ra=Mt.key;gt!==null;){if(gt.key===Ra){if(Ra=Mt.type,Ra===v){if(gt.tag===7){_(Ct,gt.sibling),Gt=$(gt,Mt.props.children),Gt.return=Ct,Ct=Gt;break e}}else if(gt.elementType===Ra||typeof Ra=="object"&&Ra!==null&&Ra.$$typeof===D&&Ef(Ra)===gt.type){_(Ct,gt.sibling),Gt=$(gt,Mt.props),Dv(Gt,Mt),Gt.return=Ct,Ct=Gt;break e}_(Ct,gt);break}else w(Ct,gt);gt=gt.sibling}Mt.type===v?(Gt=Nf(Mt.props.children,Ct.mode,Gt,Mt.key),Gt.return=Ct,Ct=Gt):(Gt=Lk(Mt.type,Mt.key,Mt.props,null,Ct.mode,Gt),Dv(Gt,Mt),Gt.return=Ct,Ct=Gt)}return ke(Ct);case g:e:{for(Ra=Mt.key;gt!==null;){if(gt.key===Ra)if(gt.tag===4&>.stateNode.containerInfo===Mt.containerInfo&>.stateNode.implementation===Mt.implementation){_(Ct,gt.sibling),Gt=$(gt,Mt.children||[]),Gt.return=Ct,Ct=Gt;break e}else{_(Ct,gt);break}else w(Ct,gt);gt=gt.sibling}Gt=Pj(Mt,Ct.mode,Gt),Gt.return=Ct,Ct=Gt}return ke(Ct);case D:return Mt=Ef(Mt),ln(Ct,gt,Mt,Gt)}if(X(Mt))return Ca(Ct,gt,Mt,Gt);if(I(Mt)){if(Ra=I(Mt),typeof Ra!="function")throw Error(n(150));return Mt=Ra.call(Mt),qa(Ct,gt,Mt,Gt)}if(typeof Mt.then=="function")return ln(Ct,gt,Hk(Mt),Gt);if(Mt.$$typeof===k)return ln(Ct,gt,Ik(Ct,Mt),Gt);qk(Ct,Mt)}return typeof Mt=="string"&&Mt!==""||typeof Mt=="number"||typeof Mt=="bigint"?(Mt=""+Mt,gt!==null&>.tag===6?(_(Ct,gt.sibling),Gt=$(gt,Mt),Gt.return=Ct,Ct=Gt):(_(Ct,gt),Gt=Cj(Mt,Ct.mode,Gt),Gt.return=Ct,Ct=Gt),ke(Ct)):_(Ct,gt)}return function(Ct,gt,Mt,Gt){try{Ev=0;var Ra=ln(Ct,gt,Mt,Gt);return Ib=null,Ra}catch(Aa){if(Aa===zb||Aa===Bk)throw Aa;var Ir=ml(29,Aa,null,Ct.mode);return Ir.lanes=Gt,Ir.return=Ct,Ir}}}var Ff=Y5(!0),Q5=Y5(!1),Ap=!1;function Ij(h){h.updateQueue={baseState:h.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Oj(h,w){h=h.updateQueue,w.updateQueue===h&&(w.updateQueue={baseState:h.baseState,firstBaseUpdate:h.firstBaseUpdate,lastBaseUpdate:h.lastBaseUpdate,shared:h.shared,callbacks:null})}function jp(h){return{lane:h,tag:0,payload:null,callback:null,next:null}}function Mp(h,w,_){var M=h.updateQueue;if(M===null)return null;if(M=M.shared,(Vr&2)!==0){var $=M.pending;return $===null?w.next=w:(w.next=$.next,$.next=w),M.pending=w,w=Fk(h),D5(h,null,_),w}return Dk(h,M,w,_),Fk(h)}function Fv(h,w,_){if(w=w.updateQueue,w!==null&&(w=w.shared,(_&4194048)!==0)){var M=w.lanes;M&=h.pendingLanes,_|=M,w.lanes=_,Vt(h,_)}}function Bj(h,w){var _=h.updateQueue,M=h.alternate;if(M!==null&&(M=M.updateQueue,_===M)){var $=null,re=null;if(_=_.firstBaseUpdate,_!==null){do{var ke={lane:_.lane,tag:_.tag,payload:_.payload,callback:null,next:null};re===null?$=re=ke:re=re.next=ke,_=_.next}while(_!==null);re===null?$=re=w:re=re.next=w}else $=re=w;_={baseState:M.baseState,firstBaseUpdate:$,lastBaseUpdate:re,shared:M.shared,callbacks:M.callbacks},h.updateQueue=_;return}h=_.lastBaseUpdate,h===null?_.firstBaseUpdate=w:h.next=w,_.lastBaseUpdate=w}var Uj=!1;function Lv(){if(Uj){var h=Rb;if(h!==null)throw h}}function Rv(h,w,_,M){Uj=!1;var $=h.updateQueue;Ap=!1;var re=$.firstBaseUpdate,ke=$.lastBaseUpdate,qe=$.shared.pending;if(qe!==null){$.shared.pending=null;var mt=qe,Et=mt.next;mt.next=null,ke===null?re=Et:ke.next=Et,ke=mt;var Ut=h.alternate;Ut!==null&&(Ut=Ut.updateQueue,qe=Ut.lastBaseUpdate,qe!==ke&&(qe===null?Ut.firstBaseUpdate=Et:qe.next=Et,Ut.lastBaseUpdate=mt))}if(re!==null){var Wt=$.baseState;ke=0,Ut=Et=mt=null,qe=re;do{var Dt=qe.lane&-536870913,zt=Dt!==qe.lane;if(zt?(Ar&Dt)===Dt:(M&Dt)===Dt){Dt!==0&&Dt===Lb&&(Uj=!0),Ut!==null&&(Ut=Ut.next={lane:0,tag:qe.tag,payload:qe.payload,callback:null,next:null});e:{var Ca=h,qa=qe;Dt=w;var ln=_;switch(qa.tag){case 1:if(Ca=qa.payload,typeof Ca=="function"){Wt=Ca.call(ln,Wt,Dt);break e}Wt=Ca;break e;case 3:Ca.flags=Ca.flags&-65537|128;case 0:if(Ca=qa.payload,Dt=typeof Ca=="function"?Ca.call(ln,Wt,Dt):Ca,Dt==null)break e;Wt=m({},Wt,Dt);break e;case 2:Ap=!0}}Dt=qe.callback,Dt!==null&&(h.flags|=64,zt&&(h.flags|=8192),zt=$.callbacks,zt===null?$.callbacks=[Dt]:zt.push(Dt))}else zt={lane:Dt,tag:qe.tag,payload:qe.payload,callback:qe.callback,next:null},Ut===null?(Et=Ut=zt,mt=Wt):Ut=Ut.next=zt,ke|=Dt;if(qe=qe.next,qe===null){if(qe=$.shared.pending,qe===null)break;zt=qe,qe=zt.next,zt.next=null,$.lastBaseUpdate=zt,$.shared.pending=null}}while(!0);Ut===null&&(mt=Wt),$.baseState=mt,$.firstBaseUpdate=Et,$.lastBaseUpdate=Ut,re===null&&($.shared.lanes=0),Rp|=ke,h.lanes=ke,h.memoizedState=Wt}}function X5(h,w){if(typeof h!="function")throw Error(n(191,h));h.call(w)}function Z5(h,w){var _=h.callbacks;if(_!==null)for(h.callbacks=null,h=0;h<_.length;h++)X5(_[h],w)}var Ob=K(null),Vk=K(0);function J5(h,w){h=Xu,ue(Vk,h),ue(Ob,w),Xu=h|w.baseLanes}function Hj(){ue(Vk,Xu),ue(Ob,Ob.current)}function qj(){Xu=Vk.current,se(Ob),se(Vk)}var pl=K(null),Zl=null;function Ep(h){var w=h.alternate;ue(gi,gi.current&1),ue(pl,h),Zl===null&&(w===null||Ob.current!==null||w.memoizedState!==null)&&(Zl=h)}function Vj(h){ue(gi,gi.current),ue(pl,h),Zl===null&&(Zl=h)}function eU(h){h.tag===22?(ue(gi,gi.current),ue(pl,h),Zl===null&&(Zl=h)):Dp()}function Dp(){ue(gi,gi.current),ue(pl,pl.current)}function hl(h){se(pl),Zl===h&&(Zl=null),se(gi)}var gi=K(0);function Gk(h){for(var w=h;w!==null;){if(w.tag===13){var _=w.memoizedState;if(_!==null&&(_=_.dehydrated,_===null||QM(_)||XM(_)))return w}else if(w.tag===19&&(w.memoizedProps.revealOrder==="forwards"||w.memoizedProps.revealOrder==="backwards"||w.memoizedProps.revealOrder==="unstable_legacy-backwards"||w.memoizedProps.revealOrder==="together")){if((w.flags&128)!==0)return w}else if(w.child!==null){w.child.return=w,w=w.child;continue}if(w===h)break;for(;w.sibling===null;){if(w.return===null||w.return===h)return null;w=w.return}w.sibling.return=w.return,w=w.sibling}return null}var qu=0,nr=null,sn=null,Pi=null,$k=!1,Bb=!1,Lf=!1,Wk=0,zv=0,Ub=null,rue=0;function Jn(){throw Error(n(321))}function Gj(h,w){if(w===null)return!1;for(var _=0;_re?re:8;var ke=ne.T,qe={};ne.T=qe,sM(h,!1,w,_);try{var mt=$(),Et=ne.S;if(Et!==null&&Et(qe,mt),mt!==null&&typeof mt=="object"&&typeof mt.then=="function"){var Ut=aue(mt,M);Ov(h,w,Ut,bl(h))}else Ov(h,w,M,bl(h))}catch(Wt){Ov(h,w,{then:function(){},status:"rejected",reason:Wt},bl())}finally{Y.p=re,ke!==null&&qe.types!==null&&(ke.types=qe.types),ne.T=ke}}function lue(){}function nM(h,w,_,M){if(h.tag!==5)throw Error(n(476));var $=jU(h).queue;AU(h,$,w,ce,_===null?lue:function(){return MU(h),_(M)})}function jU(h){var w=h.memoizedState;if(w!==null)return w;w={memoizedState:ce,baseState:ce,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vu,lastRenderedState:ce},next:null};var _={};return w.next={memoizedState:_,baseState:_,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vu,lastRenderedState:_},next:null},h.memoizedState=w,h=h.alternate,h!==null&&(h.memoizedState=w),w}function MU(h){var w=jU(h);w.next===null&&(w=h.alternate.memoizedState),Ov(h,w.next.queue,{},bl())}function iM(){return _s(a0)}function EU(){return bi().memoizedState}function DU(){return bi().memoizedState}function cue(h){for(var w=h.return;w!==null;){switch(w.tag){case 24:case 3:var _=bl();h=jp(_);var M=Mp(w,h,_);M!==null&&(Bo(M,w,_),Fv(M,w,_)),w={cache:Fj()},h.payload=w;return}w=w.return}}function due(h,w,_){var M=bl();_={lane:M,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null},Jk(h)?LU(w,_):(_=kj(h,w,_,M),_!==null&&(Bo(_,h,M),RU(_,w,M)))}function FU(h,w,_){var M=bl();Ov(h,w,_,M)}function Ov(h,w,_,M){var $={lane:M,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null};if(Jk(h))LU(w,$);else{var re=h.alternate;if(h.lanes===0&&(re===null||re.lanes===0)&&(re=w.lastRenderedReducer,re!==null))try{var ke=w.lastRenderedState,qe=re(ke,_);if($.hasEagerState=!0,$.eagerState=qe,Fn(qe,ke))return Dk(h,w,$,0),bn===null&&Ek(),!1}catch{}if(_=kj(h,w,$,M),_!==null)return Bo(_,h,M),RU(_,w,M),!0}return!1}function sM(h,w,_,M){if(M={lane:2,revertLane:IM(),gesture:null,action:M,hasEagerState:!1,eagerState:null,next:null},Jk(h)){if(w)throw Error(n(479))}else w=kj(h,_,M,2),w!==null&&Bo(w,h,2)}function Jk(h){var w=h.alternate;return h===nr||w!==null&&w===nr}function LU(h,w){Bb=$k=!0;var _=h.pending;_===null?w.next=w:(w.next=_.next,_.next=w),h.pending=w}function RU(h,w,_){if((_&4194048)!==0){var M=w.lanes;M&=h.pendingLanes,_|=M,w.lanes=_,Vt(h,_)}}var Bv={readContext:_s,use:Yk,useCallback:Jn,useContext:Jn,useEffect:Jn,useImperativeHandle:Jn,useLayoutEffect:Jn,useInsertionEffect:Jn,useMemo:Jn,useReducer:Jn,useRef:Jn,useState:Jn,useDebugValue:Jn,useDeferredValue:Jn,useTransition:Jn,useSyncExternalStore:Jn,useId:Jn,useHostTransitionStatus:Jn,useFormState:Jn,useActionState:Jn,useOptimistic:Jn,useMemoCache:Jn,useCacheRefresh:Jn};Bv.useEffectEvent=Jn;var zU={readContext:_s,use:Yk,useCallback:function(h,w){return po().memoizedState=[h,w===void 0?null:w],h},useContext:_s,useEffect:vU,useImperativeHandle:function(h,w,_){_=_!=null?_.concat([h]):null,Xk(4194308,4,_U.bind(null,w,h),_)},useLayoutEffect:function(h,w){return Xk(4194308,4,h,w)},useInsertionEffect:function(h,w){Xk(4,2,h,w)},useMemo:function(h,w){var _=po();w=w===void 0?null:w;var M=h();if(Lf){Re(!0);try{h()}finally{Re(!1)}}return _.memoizedState=[M,w],M},useReducer:function(h,w,_){var M=po();if(_!==void 0){var $=_(w);if(Lf){Re(!0);try{_(w)}finally{Re(!1)}}}else $=w;return M.memoizedState=M.baseState=$,h={pending:null,lanes:0,dispatch:null,lastRenderedReducer:h,lastRenderedState:$},M.queue=h,h=h.dispatch=due.bind(null,nr,h),[M.memoizedState,h]},useRef:function(h){var w=po();return h={current:h},w.memoizedState=h},useState:function(h){h=Jj(h);var w=h.queue,_=FU.bind(null,nr,w);return w.dispatch=_,[h.memoizedState,_]},useDebugValue:aM,useDeferredValue:function(h,w){var _=po();return rM(_,h,w)},useTransition:function(){var h=Jj(!1);return h=AU.bind(null,nr,h.queue,!0,!1),po().memoizedState=h,[!1,h]},useSyncExternalStore:function(h,w,_){var M=nr,$=po();if(Mr){if(_===void 0)throw Error(n(407));_=_()}else{if(_=w(),bn===null)throw Error(n(349));(Ar&127)!==0||nU(M,w,_)}$.memoizedState=_;var re={value:_,getSnapshot:w};return $.queue=re,vU(sU.bind(null,M,re,h),[h]),M.flags|=2048,Hb(9,{destroy:void 0},iU.bind(null,M,re,_,w),null),_},useId:function(){var h=po(),w=bn.identifierPrefix;if(Mr){var _=Fd,M=Dd;_=(M&~(1<<32-He(M)-1)).toString(32)+_,w="_"+w+"R_"+_,_=Wk++,0<_&&(w+="H"+_.toString(32)),w+="_"}else _=rue++,w="_"+w+"r_"+_.toString(32)+"_";return h.memoizedState=w},useHostTransitionStatus:iM,useFormState:fU,useActionState:fU,useOptimistic:function(h){var w=po();w.memoizedState=w.baseState=h;var _={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return w.queue=_,w=sM.bind(null,nr,!0,_),_.dispatch=w,[h,w]},useMemoCache:Qj,useCacheRefresh:function(){return po().memoizedState=cue.bind(null,nr)},useEffectEvent:function(h){var w=po(),_={impl:h};return w.memoizedState=_,function(){if((Vr&2)!==0)throw Error(n(440));return _.impl.apply(void 0,arguments)}}},oM={readContext:_s,use:Yk,useCallback:PU,useContext:_s,useEffect:tM,useImperativeHandle:CU,useInsertionEffect:SU,useLayoutEffect:kU,useMemo:NU,useReducer:Qk,useRef:yU,useState:function(){return Qk(Vu)},useDebugValue:aM,useDeferredValue:function(h,w){var _=bi();return TU(_,sn.memoizedState,h,w)},useTransition:function(){var h=Qk(Vu)[0],w=bi().memoizedState;return[typeof h=="boolean"?h:Iv(h),w]},useSyncExternalStore:rU,useId:EU,useHostTransitionStatus:iM,useFormState:gU,useActionState:gU,useOptimistic:function(h,w){var _=bi();return cU(_,sn,h,w)},useMemoCache:Qj,useCacheRefresh:DU};oM.useEffectEvent=wU;var IU={readContext:_s,use:Yk,useCallback:PU,useContext:_s,useEffect:tM,useImperativeHandle:CU,useInsertionEffect:SU,useLayoutEffect:kU,useMemo:NU,useReducer:Zj,useRef:yU,useState:function(){return Zj(Vu)},useDebugValue:aM,useDeferredValue:function(h,w){var _=bi();return sn===null?rM(_,h,w):TU(_,sn.memoizedState,h,w)},useTransition:function(){var h=Zj(Vu)[0],w=bi().memoizedState;return[typeof h=="boolean"?h:Iv(h),w]},useSyncExternalStore:rU,useId:EU,useHostTransitionStatus:iM,useFormState:xU,useActionState:xU,useOptimistic:function(h,w){var _=bi();return sn!==null?cU(_,sn,h,w):(_.baseState=h,[h,_.queue.dispatch])},useMemoCache:Qj,useCacheRefresh:DU};IU.useEffectEvent=wU;function lM(h,w,_,M){w=h.memoizedState,_=_(M,w),_=_==null?w:m({},w,_),h.memoizedState=_,h.lanes===0&&(h.updateQueue.baseState=_)}var cM={enqueueSetState:function(h,w,_){h=h._reactInternals;var M=bl(),$=jp(M);$.payload=w,_!=null&&($.callback=_),w=Mp(h,$,M),w!==null&&(Bo(w,h,M),Fv(w,h,M))},enqueueReplaceState:function(h,w,_){h=h._reactInternals;var M=bl(),$=jp(M);$.tag=1,$.payload=w,_!=null&&($.callback=_),w=Mp(h,$,M),w!==null&&(Bo(w,h,M),Fv(w,h,M))},enqueueForceUpdate:function(h,w){h=h._reactInternals;var _=bl(),M=jp(_);M.tag=2,w!=null&&(M.callback=w),w=Mp(h,M,_),w!==null&&(Bo(w,h,_),Fv(w,h,_))}};function OU(h,w,_,M,$,re,ke){return h=h.stateNode,typeof h.shouldComponentUpdate=="function"?h.shouldComponentUpdate(M,re,ke):w.prototype&&w.prototype.isPureReactComponent?!Ss(_,M)||!Ss($,re):!0}function BU(h,w,_,M){h=w.state,typeof w.componentWillReceiveProps=="function"&&w.componentWillReceiveProps(_,M),typeof w.UNSAFE_componentWillReceiveProps=="function"&&w.UNSAFE_componentWillReceiveProps(_,M),w.state!==h&&cM.enqueueReplaceState(w,w.state,null)}function Rf(h,w){var _=w;if("ref"in w){_={};for(var M in w)M!=="ref"&&(_[M]=w[M])}if(h=h.defaultProps){_===w&&(_=m({},_));for(var $ in h)_[$]===void 0&&(_[$]=h[$])}return _}function UU(h){Mk(h)}function HU(h){console.error(h)}function qU(h){Mk(h)}function e_(h,w){try{var _=h.onUncaughtError;_(w.value,{componentStack:w.stack})}catch(M){setTimeout(function(){throw M})}}function VU(h,w,_){try{var M=h.onCaughtError;M(_.value,{componentStack:_.stack,errorBoundary:w.tag===1?w.stateNode:null})}catch($){setTimeout(function(){throw $})}}function dM(h,w,_){return _=jp(_),_.tag=3,_.payload={element:null},_.callback=function(){e_(h,w)},_}function GU(h){return h=jp(h),h.tag=3,h}function $U(h,w,_,M){var $=_.type.getDerivedStateFromError;if(typeof $=="function"){var re=M.value;h.payload=function(){return $(re)},h.callback=function(){VU(w,_,M)}}var ke=_.stateNode;ke!==null&&typeof ke.componentDidCatch=="function"&&(h.callback=function(){VU(w,_,M),typeof $!="function"&&(zp===null?zp=new Set([this]):zp.add(this));var qe=M.stack;this.componentDidCatch(M.value,{componentStack:qe!==null?qe:""})})}function uue(h,w,_,M,$){if(_.flags|=32768,M!==null&&typeof M=="object"&&typeof M.then=="function"){if(w=_.alternate,w!==null&&Fb(w,_,$,!0),_=pl.current,_!==null){switch(_.tag){case 31:case 13:return Zl===null?m_():_.alternate===null&&ei===0&&(ei=3),_.flags&=-257,_.flags|=65536,_.lanes=$,M===Uk?_.flags|=16384:(w=_.updateQueue,w===null?_.updateQueue=new Set([M]):w.add(M),LM(h,M,$)),!1;case 22:return _.flags|=65536,M===Uk?_.flags|=16384:(w=_.updateQueue,w===null?(w={transitions:null,markerInstances:null,retryQueue:new Set([M])},_.updateQueue=w):(_=w.retryQueue,_===null?w.retryQueue=new Set([M]):_.add(M)),LM(h,M,$)),!1}throw Error(n(435,_.tag))}return LM(h,M,$),m_(),!1}if(Mr)return w=pl.current,w!==null?((w.flags&65536)===0&&(w.flags|=256),w.flags|=65536,w.lanes=$,M!==Aj&&(h=Error(n(422),{cause:M}),Av(Kl(h,_)))):(M!==Aj&&(w=Error(n(423),{cause:M}),Av(Kl(w,_))),h=h.current.alternate,h.flags|=65536,$&=-$,h.lanes|=$,M=Kl(M,_),$=dM(h.stateNode,M,$),Bj(h,$),ei!==4&&(ei=2)),!1;var re=Error(n(520),{cause:M});if(re=Kl(re,_),Kv===null?Kv=[re]:Kv.push(re),ei!==4&&(ei=2),w===null)return!0;M=Kl(M,_),_=w;do{switch(_.tag){case 3:return _.flags|=65536,h=$&-$,_.lanes|=h,h=dM(_.stateNode,M,h),Bj(_,h),!1;case 1:if(w=_.type,re=_.stateNode,(_.flags&128)===0&&(typeof w.getDerivedStateFromError=="function"||re!==null&&typeof re.componentDidCatch=="function"&&(zp===null||!zp.has(re))))return _.flags|=65536,$&=-$,_.lanes|=$,$=GU($),$U($,h,_,M),Bj(_,$),!1}_=_.return}while(_!==null);return!1}var uM=Error(n(461)),Ni=!1;function Cs(h,w,_,M){w.child=h===null?Q5(w,null,_,M):Ff(w,h.child,_,M)}function WU(h,w,_,M,$){_=_.render;var re=w.ref;if("ref"in M){var ke={};for(var qe in M)qe!=="ref"&&(ke[qe]=M[qe])}else ke=M;return jf(w),M=$j(h,w,_,ke,re,$),qe=Wj(),h!==null&&!Ni?(Kj(h,w,$),Gu(h,w,$)):(Mr&&qe&&Nj(w),w.flags|=1,Cs(h,w,M,$),w.child)}function KU(h,w,_,M,$){if(h===null){var re=_.type;return typeof re=="function"&&!_j(re)&&re.defaultProps===void 0&&_.compare===null?(w.tag=15,w.type=re,YU(h,w,re,M,$)):(h=Lk(_.type,null,M,w,w.mode,$),h.ref=w.ref,h.return=w,w.child=h)}if(re=h.child,!yM(h,$)){var ke=re.memoizedProps;if(_=_.compare,_=_!==null?_:Ss,_(ke,M)&&h.ref===w.ref)return Gu(h,w,$)}return w.flags|=1,h=Ou(re,M),h.ref=w.ref,h.return=w,w.child=h}function YU(h,w,_,M,$){if(h!==null){var re=h.memoizedProps;if(Ss(re,M)&&h.ref===w.ref)if(Ni=!1,w.pendingProps=M=re,yM(h,$))(h.flags&131072)!==0&&(Ni=!0);else return w.lanes=h.lanes,Gu(h,w,$)}return mM(h,w,_,M,$)}function QU(h,w,_,M){var $=M.children,re=h!==null?h.memoizedState:null;if(h===null&&w.stateNode===null&&(w.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),M.mode==="hidden"){if((w.flags&128)!==0){if(re=re!==null?re.baseLanes|_:_,h!==null){for(M=w.child=h.child,$=0;M!==null;)$=$|M.lanes|M.childLanes,M=M.sibling;M=$&~re}else M=0,w.child=null;return XU(h,w,re,_,M)}if((_&536870912)!==0)w.memoizedState={baseLanes:0,cachePool:null},h!==null&&Ok(w,re!==null?re.cachePool:null),re!==null?J5(w,re):Hj(),eU(w);else return M=w.lanes=536870912,XU(h,w,re!==null?re.baseLanes|_:_,_,M)}else re!==null?(Ok(w,re.cachePool),J5(w,re),Dp(),w.memoizedState=null):(h!==null&&Ok(w,null),Hj(),Dp());return Cs(h,w,$,_),w.child}function Uv(h,w){return h!==null&&h.tag===22||w.stateNode!==null||(w.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),w.sibling}function XU(h,w,_,M,$){var re=Rj();return re=re===null?null:{parent:Ci._currentValue,pool:re},w.memoizedState={baseLanes:_,cachePool:re},h!==null&&Ok(w,null),Hj(),eU(w),h!==null&&Fb(h,w,M,!0),w.childLanes=$,null}function t_(h,w){return w=r_({mode:w.mode,children:w.children},h.mode),w.ref=h.ref,h.child=w,w.return=h,w}function ZU(h,w,_){return Ff(w,h.child,null,_),h=t_(w,w.pendingProps),h.flags|=2,hl(w),w.memoizedState=null,h}function mue(h,w,_){var M=w.pendingProps,$=(w.flags&128)!==0;if(w.flags&=-129,h===null){if(Mr){if(M.mode==="hidden")return h=t_(w,M),w.lanes=536870912,Uv(null,h);if(Vj(w),(h=Nn)?(h=dq(h,Xl),h=h!==null&&h.data==="&"?h:null,h!==null&&(w.memoizedState={dehydrated:h,treeContext:Cp!==null?{id:Dd,overflow:Fd}:null,retryLane:536870912,hydrationErrors:null},_=L5(h),_.return=w,w.child=_,ks=w,Nn=null)):h=null,h===null)throw Np(w);return w.lanes=536870912,null}return t_(w,M)}var re=h.memoizedState;if(re!==null){var ke=re.dehydrated;if(Vj(w),$)if(w.flags&256)w.flags&=-257,w=ZU(h,w,_);else if(w.memoizedState!==null)w.child=h.child,w.flags|=128,w=null;else throw Error(n(558));else if(Ni||Fb(h,w,_,!1),$=(_&h.childLanes)!==0,Ni||$){if(M=bn,M!==null&&(ke=ht(M,_),ke!==0&&ke!==re.retryLane))throw re.retryLane=ke,Pf(h,ke),Bo(M,h,ke),uM;m_(),w=ZU(h,w,_)}else h=re.treeContext,Nn=Jl(ke.nextSibling),ks=w,Mr=!0,Pp=null,Xl=!1,h!==null&&I5(w,h),w=t_(w,M),w.flags|=4096;return w}return h=Ou(h.child,{mode:M.mode,children:M.children}),h.ref=w.ref,w.child=h,h.return=w,h}function a_(h,w){var _=w.ref;if(_===null)h!==null&&h.ref!==null&&(w.flags|=4194816);else{if(typeof _!="function"&&typeof _!="object")throw Error(n(284));(h===null||h.ref!==_)&&(w.flags|=4194816)}}function mM(h,w,_,M,$){return jf(w),_=$j(h,w,_,M,void 0,$),M=Wj(),h!==null&&!Ni?(Kj(h,w,$),Gu(h,w,$)):(Mr&&M&&Nj(w),w.flags|=1,Cs(h,w,_,$),w.child)}function JU(h,w,_,M,$,re){return jf(w),w.updateQueue=null,_=aU(w,M,_,$),tU(h),M=Wj(),h!==null&&!Ni?(Kj(h,w,re),Gu(h,w,re)):(Mr&&M&&Nj(w),w.flags|=1,Cs(h,w,_,re),w.child)}function eH(h,w,_,M,$){if(jf(w),w.stateNode===null){var re=jb,ke=_.contextType;typeof ke=="object"&&ke!==null&&(re=_s(ke)),re=new _(M,re),w.memoizedState=re.state!==null&&re.state!==void 0?re.state:null,re.updater=cM,w.stateNode=re,re._reactInternals=w,re=w.stateNode,re.props=M,re.state=w.memoizedState,re.refs={},Ij(w),ke=_.contextType,re.context=typeof ke=="object"&&ke!==null?_s(ke):jb,re.state=w.memoizedState,ke=_.getDerivedStateFromProps,typeof ke=="function"&&(lM(w,_,ke,M),re.state=w.memoizedState),typeof _.getDerivedStateFromProps=="function"||typeof re.getSnapshotBeforeUpdate=="function"||typeof re.UNSAFE_componentWillMount!="function"&&typeof re.componentWillMount!="function"||(ke=re.state,typeof re.componentWillMount=="function"&&re.componentWillMount(),typeof re.UNSAFE_componentWillMount=="function"&&re.UNSAFE_componentWillMount(),ke!==re.state&&cM.enqueueReplaceState(re,re.state,null),Rv(w,M,re,$),Lv(),re.state=w.memoizedState),typeof re.componentDidMount=="function"&&(w.flags|=4194308),M=!0}else if(h===null){re=w.stateNode;var qe=w.memoizedProps,mt=Rf(_,qe);re.props=mt;var Et=re.context,Ut=_.contextType;ke=jb,typeof Ut=="object"&&Ut!==null&&(ke=_s(Ut));var Wt=_.getDerivedStateFromProps;Ut=typeof Wt=="function"||typeof re.getSnapshotBeforeUpdate=="function",qe=w.pendingProps!==qe,Ut||typeof re.UNSAFE_componentWillReceiveProps!="function"&&typeof re.componentWillReceiveProps!="function"||(qe||Et!==ke)&&BU(w,re,M,ke),Ap=!1;var Dt=w.memoizedState;re.state=Dt,Rv(w,M,re,$),Lv(),Et=w.memoizedState,qe||Dt!==Et||Ap?(typeof Wt=="function"&&(lM(w,_,Wt,M),Et=w.memoizedState),(mt=Ap||OU(w,_,mt,M,Dt,Et,ke))?(Ut||typeof re.UNSAFE_componentWillMount!="function"&&typeof re.componentWillMount!="function"||(typeof re.componentWillMount=="function"&&re.componentWillMount(),typeof re.UNSAFE_componentWillMount=="function"&&re.UNSAFE_componentWillMount()),typeof re.componentDidMount=="function"&&(w.flags|=4194308)):(typeof re.componentDidMount=="function"&&(w.flags|=4194308),w.memoizedProps=M,w.memoizedState=Et),re.props=M,re.state=Et,re.context=ke,M=mt):(typeof re.componentDidMount=="function"&&(w.flags|=4194308),M=!1)}else{re=w.stateNode,Oj(h,w),ke=w.memoizedProps,Ut=Rf(_,ke),re.props=Ut,Wt=w.pendingProps,Dt=re.context,Et=_.contextType,mt=jb,typeof Et=="object"&&Et!==null&&(mt=_s(Et)),qe=_.getDerivedStateFromProps,(Et=typeof qe=="function"||typeof re.getSnapshotBeforeUpdate=="function")||typeof re.UNSAFE_componentWillReceiveProps!="function"&&typeof re.componentWillReceiveProps!="function"||(ke!==Wt||Dt!==mt)&&BU(w,re,M,mt),Ap=!1,Dt=w.memoizedState,re.state=Dt,Rv(w,M,re,$),Lv();var zt=w.memoizedState;ke!==Wt||Dt!==zt||Ap||h!==null&&h.dependencies!==null&&zk(h.dependencies)?(typeof qe=="function"&&(lM(w,_,qe,M),zt=w.memoizedState),(Ut=Ap||OU(w,_,Ut,M,Dt,zt,mt)||h!==null&&h.dependencies!==null&&zk(h.dependencies))?(Et||typeof re.UNSAFE_componentWillUpdate!="function"&&typeof re.componentWillUpdate!="function"||(typeof re.componentWillUpdate=="function"&&re.componentWillUpdate(M,zt,mt),typeof re.UNSAFE_componentWillUpdate=="function"&&re.UNSAFE_componentWillUpdate(M,zt,mt)),typeof re.componentDidUpdate=="function"&&(w.flags|=4),typeof re.getSnapshotBeforeUpdate=="function"&&(w.flags|=1024)):(typeof re.componentDidUpdate!="function"||ke===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=4),typeof re.getSnapshotBeforeUpdate!="function"||ke===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=1024),w.memoizedProps=M,w.memoizedState=zt),re.props=M,re.state=zt,re.context=mt,M=Ut):(typeof re.componentDidUpdate!="function"||ke===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=4),typeof re.getSnapshotBeforeUpdate!="function"||ke===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=1024),M=!1)}return re=M,a_(h,w),M=(w.flags&128)!==0,re||M?(re=w.stateNode,_=M&&typeof _.getDerivedStateFromError!="function"?null:re.render(),w.flags|=1,h!==null&&M?(w.child=Ff(w,h.child,null,$),w.child=Ff(w,null,_,$)):Cs(h,w,_,$),w.memoizedState=re.state,h=w.child):h=Gu(h,w,$),h}function tH(h,w,_,M){return Tf(),w.flags|=256,Cs(h,w,_,M),w.child}var pM={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function hM(h){return{baseLanes:h,cachePool:V5()}}function fM(h,w,_){return h=h!==null?h.childLanes&~_:0,w&&(h|=gl),h}function aH(h,w,_){var M=w.pendingProps,$=!1,re=(w.flags&128)!==0,ke;if((ke=re)||(ke=h!==null&&h.memoizedState===null?!1:(gi.current&2)!==0),ke&&($=!0,w.flags&=-129),ke=(w.flags&32)!==0,w.flags&=-33,h===null){if(Mr){if($?Ep(w):Dp(),(h=Nn)?(h=dq(h,Xl),h=h!==null&&h.data!=="&"?h:null,h!==null&&(w.memoizedState={dehydrated:h,treeContext:Cp!==null?{id:Dd,overflow:Fd}:null,retryLane:536870912,hydrationErrors:null},_=L5(h),_.return=w,w.child=_,ks=w,Nn=null)):h=null,h===null)throw Np(w);return XM(h)?w.lanes=32:w.lanes=536870912,null}var qe=M.children;return M=M.fallback,$?(Dp(),$=w.mode,qe=r_({mode:"hidden",children:qe},$),M=Nf(M,$,_,null),qe.return=w,M.return=w,qe.sibling=M,w.child=qe,M=w.child,M.memoizedState=hM(_),M.childLanes=fM(h,ke,_),w.memoizedState=pM,Uv(null,M)):(Ep(w),gM(w,qe))}var mt=h.memoizedState;if(mt!==null&&(qe=mt.dehydrated,qe!==null)){if(re)w.flags&256?(Ep(w),w.flags&=-257,w=bM(h,w,_)):w.memoizedState!==null?(Dp(),w.child=h.child,w.flags|=128,w=null):(Dp(),qe=M.fallback,$=w.mode,M=r_({mode:"visible",children:M.children},$),qe=Nf(qe,$,_,null),qe.flags|=2,M.return=w,qe.return=w,M.sibling=qe,w.child=M,Ff(w,h.child,null,_),M=w.child,M.memoizedState=hM(_),M.childLanes=fM(h,ke,_),w.memoizedState=pM,w=Uv(null,M));else if(Ep(w),XM(qe)){if(ke=qe.nextSibling&&qe.nextSibling.dataset,ke)var Et=ke.dgst;ke=Et,M=Error(n(419)),M.stack="",M.digest=ke,Av({value:M,source:null,stack:null}),w=bM(h,w,_)}else if(Ni||Fb(h,w,_,!1),ke=(_&h.childLanes)!==0,Ni||ke){if(ke=bn,ke!==null&&(M=ht(ke,_),M!==0&&M!==mt.retryLane))throw mt.retryLane=M,Pf(h,M),Bo(ke,h,M),uM;QM(qe)||m_(),w=bM(h,w,_)}else QM(qe)?(w.flags|=192,w.child=h.child,w=null):(h=mt.treeContext,Nn=Jl(qe.nextSibling),ks=w,Mr=!0,Pp=null,Xl=!1,h!==null&&I5(w,h),w=gM(w,M.children),w.flags|=4096);return w}return $?(Dp(),qe=M.fallback,$=w.mode,mt=h.child,Et=mt.sibling,M=Ou(mt,{mode:"hidden",children:M.children}),M.subtreeFlags=mt.subtreeFlags&65011712,Et!==null?qe=Ou(Et,qe):(qe=Nf(qe,$,_,null),qe.flags|=2),qe.return=w,M.return=w,M.sibling=qe,w.child=M,Uv(null,M),M=w.child,qe=h.child.memoizedState,qe===null?qe=hM(_):($=qe.cachePool,$!==null?(mt=Ci._currentValue,$=$.parent!==mt?{parent:mt,pool:mt}:$):$=V5(),qe={baseLanes:qe.baseLanes|_,cachePool:$}),M.memoizedState=qe,M.childLanes=fM(h,ke,_),w.memoizedState=pM,Uv(h.child,M)):(Ep(w),_=h.child,h=_.sibling,_=Ou(_,{mode:"visible",children:M.children}),_.return=w,_.sibling=null,h!==null&&(ke=w.deletions,ke===null?(w.deletions=[h],w.flags|=16):ke.push(h)),w.child=_,w.memoizedState=null,_)}function gM(h,w){return w=r_({mode:"visible",children:w},h.mode),w.return=h,h.child=w}function r_(h,w){return h=ml(22,h,null,w),h.lanes=0,h}function bM(h,w,_){return Ff(w,h.child,null,_),h=gM(w,w.pendingProps.children),h.flags|=2,w.memoizedState=null,h}function rH(h,w,_){h.lanes|=w;var M=h.alternate;M!==null&&(M.lanes|=w),Ej(h.return,w,_)}function xM(h,w,_,M,$,re){var ke=h.memoizedState;ke===null?h.memoizedState={isBackwards:w,rendering:null,renderingStartTime:0,last:M,tail:_,tailMode:$,treeForkCount:re}:(ke.isBackwards=w,ke.rendering=null,ke.renderingStartTime=0,ke.last=M,ke.tail=_,ke.tailMode=$,ke.treeForkCount=re)}function nH(h,w,_){var M=w.pendingProps,$=M.revealOrder,re=M.tail;M=M.children;var ke=gi.current,qe=(ke&2)!==0;if(qe?(ke=ke&1|2,w.flags|=128):ke&=1,ue(gi,ke),Cs(h,w,M,_),M=Mr?Tv:0,!qe&&h!==null&&(h.flags&128)!==0)e:for(h=w.child;h!==null;){if(h.tag===13)h.memoizedState!==null&&rH(h,_,w);else if(h.tag===19)rH(h,_,w);else if(h.child!==null){h.child.return=h,h=h.child;continue}if(h===w)break e;for(;h.sibling===null;){if(h.return===null||h.return===w)break e;h=h.return}h.sibling.return=h.return,h=h.sibling}switch($){case"forwards":for(_=w.child,$=null;_!==null;)h=_.alternate,h!==null&&Gk(h)===null&&($=_),_=_.sibling;_=$,_===null?($=w.child,w.child=null):($=_.sibling,_.sibling=null),xM(w,!1,$,_,re,M);break;case"backwards":case"unstable_legacy-backwards":for(_=null,$=w.child,w.child=null;$!==null;){if(h=$.alternate,h!==null&&Gk(h)===null){w.child=$;break}h=$.sibling,$.sibling=_,_=$,$=h}xM(w,!0,_,null,re,M);break;case"together":xM(w,!1,null,null,void 0,M);break;default:w.memoizedState=null}return w.child}function Gu(h,w,_){if(h!==null&&(w.dependencies=h.dependencies),Rp|=w.lanes,(_&w.childLanes)===0)if(h!==null){if(Fb(h,w,_,!1),(_&w.childLanes)===0)return null}else return null;if(h!==null&&w.child!==h.child)throw Error(n(153));if(w.child!==null){for(h=w.child,_=Ou(h,h.pendingProps),w.child=_,_.return=w;h.sibling!==null;)h=h.sibling,_=_.sibling=Ou(h,h.pendingProps),_.return=w;_.sibling=null}return w.child}function yM(h,w){return(h.lanes&w)!==0?!0:(h=h.dependencies,!!(h!==null&&zk(h)))}function pue(h,w,_){switch(w.tag){case 3:A(w,w.stateNode.containerInfo),Tp(w,Ci,h.memoizedState.cache),Tf();break;case 27:case 5:q(w);break;case 4:A(w,w.stateNode.containerInfo);break;case 10:Tp(w,w.type,w.memoizedProps.value);break;case 31:if(w.memoizedState!==null)return w.flags|=128,Vj(w),null;break;case 13:var M=w.memoizedState;if(M!==null)return M.dehydrated!==null?(Ep(w),w.flags|=128,null):(_&w.child.childLanes)!==0?aH(h,w,_):(Ep(w),h=Gu(h,w,_),h!==null?h.sibling:null);Ep(w);break;case 19:var $=(h.flags&128)!==0;if(M=(_&w.childLanes)!==0,M||(Fb(h,w,_,!1),M=(_&w.childLanes)!==0),$){if(M)return nH(h,w,_);w.flags|=128}if($=w.memoizedState,$!==null&&($.rendering=null,$.tail=null,$.lastEffect=null),ue(gi,gi.current),M)break;return null;case 22:return w.lanes=0,QU(h,w,_,w.pendingProps);case 24:Tp(w,Ci,h.memoizedState.cache)}return Gu(h,w,_)}function iH(h,w,_){if(h!==null)if(h.memoizedProps!==w.pendingProps)Ni=!0;else{if(!yM(h,_)&&(w.flags&128)===0)return Ni=!1,pue(h,w,_);Ni=(h.flags&131072)!==0}else Ni=!1,Mr&&(w.flags&1048576)!==0&&z5(w,Tv,w.index);switch(w.lanes=0,w.tag){case 16:e:{var M=w.pendingProps;if(h=Ef(w.elementType),w.type=h,typeof h=="function")_j(h)?(M=Rf(h,M),w.tag=1,w=eH(null,w,h,M,_)):(w.tag=0,w=mM(null,w,h,M,_));else{if(h!=null){var $=h.$$typeof;if($===P){w.tag=11,w=WU(null,w,h,M,_);break e}else if($===j){w.tag=14,w=KU(null,w,h,M,_);break e}}throw w=z(h)||h,Error(n(306,w,""))}}return w;case 0:return mM(h,w,w.type,w.pendingProps,_);case 1:return M=w.type,$=Rf(M,w.pendingProps),eH(h,w,M,$,_);case 3:e:{if(A(w,w.stateNode.containerInfo),h===null)throw Error(n(387));M=w.pendingProps;var re=w.memoizedState;$=re.element,Oj(h,w),Rv(w,M,null,_);var ke=w.memoizedState;if(M=ke.cache,Tp(w,Ci,M),M!==re.cache&&Dj(w,[Ci],_,!0),Lv(),M=ke.element,re.isDehydrated)if(re={element:M,isDehydrated:!1,cache:ke.cache},w.updateQueue.baseState=re,w.memoizedState=re,w.flags&256){w=tH(h,w,M,_);break e}else if(M!==$){$=Kl(Error(n(424)),w),Av($),w=tH(h,w,M,_);break e}else for(h=w.stateNode.containerInfo,h.nodeType===9?h=h.body:h=h.nodeName==="HTML"?h.ownerDocument.body:h,Nn=Jl(h.firstChild),ks=w,Mr=!0,Pp=null,Xl=!0,_=Q5(w,null,M,_),w.child=_;_;)_.flags=_.flags&-3|4096,_=_.sibling;else{if(Tf(),M===$){w=Gu(h,w,_);break e}Cs(h,w,M,_)}w=w.child}return w;case 26:return a_(h,w),h===null?(_=gq(w.type,null,w.pendingProps,null))?w.memoizedState=_:Mr||(_=w.type,h=w.pendingProps,M=y_(H.current).createElement(_),M[vt]=w,M[Pt]=h,Ps(M,_,h),et(M),w.stateNode=M):w.memoizedState=gq(w.type,h.memoizedProps,w.pendingProps,h.memoizedState),null;case 27:return q(w),h===null&&Mr&&(M=w.stateNode=pq(w.type,w.pendingProps,H.current),ks=w,Xl=!0,$=Nn,Up(w.type)?(ZM=$,Nn=Jl(M.firstChild)):Nn=$),Cs(h,w,w.pendingProps.children,_),a_(h,w),h===null&&(w.flags|=4194304),w.child;case 5:return h===null&&Mr&&(($=M=Nn)&&(M=que(M,w.type,w.pendingProps,Xl),M!==null?(w.stateNode=M,ks=w,Nn=Jl(M.firstChild),Xl=!1,$=!0):$=!1),$||Np(w)),q(w),$=w.type,re=w.pendingProps,ke=h!==null?h.memoizedProps:null,M=re.children,WM($,re)?M=null:ke!==null&&WM($,ke)&&(w.flags|=32),w.memoizedState!==null&&($=$j(h,w,nue,null,null,_),a0._currentValue=$),a_(h,w),Cs(h,w,M,_),w.child;case 6:return h===null&&Mr&&((h=_=Nn)&&(_=Vue(_,w.pendingProps,Xl),_!==null?(w.stateNode=_,ks=w,Nn=null,h=!0):h=!1),h||Np(w)),null;case 13:return aH(h,w,_);case 4:return A(w,w.stateNode.containerInfo),M=w.pendingProps,h===null?w.child=Ff(w,null,M,_):Cs(h,w,M,_),w.child;case 11:return WU(h,w,w.type,w.pendingProps,_);case 7:return Cs(h,w,w.pendingProps,_),w.child;case 8:return Cs(h,w,w.pendingProps.children,_),w.child;case 12:return Cs(h,w,w.pendingProps.children,_),w.child;case 10:return M=w.pendingProps,Tp(w,w.type,M.value),Cs(h,w,M.children,_),w.child;case 9:return $=w.type._context,M=w.pendingProps.children,jf(w),$=_s($),M=M($),w.flags|=1,Cs(h,w,M,_),w.child;case 14:return KU(h,w,w.type,w.pendingProps,_);case 15:return YU(h,w,w.type,w.pendingProps,_);case 19:return nH(h,w,_);case 31:return mue(h,w,_);case 22:return QU(h,w,_,w.pendingProps);case 24:return jf(w),M=_s(Ci),h===null?($=Rj(),$===null&&($=bn,re=Fj(),$.pooledCache=re,re.refCount++,re!==null&&($.pooledCacheLanes|=_),$=re),w.memoizedState={parent:M,cache:$},Ij(w),Tp(w,Ci,$)):((h.lanes&_)!==0&&(Oj(h,w),Rv(w,null,null,_),Lv()),$=h.memoizedState,re=w.memoizedState,$.parent!==M?($={parent:M,cache:M},w.memoizedState=$,w.lanes===0&&(w.memoizedState=w.updateQueue.baseState=$),Tp(w,Ci,M)):(M=re.cache,Tp(w,Ci,M),M!==$.cache&&Dj(w,[Ci],_,!0))),Cs(h,w,w.pendingProps.children,_),w.child;case 29:throw w.pendingProps}throw Error(n(156,w.tag))}function $u(h){h.flags|=4}function vM(h,w,_,M,$){if((w=(h.mode&32)!==0)&&(w=!1),w){if(h.flags|=16777216,($&335544128)===$)if(h.stateNode.complete)h.flags|=8192;else if(EH())h.flags|=8192;else throw Df=Uk,zj}else h.flags&=-16777217}function sH(h,w){if(w.type!=="stylesheet"||(w.state.loading&4)!==0)h.flags&=-16777217;else if(h.flags|=16777216,!wq(w))if(EH())h.flags|=8192;else throw Df=Uk,zj}function n_(h,w){w!==null&&(h.flags|=4),h.flags&16384&&(w=h.tag!==22?Ge():536870912,h.lanes|=w,$b|=w)}function Hv(h,w){if(!Mr)switch(h.tailMode){case"hidden":w=h.tail;for(var _=null;w!==null;)w.alternate!==null&&(_=w),w=w.sibling;_===null?h.tail=null:_.sibling=null;break;case"collapsed":_=h.tail;for(var M=null;_!==null;)_.alternate!==null&&(M=_),_=_.sibling;M===null?w||h.tail===null?h.tail=null:h.tail.sibling=null:M.sibling=null}}function Tn(h){var w=h.alternate!==null&&h.alternate.child===h.child,_=0,M=0;if(w)for(var $=h.child;$!==null;)_|=$.lanes|$.childLanes,M|=$.subtreeFlags&65011712,M|=$.flags&65011712,$.return=h,$=$.sibling;else for($=h.child;$!==null;)_|=$.lanes|$.childLanes,M|=$.subtreeFlags,M|=$.flags,$.return=h,$=$.sibling;return h.subtreeFlags|=M,h.childLanes=_,w}function hue(h,w,_){var M=w.pendingProps;switch(Tj(w),w.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Tn(w),null;case 1:return Tn(w),null;case 3:return _=w.stateNode,M=null,h!==null&&(M=h.memoizedState.cache),w.memoizedState.cache!==M&&(w.flags|=2048),Hu(Ci),F(),_.pendingContext&&(_.context=_.pendingContext,_.pendingContext=null),(h===null||h.child===null)&&(Db(w)?$u(w):h===null||h.memoizedState.isDehydrated&&(w.flags&256)===0||(w.flags|=1024,jj())),Tn(w),null;case 26:var $=w.type,re=w.memoizedState;return h===null?($u(w),re!==null?(Tn(w),sH(w,re)):(Tn(w),vM(w,$,null,M,_))):re?re!==h.memoizedState?($u(w),Tn(w),sH(w,re)):(Tn(w),w.flags&=-16777217):(h=h.memoizedProps,h!==M&&$u(w),Tn(w),vM(w,$,h,M,_)),null;case 27:if(W(w),_=H.current,$=w.type,h!==null&&w.stateNode!=null)h.memoizedProps!==M&&$u(w);else{if(!M){if(w.stateNode===null)throw Error(n(166));return Tn(w),null}h=he.current,Db(w)?O5(w):(h=pq($,M,_),w.stateNode=h,$u(w))}return Tn(w),null;case 5:if(W(w),$=w.type,h!==null&&w.stateNode!=null)h.memoizedProps!==M&&$u(w);else{if(!M){if(w.stateNode===null)throw Error(n(166));return Tn(w),null}if(re=he.current,Db(w))O5(w);else{var ke=y_(H.current);switch(re){case 1:re=ke.createElementNS("http://www.w3.org/2000/svg",$);break;case 2:re=ke.createElementNS("http://www.w3.org/1998/Math/MathML",$);break;default:switch($){case"svg":re=ke.createElementNS("http://www.w3.org/2000/svg",$);break;case"math":re=ke.createElementNS("http://www.w3.org/1998/Math/MathML",$);break;case"script":re=ke.createElement("div"),re.innerHTML=" +